Linux на страже Windows. Обзор и установка системы резервного копирования BackupPC::Журнал СА 9.2004
www.samag.ru
Льготная подписка для студентов      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

Jobsora

ЭКСПЕРТНАЯ СЕССИЯ 2019


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
28.05.2019г.
Просмотров: 1894
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 1936
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 1497
Комментарии: 0
Django 2 в примерах

 Читать далее...

28.05.2019г.
Просмотров: 1098
Комментарии: 0
Введение в анализ алгоритмов

 Читать далее...

27.03.2019г.
Просмотров: 1667
Комментарии: 1
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

Электронка - 2020!

 Linux на страже Windows. Обзор и установка системы резервного копирования BackupPC

Архив номеров / 2004 / Выпуск №9 (22) / Linux на страже Windows. Обзор и установка системы резервного копирования BackupPC

Рубрика: Администрирование /  Продукты и решения

Андрей Маркелов АНДРЕЙ МАРКЕЛОВ

Linux на страже Windows
Обзор и установка системы резервного копирования BackupPC

Думаю, в настоящее время никто уже не станет спорить с утверждением, что процесс вхождения Linux в корпоративный мир стал необратимым, а процент установок этой операционной системы на серверах в различных организациях постоянно возрастает.

Можно бесконечно спорить о преимуществах одних операционных систем над другими, но когда у меня возникло желание сделать единое хранилище для ежедневных архивов информации с более десяти серверов своей организации, работающих под управлением нескольких различных ОС, я свой выбор остановил на платформе Linux. До сих пор каждый сервер с помощью уникальных для него скриптов в назначенное время сбрасывал по сети на сервер резервного копирования или stand by-сервер какие-то свои данные, например, пользовательские файлы с сетевых дисков, или дампы базы данных. Для этого использовались различные протоколы: ftp, SMB или штатные средства СУБД. При этом приходилось следить за уникальным для каждого сервера лог-файлом, и в случае каких-либо изменений в стратегии резервного копирования править скрипты на каждой машине.

Чтобы как-то упростить администрирование и сократить время, затрачиваемое на поддержку и мониторинг всего этого «зоопарка», я начал искать систему, которая бы поддерживала копирование информации по сети, умела делать инкрементальные бэкапы, поддерживала бы удаленное администрирование и не требовала установки клиентского программного обеспечения. Кроме того, было важно, чтобы система умела работать по протоколу SMB, так как часть серверов, в частности основной файл-сервер, работали под управлением ОС Windows.

Спустя непродолжительное время такая система была найдена. Ею оказалась открытая, распространяющаяся по лицензии GNU система архивирования данных масштаба предприятия BackupPC. Сайт расположен по адресу http://backuppc.sourceforge.net.

Основные особенности рассматриваемой программы:

  • Язык программирования, на котором написана система, – Perl.
  • Минимизация хранимой информации за счет того, что идентичные файлы из разных резервных копий хранятся только в одном экземпляре.
  • Настраиваемая степень сжатия данных.
  • Поддержка работы по протоколам smb/ssh/rsh/nfs.
  • Мощный CGI-интерфейс, позволяющий управлять сервером по сети посредством веб-браузера.
  • Поддержка архивирования информации с машин, получающих настройки сети через DHCP, разрешая имена при помощи nmblookup.
  • Гибкие настройки планирования архивации данных.
  • Оповещения о выполненных действиях администратора и пользователей посредством электронной почты.
  • Поддержка клиентов, работающих под управлением Linux, Freenix, Solaris Win95, Win98, Win2000 и WinXP. Сервер тестировался на Linux, Freenix и Solaris.
  • Очень подробная документация.

В данной статье я хочу обобщить свой опыт установки, настройки и эксплуатации этой системы, а также поделиться решением нескольких проблем, которые возникли в процессе установки.

Я проверял работу BackupPC версии 2.1.0, последней на момент написания статьи, при помощи тестовой машины под управлением Fedora Core 2, и на «боевых» серверах, работающих на Red Hat Linux 9 и White Box Enterprise Linux 3. Операционная система, стоящая на тестовом сервере фактически является альфа-версией будущего Red Hat Enterprise Linux 4, а White Box Enterprise Linux 3 перекомпиляцией из свободно доступных исходных текстов текущей, третьей версии коммерческого Linux-дистрибутива от Red Hat.

Необходимость использовать не поддерживающуюся более «девятку» возникла при установке RAID-контроллера Promise SuperTRAX SX6000, для которого существовали драйвера только под эту операционную систему.

Требования к установке

Прежде чем приступить непосредственно к инсталляции и настройке самой системы резервного копирования BackupPC, необходимо определиться с требованиями к программному окружению, в котором должен работать сервер.

Во-первых, как я уже писал, это операционная система, в роли которой может выступать Linux, Solaris либо другая UNIX-подобная система. Во-вторых, необходимо предусмотреть наличие вместительного RAID-массива, или использовать LVM. Кроме того: Perl версии 5.6.0 или выше, Samba- и Apache-сервер.

В этой статье я не буду касаться настройки клиента Samba, в частности, работы в составе Active Directory. Я предполагаю само собой разумеющимся, что если вы планируете производить архивацию информации с Windows-серверов, работающих в составе домена, то и должны обеспечить к ним доступ вашей Linux-машины. Отсутствие описания процесса конфигурирования Samba-сервера в данной статье, думаю, компенсируется многочисленными материалами на эту тему в Интернете.

Также предполагается, что вы используете кодировку KOI-8 вместо установленной по умолчанию в большинстве современных дистрибутивов UTF-8. Red Hat, в частности, перешла на ее использование с версии 8.0 своего продукта. Но дело в том, что поддержка русского языка при помощи UTF-8 во многих приложениях далека от совершенства. Безусловно, лучшим решением была бы работа с UTF-8, но в данном случае я предпочел пойти по пути «наименьшего сопротивления» и воспользоваться уже существующими у меня наработками.

Соответственно должен быть настроен и веб-сервер, у которого в качестве кодировки по умолчанию должно быть указано KOI8-R.

Приступая к установке BackupPC, в системе необходимо иметь следующие perl-модули: Compress::Zlib, Archive::Zip и File:RsyncP. Проверить наличие установленных модулей можно, дав команду:

perldoc <имя модуля>

Если в ответ будет получено сообщение вида:

No documentation found for "Compress::Zlib"

следовательно, в вашей системе данный модуль еще не установлен. Оба дистрибутива, в которых я устанавливал BackupPC, по умолчанию этих модулей не содержат.

Процедура установки модулей, которые можно скачать с www.cpan.org, следующая:

#tar zxvf имя_архива.tar.gz // разархивируем исходники

#perl Makefile.PL // формируем makefile

#make // компилируем исходники

#make test // после выполнения этой команды мы должны получить сообщение, что все тесты пройдены успешно

#make install

Имеющие опыт общения с оболочкой cpan, могут поступить проще – для установки модулей воспользоваться ею.

В случае RHEL3 для успешной компиляции модуля Archive::Zip пришлось дать команду:

export LANG=en_US

без которой он отказался «собираться».

Кроме того, мне пришлось установить отсутствующую в дистрибутивах от Red Hat утилиту par2, которая создает «избыточную информацию» для файлов с использованием кодов Рида-Соломона, и позволяет восстанавливать файлы, повреждённые до определённой степени. Скачиваем с сайта http://parchive.sourceforge.net исходники в виде файла par2cmdline-0.4.tar.gz, и выполняем команды:

#tar zxvf par2cmdline-0.4.tar.gz

#cd par2cmdline-0.4

#./configure

#make

#make check

#make install

В принципе установка par2cmdline не обязательна, так как по умолчанию BackupPC работает и без нее. Но все же я рекомендовал бы ее установить, особенно при отсутствии RAID-массива на сервере.

Также для корректной работы CGI-интерфейса при стандартной установке системы, когда веб-сервер запускается из-под специально выделенного для этих целей пользователя (httpd или apache), требуется Suid Perl. В Red Hat дистрибутивах соответствующий пакет называется perl-suidperl.

Ну и, наконец, добавим пользователя, из-под которого будет выполняться запуск системы резервного копирования:

#useradd backuppc

После окончания тестирования системы нелишним будет убрать для пользователя backuppc возможность интерактивного входа.

Установка BackupPC

Теперь можно приступить непосредственно к установке BackupPC. Развернем архив и запустим конфигурационный скрипт:

#tar zxvf BackupPC-x.x.x.tar.gz

#cd BackupPC-x.x.x

#perl configure.pl

Рисунок 1

В ходе установки вам потребуется ответить на ряд вопросов. На первый – просьбу указать полный путь к уже установленной старой версии – можно ответить, просто нажав «Enter», поскольку выполняется первоначальная установка. После вам будут показаны пути к утилитам, требуемым BackupPC, которые скрипт определил самостоятельно, с просьбой подтвердить их расположение. Затем необходимо проверить, правильно ли скрипт определил имя хоста и имя пользователя, которого мы создали ранее, а также директорию для установки исполнимых файлов и директорию для хранения данных.

В зависимости от быстродействия сервера вам необходимо будет выбрать уровень компрессии резервируемых данных. Уровень можно менять от 1 до 9. По умолчанию предлагается третий уровень. По заявлениям разработчиков, при увеличении c «умолчальной» тройки до пятерки, например, загрузка процессора увеличивается на 20%, а данные занимают на 2-3% меньше места. По этим данным видно, что особого смысла увеличивать степень сжатия нет. При первоначальной установке я бы порекомендовал оставить тройку. Позднее можно попробовать поэкспериментировать с этим значением, поменяв его в конфигурационном файле.

Следующий вопрос касается пути к cgi-bin директории вашего веб-сервера (в Red Hat-подобных дистрибутивах это /var/www/cgi-bin/) и пути к директории с устанавливаемыми иконками для CGI-интерфейса (/var/www/html/BackupPC). Кроме того, будет предложено ввести часть URL, указывающего на иконки, а именно расположение относительно корневого каталога веб-сервера. Обратите внимание, что путь должен начинаться со слэша. В нашем случае он будет выглядеть как /BackupPC.

Настройка BackupPC

Как и большинство программ, работающих под управлением UNIX-подобных систем, настройка и изменение параметров сервера BackupPC производится правкой конфигурационных файлов. К чему мы и приступим.

Интересующий нас файл config.pl расположен в подкаталоге /conf, который был создан внутри директории, предназначенной для хранения данных. На самом деле этот файл очень хорошо документирован, поэтому я пройдусь лишь по основным параметрам. Config.pl состоит из четырех групп настроечных значений, содержащих:

  • основные параметры сервера;
  • описание тех машин, информацию с которых нужно архивировать;
  • указания, как часто это надо делать;
  • параметры CGI-интерфейса.
  • $Conf{WakeupShedule} – как часто сервис должен проверять, были ли изменения на подлежащих архивированию компьютерах, и в случае изменений выполнять резервирование данных. По умолчанию – каждый час, кроме полуночи.
  • $Conf{MaxBackups} – максимальное число одновременных процессов архивирования.
  • $Conf{DfMaxUsagePct} – при заполнении указанного в процентах объема диска, заданного для хранения данных, архивирование не производится. По умолчанию 95%.
  • $Conf{SmbShareName} – имя расшаренного ресурса на Windows-машине. По умолчанию – это диск C:, который в Win2000/XP доступен через SMB по имени «С$».
  • $Conf{SmbShareUserName} – имя пользователя на Windows-машине, которому даны права на ресурс общего доступа .
  • $Conf{SmbSharePasswd} – его пароль. В настоящее время он приводится в открытом виде. В следующих версиях планируется хранение в зашифрованном виде.
  • $Conf{FullPeriod} – период в днях между полными резервными копиями.
  • $Conf{IncrPeriod} – период в днях между инкрементальными резервными копиями.
  • $Conf{FullKeepCnt} – максимальное число сохраняемых полных резервных копий. $Conf{BackupFilesOnly} – список директорий, которые необходимо архивировать. По умолчанию – не определено.
  • $Conf{BackupFilesExclude} – то же самое, но для директорий-исключений.
  • $Conf{ArchivePar} – при использовании par2cmdline процент избыточных данных в архиве. По умолчанию – 0.
  • $Conf{EmailAdminUserName} – почтовый адрес администратора, на который будут приходить сообщения об ошибках и предупреждениях.
  • $Conf{CgiAdminUserGroup} и $Conf{CgiAdminUsers} – пользователи и группы, которым доступен CGI-интерфейс.

Обратите внимание, что параметры, относящиеся к конкретной машине, могут быть переопределены машинно-зависимым файлом Config.pl, который хранится в поддиректории каталога с данными /BackupPC/pc/<имя_компьютера>/. Действительно, на каждой машине могут быть свои конкретные папки общего доступа, списки исключений, свой локальный пользователь с паролем, для которого установлены свои разрешения.

Теперь настроим список компьютеров, данные с которых необходимо архивировать. Файл с настройками находится в том же каталоге, где и основной конфигурационный файл, и называется hosts. Собственно, синтаксис файла максимально прост. Каждая строчка содержит три параметра: имя машины, имя (e-mail) ее хозяина и признак, получает ли данный компьютер сетевые настройки по DHCP или нет.

Теперь осталось скопировать скрипт старта и остановки сервиса из дистрибутива /init.d/linux-backuppc в /etc/rc.d/init.d/backuppc, в случае Red Hat дистрибутива, а затем можно попробовать стартовать BackupPC командой:

#service backuppc start

Кроме того, нелишне добавить автоматический старт при загрузке сервера в консоль и в X-Window:

#chkconfig - -add backuppc

#chkconfig - -level 35 backuppc on

К сожалению, данные действия приходится делать вручную, так как разработчики не включили эти операции в установочный скрипт.

В лог-файле messages вашего сервера должно появиться сообщение об успешном старте сервиса, а в директории с данными /BackupPC/log будет создан подробный лог самого сервиса. После успешного старта можно попробовать запустить браузер, и обратиться по адресу http://имя_сервера/cgi-bin/BackupPC_Admin. Если вы сделали все правильно, то должны получить нечто подобное тому, что изображено на рисунках. В случае проблем с доступом к CGI-интерфейсу рекомендую обратиться к FAQ на сайте http://backuppc.sourceforge.net. В большинстве случаев в первую очередь необходимо проверить права доступа к файлам и директориям BackupPC. Однако, если вы следовали приведенному порядку установки, таких проблем возникнуть не должно.

Русификация

Еще одной проблемой при работе с CGI-интерфейсом, решение которой, однако, пришлось искать самому, может стать некорректное отображение русских имен файлов и папок. Для исправления этой ситуации придется внести небольшие изменения в файл Lib.pm, расположенный в подкаталоге /CGI директории с исполняемыми файлами программы. Данный файл содержит системные процедуры BackupPC.

Во-первых, найдите в теле процедуры Header строчку:

print $Cgi->header();

и замените ее на:

print $Cgi->header(-charset=>"koi8-r");

Ну а во-вторых, в процедуре EscHTML закомментируйте предпоследнюю строчку, стоящую перед «return»:

$s=~s{([^[:print:]])}{sprintf("%02X;", ord($1));}eg;

Теперь все имена будут отображаться в нормальном виде, используя кодировку KOI-8.

Кроме того, рекомендую обратить внимание на папку /lib/BackupPC/Lang, которая находится в директории с исполнимыми файлами. Там находятся файлы с локализованными сообщениями, выводимыми CGI-интерфейсом. В комплект поставки русский язык не входит, но вам ничего не мешает создать свой файл по образцу существующих, переведя сообщения с английского на русский язык. Часть этой работы я уже проделал для своего «внутреннего» использования. Перевод, не претендующий на полноту и высокое литературное качество, я выложил на своем сайте. Скачать архив можно по ссылке http://www.markelov.net/program/bpcrus.tgz.

Интерфейс

Интерфейс системы достаточно прост и нагляден. Обратившись по адресу: http://имя_сервера/cgi-bin/BackupPC_ Admin, вы попадаете в окно с общей информацией по серверу BackupPC. В левой части окна присутствует меню с ссылками на более подробную информацию по работе всего сервера, а также выпадающее меню с возможностью выбора информации по конкретному архивируемому хосту.

Зайдя в меню по конкретному хосту, можно получить всю информацию касательно выполненных операций резервирования данных, просмотреть списки архивных копий, а также «провалиться» в любой из них и восстановить файлы и каталоги полностью или частично. Также имеется возможность скопировать любой из файлов средствами браузера на ту машину, с которой вы зашли на сервер.

Заходя в инкрементальную резервную копию, вы видите полную картину сохраненной файловой системы, то есть полную резервную копию плюс наложенную на нее инкрементальную копию. А для всех измененных файлов можно просмотреть список версий и восстановить нужную из них.

Кроме того, все операции по работе с архивами можно выполнять из командной строки, но я не вижу смысла приводить здесь синтаксис команд, поскольку он подробно описан в документации, идущей в составе дистрибутива.

В конце мне хотелось бы поблагодарить Павла Шера за ряд ценных советов, которые мне пригодились при написании статьи.

Рисунок 2

Рисунок 3

Рисунок 4


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru