Журнал LinuxFormat - перейти на главную

LXF131:BackupPC

Материал из Linuxformat
Перейти к: навигация, поиск
PING и BackupPC Всесторонняя защита для системных и пользовательских данных

Содержание

P&B: Резерв карман не тянет

Удивлены загадочной аббревиатурой в заголовке? Юрий Винник расшифрует для вас не только ее, но и тонкости процесса резервного копирования.

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

Ниже мы коснемся двух инструментов для решения этой задачи: специализированного LiveCD для снятия образов разделов по имени PING (PartImage Is Not Ghost) и службы централизованного резервирования BackupPC. Их комбинация поможет в максимально сжатые сроки восстановить работоспособность компьютера при крахе файловой системы или даже при физическом выходе из строя винчестера.



Часть 1: PING не призрак, но Ghost заменит

Скачайте ISO-образ PING с официального сайта (http://ping.windowsdream.com) и прожгите его на диск. Вставьте последний в привод и перезагрузите компьютер (разумеется, не забудьте выбрать CD-ROM в качестве загрузочного устройства в BIOS). После старта дистрибутива вы увидите приглашение, сообщающее, что для входа в интерфейс сохранения/восстановления разделов нужно нажать Enter. Затем система поприветствует нас и напомнит об осторожности, предупредив, что данные образа полностью заместят те, что имеются сейчас на винчестере. Примите это к сведению и нажмите Enter еще раз.

Создаем образ

В появившемся диалоговом окне вам предложат получить административный доступ к системе [Get a shell (root)] или перегрузить/выключить компьютер [Reboot the system/Shutdown]. Выбирайте первый вариант – PING попросит вас указать место для хранения образов дисков, которые вы снимете. Им может быть сетевое устройство [Network Share] или локальный накопитель [Local disk/partition].

Рассмотрим первый случай. После нажатия Enter на Network Share вы почувствуете некую задержку – это система пытается получить сетевые реквизиты через DHCP. Если ей это не удастся, вам придется ввести IP-адрес, маску подсети и шлюз по умолчанию вручную. Далее, надо определиться с протоколом. Им может быть SMB/CIFS (сети Windows), NFS или FTP (только на чтение, то есть с FTP-ресурса можно загрузить образ, но нельзя сохранить снятый). Предположим для определенности, что резервирование выполняется на удаленный Windows-сервер. Создайте на нем новый разделяемый ресурс и защитите его, установив права на чтение-запись только для одного пользователя с паролем. На разделяемом ресурсе должны присутствовать каталоги Blank_Local_Admin_Passwd и Create_New_Image, иначе PING откажется с ним работать. Это требование касается и двух других протоколов – NFS и FTP, а также Samba, если вы используете CIFS в связке с Unix/Linux.

Теперь у вас всё готово для работы с сетевым хранилищем по протоколу SMB. Чтобы создать образ раздела (или разделов), нужно выполнить несколько простых действий:

  1. Выберите в меню пункт CIFS, введите IP-адрес или имя сервера, название разделяемого ресурса, где вы намерены хранить образы, а также имя и пароль допущенного к нему пользователя
  2. Укажите раздел (или разделы) жесткого диска, с которых необходимо снять образы. Для множественного выбора используйте клавишу Пробел, подтверждение – Enter.
  3. Введите название директории, где следует сохранить образы. Для простоты мы укажем текущий каталог, обозначаемый символом ‘\’. Дайте образу имя, скажем, XP_02082009.
  4. Определитесь со сжатием. Gzip работает быстро, но дает меньшую степень компрессии, bzip2 медленнее, но компактнее. Можно отказаться от сжатия совсем, выбрав пункт No comression.

Дождитесь, пока PING закончит создавать образ выбранного вами раздела. После завершения процесса появится приглашение входа в систему вида «PING login:». PING поддерживает несколько способов создания образов – рекомендую остановиться на PartImage как на наиболее универсальном. При этом для большинства распространенных типов файловых систем будут сохраняться толькозанятые блоки диска, что уменьшит место, требуемое для хранения файла образа. В случае NFS все происходит аналогично, разве что имя пользователя и пароль не запрашиваются.

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

Восстанови это

Чтобы восстановить заботливо резервированную вами ОС, нужно снова загрузить PING и выбрать место хранения образа – локальный диск [Local disk/partition] либо сетевой ресурс [Network Share]. Как и раньше, во втором случае потребуется указать протокол доступа к ресурсу (CIFS, NFS либо FTP) и все необходимые реквизиты: сетевой адрес, название, имя пользователя и пароль. Далее необходимо выбрать в меню пункт «###CHOOSE THIS if you want a RESTORATION###» и нажать Enter. Это приведет к появлению меню со списком сохранённых образов – отметьте в нем нужный и нажмите Enter. После удачного восстановления раздела должно появится уже знакомое вам приветствие «PING login:». В случае восстановления с локального диска или раздела потребуется лишь указать каталог, в который смонтировано хранилище образов.

Вставил и забыл

Конечно, восстанавление образов вручную (особенно в случае глобальных катаклизмов в сети) может оказаться делом утомительным. На этот случай разработчики PING предусмотрели возможность создания диска автоматического восстановления, реализующего эту процедуру без участия со стороны администратора. Чтобы сгенерировать его, нужно скачать с сайта разработчиков PING несколько дополнительных файлов: initrd.gz, kernel, isolinux.bin, logo.16, boot.msg и isolinux.cfg. Далее, создайте каталог для хранения ISO-образа нового диска (например, ~/MyISO), а в нём – подкаталог для данных (скажем, ~/MyISO/MyData), куда следует сохранить эти самые дополнительные файлы и образы разделов компьютера, для которого предназначается «самовосстанавливающийся» диск. Далее, откройте файл isolinux.cfg в любом текстовом редакторе (в текущем номере журналаэто Nano), найдите строку, начинающуюся с APPEND, и приведите ее примерно к следующему виду:

APPEND vga=normal devfs=nomount Restore_Only=Y AUTO=Y No_Shell=Y After_Completion=Shutdown 
pxe ramdisk_size=50000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=initrd.gz 
root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nommconf 
pci=nomsi irqpoll quiet

Параметры должны быть размещены в одну строку, без переносов. Их смысл можно выяснить в документации PING (http://ping.windowsdream.com/ping/doc-2.01/annex.htm).

Теперь всё готово к созданию образа загрузочного диска. Перейдите в ~/MyISO/MyData и выполните следующую команду:

mkisofs -r -b isolinux.bin -boot-info-table -no-emul-boot -boot-load-size 4 -o ../BurnMe.iso .

Обратите внимание на точку в конце команды. Это не опечатка, а указание mkisofs искать файлы создаваемого ISO-образа в текущем каталоге.

Сгенерированный загрузочный ISO-образ (BurnMe.iso) будет сохранен в директории ~/MyISO. Его можно прожечь на DVD и использовать для восстановления разделов. Однако будьте внимательны! После загрузки с такого диска восстановление начнется без предупреждения, и вся хранимая на винчестере информация будет потеряна. Если вам нужна интерактивная система восстановления, уберите параметры AUTO=Y и Restore_Only=Y в строке APPEND.

Может статься, что созданные вами образы разделов винчестера превышают объём CD или DVD. Тогда можно создать многодисковый образ. Для начала прикиньте, сколько носителей вам для этого понадобится. Далее, создайте в ~/MyISO столько подкаталогов, сколько у вас будет дисков, например DVD1, DVD2. Первый диск должен быть загрузочным – скопируйте в него файлы initrd.gz, kernel, isolinux.bin, logo.16, boot.msg и isolinux.cfg и отредактируйте isolinux.cfg, как было указано выше. Создайте в этом же подкаталоге пустой файл с именем MULTI, без расширения. Кроме этого, скопируйте в ~/MyISO/DVD1 файлы bios, hda, hdb, hdc, hdd, sda, sdb, sdc, sdd и *.first_sector из созданного вами образа винчестера. Наконец, заполняйте будущий диск файлами с расширениями *.001, *.002 и так далее, пока на нем не закончится место. Следите только за тем, чтобы эти файлы соответствовали одному разделу винчестера, то есть имели имена типа hda1.001, hda1.002, … . Второй и последующие диски тоже должны содержать пустой файл с именем MULTI и части образов, сформированные по указанному выше принципу. На последнем диске файл MULTI должен отсутствовать. Первый диск нужно обязательно сделать загрузочным, как это было показано выше, остальные же можно просто записать на DVD-R как данные.

Часть 2 BackupPC: Сохраним наработанное

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

BackupPC может функционировать только на операционных системах GNU/Linux, BSD или Solaris. Это связано с особенностями файловых систем этих ОС, а именно возможностью создания жёстких ссылок [hard links] на файлы.

Так как BackupPC написана на языке Perl, то для её нормальной работы нужно установить некоторые дополнительные Perl-модули, а именно Compress::Zlib и Archive::Zip, плюс опционально File::RsyncP. Кроме того, в системе должен быть установлен web-сервер Apache и пакет smbclient, если вы хотите использовать для копирования файлов сетевые диски Microsoft Windows или Samba; либо Rsync, если для этих целей планируется применять одноименный сервис.

Подготовимся

BackupPC, вероятно, доступен в репозиториях вашего дистрибутива, но вы всегда можете загрузить последнюю версию с сайта разработчиков (http://backuppc.sf.net). Сохраните архив в произвольный каталог и распакуйте его. Далее, действуя от имени администратора, выполните установочный сценарий BackupPC (perl configure.pl) и ответьте на вопросы инсталлятора. Все они хорошо документированы, поэтому обращу внимание лишь на самые важные.

  • BackupPC should run as user [backuppc] Укажите здесь имя пользователя, от лица которого выполняется Apache, поскольку BackupPC предоставляет доступ к своему web-интерфейсу только ему.
  • Apache image directory и URL for image directory Здесь указываются полный и относительный пути размещения картинок, необходимых для web-интерфейса. Если в качестве полного пути вы указали, например, /var/www/BackupPC, то относительным будет /BackupPC.

В подкаталоге init.d файла с архивами присутствуют стартовые скрипты BackupPC для многих ОС. Скопируйте подходящий в свой /etc/init.d/ под именем backuppc, установите ему права доступа 0755 и добавьте его в автоматически загружаемые системой сервисы.

Наконец, следует изменить владельца каталога, в котором будут хранится резервные копии, на пользователя, от имени которого выполняется BackupPC (и, в нашем случае, web-сервер). Используйте команду вроде chown www-data /var/data, где /var/data – это каталог, в котором будут храниться резервные копии.

Покончив с предварительными настройками, запустите сервис резервного копирования командой:

/etc/init.d/backuppc start

На стороне клиента

Одним из достоинств ВackupPC является умение выполнять резервное копирование с клиентов Windows без каких-либо дополнительных программ. Подлежащие резервированию диски и каталоги достаточно просто предоставить в общий доступ стандартными средствами операционной системы. Ресурс должен быть доступен для чтения и записи, и по этой причине его настоятельно рекомендуется ограничить определенным пользователем и паролем. Но так как надёжность сетевых сервисов от Microsoft у вашего автора вызывает большие сомнения, мы пойдем другим путем и будем получать данные с клиентских компьютеров посредством Rsync, независимо от платформы. В Linux Rsync можно установить через менеджер пакетов, а версию Rsync для Windows можно загрузить с сайта BackupPC (файл cygwin-rsyncd-x.y.z_r.zip). Этот метод требует инсталляции и настройки дополнительного программного обеспечения на компьютере пользователя, но в конечном итоге он стоит усилий.

Web-интерфейс

Перейдем к web-интерфейсу системы. Для начала, назначим администратора (или администраторов) и организуем для них доступ к системе по паролю. Для этого откройте от имени root конфигурационные файлы BackupPC и Apache: это /etc/BackupPC/config.pl и /etc/apache2/apache2.conf, соответственно. В первом из них следует найти строку $Conf{CgiAdminUsers} = и указать в кавычках имена пользователей-администраторов, разделив их пробелами, например: $Conf{CgiAdminUsers} = 'Andrey Vlad';. В конфигурационный файл Apache нужно добавить следующие строки:

<Directory /usr/lib/cgi-bin/BackupPC>
AuthBasicProvider file
Options +ExecCGI
Order deny,allow
Deny from all
Allow from localhost
AuthUserFile /etc/BackupPC/htpasswd
AuthType basic
require valid-user
</Directory>

Здесь мы устанавливаем требования для доступа к каталогу /usr/lib/cgi-bin/BackupPC (<Directory /usr/lib/cgi-bin/BackupPC>), в котором размещён web-интерфейс BackupPC, и предписываем использовать реквизиты, сохраненные в файле /etc/BackupPC/htpasswd (директива AuthUserFile /etc/BackupPC/htpasswd). Естественно, их надо предварительно создать командой htpasswd:

htpasswd -c /etc/BackupPC/htpasswd Andrey
htpasswd /etc/BackupPC/htpasswd Vlad

Проверьте, что все работает, открыв web-интерфейс, расположенный по адресу http://localhost/cgi-bin/BackupPC/BackupPC_Admin. После ввода имени пользователя и пароля вы должны увидеть стартовую страницу системы. Если же вы хотите получать доступ к web-интерфейсу BackupPC с других компьютеров, перечислите их адреса (можно в виде масок подсетей) в директиве Allow from в настройках Apache. Теперь, когда ваши хосты готовы к резервному копированию (см. врезку выше), осталось лишь организовать их мониторинг.

Настройка

В первую очередь следует добавить резервируемые системы с помощью пункта меню Правка хостов [Edit Hosts]. На открывшейся странице нужно нажать кнопку Добавить [Add] и ввести доменное имя хоста либо его IP-адрес. При необходимости, если компьютер получает имя с DHCP-сервера, нужно отметить галочкой пункт «dhcp». Все действия нужно сохранять нажатием кнопки Сохранить [Save] вверху страницы.

После добавления всех резервируемых хостов можно указать дополнительные параметры либо для системы в целом, через пункт меню Правка конфигурации [Edit Config], либо индивидуально для каждого хоста, выбрав из выпадающего списка Укажите хост...[Select a host...] интересующую нас систему, а затем щёлкнув на пункте Edit Config в меню для выбранного хоста. Давайте рассмотрим наиболее важные из доступных опций.

Параметр XferMethod на вкладке Передача [Xfer] задаёт метод доступа к резервируемым данным. Укажите здесь smb, если планируете получать к ним доступ по протоколу SMB/CIFS (то есть если вы пошли первым путём и просто экспортировали подлежащие резервированию каталоги как разделяемые ресурсы Windows), или rsyncd, если используется сервис Rsync. Также на этой же вкладке нужно обязательно указать имя сетевого ресурса SmbShareName (либо RsyncShareName). Если сетевых ресурсов на одном хосте несколько, их можно добавить с помощью кнопки Add. Ещё потребуется указать имя пользователя, которому разрешён доступ к данному ресурсу (SmbShareUserName), и его пароль (SmbSharePasswd). Для сервиса Rsync эти параметры имеют название RsyncdUserName и RsyncdPasswd соответственно.

В глобальных настройках системы, Сервер > Правка конфигурации [Server > Edit Config], кроме указанных выше параметров, можно задать ещё некоторые, влияющие на систему BаckupPC в целом. Так, WakeupSchedule на странице Server регулирует расписание, по которому система проверяет наличие изменений в файлах резервируемых систем. По умолчанию, проверка проводится каждый час, кроме полуночи.

После изменения глобальных настроек нужно перезагрузить конфигурацию серевера. Делается это путём нажатия кнопки Перезагрузить [Reload], которую можно найти в Сервер > Опции администратора [Server > Admin Options].

Все вместе

Теперь, чтобы обеспечить резервирование данных пользователя, нужно лишь:

  1. Открыть доступ к резервируемым ресурсам по сети, либо установить сервис Rsync и описать ресурсы через него.
  2. Создать образ разделов винчестера на сетевом ресурсе либо сохранить их на CD/DVD с помощью дистрибутива PING;.
  3. Добавить данные о резервируемых ресурсах в систему BackupPC.

Для быстрого восстановления работоспособности компьютера в случае сбоя будет достаточно:

  1. Загрузить дистрибутив PING и восстановить разделы.
  2. Загрузить восстановленную систему, запустить браузер, войти в web-интерфейс BackupPC, выбрать в меню Hosts [Хосты] восстанавливаемую систему и, далее, отметить последнюю резервную копию в пункте Backup Summary [Сводка резервирования] на открывшейся странице и восстановить из неё все пользовательские файлы.

Если же у пользователя просто произошла потеря либо повреждение файлов, без краха разделов, то восстановить данные можно, даже не подходя к его компьютеру. Для этого достаточно открыть web-интерфейс и отметить подлежащие восстановлению файлы, не вставая со своего рабочего места. По-моему, удобно.

Персональные инструменты
купить
подписаться
Яндекс.Метрика