Эту статью больше года назад опубликовал в журнале Системный Администратор (http://www.samag.ru/), где она заняла третье место по итогам 2006 года.
Не секрет, что информационные ресурсы любой компании представляют ценность. В сборе, анализе и использовании информации задействованы практически все сотрудники. Но как ее тяжело добыть, так же легко ее подчас потерять.
Самым распространенным способом сохранения информации в любой ситуации является ее дублирование. Резервная копия, сохраненная на другом источнике, стримере, жестком диске, DVD/CD в случае выходя из строя основной системы, позволит восстановить необходимое практически с нуля. Решение задачи построения систем резервного копирования и хранения данных зависит от инфраструктуры предприятия, ценности информации и требований к степени готовности такой системы. Поэтому, не смотря на кажущуюся простоту, выбрать необходимое решение удается не сразу. Схожие на первый взгляд проекты не сразу раскрывают все свои возможности, и чтобы их выявить иногда приходится устанавливать систему и пробовать ее в работе.
Учитывая, что в каждой конкретной ситуации (сервер, небольшая сеть, гетерогенная сеть и пр.) необходимо персонально подходить к решению задачи копирования, решено было протестировать ряд проектов, результат в виде 17 систем различного назначения представлен в итоговой таблице. Системные требования участников тестирования существенно разнятся, так если для работы сервера afbackup подойдет компьютер пятилетней давности, то для Time Navigator и Arkeia Network Backup они на порядок выше. К сожалению, объемы статьи не позволяют включить в итог все решения, которые проходили тестирование. Удалось договориться не со всеми производителями коммерческого софта. Иногда вместо ссылки на дистрибутивный файл, на мой почтовый ящик приходило письмо от менеджера с просьбой объяснить, зачем мне понадобился тот или иной продукт. Но главная цель статьи не показать победителя, а помочь сориентироваться при выборе и определиться с критериями.
AMANDA (Advanced Maryland Automatic Network Disk Archiver)
Этот проект, начатый в 1998 году в департаменте компьютерных технологий университета Maryland США, постепенно утратил поддержку в родных стенах, и исходные тексты были перемещены на Sourceforge. В настоящее время разрабатывается многими добровольцами, и хотя не заявлена лицензия GNU GPL, любой желающий может модифицировать код по своему усмотрению, распространять и продавать, при условии, что авторство будет сохранено. AMANDA является надстройкой к стандартным программам dump/restore, GNU tar и многим другим. Построен по клиент-серверной схеме, при чем клиент может быть установлен на одном компьютере с сервером, либо клиенты могут быть установлены на всех компьютерах которым требуется архивация. Для передачи информации используется свой протокол работающий поверх UDP или TCP. Последние версии AMANDA могут взаимодействовать с компьютерами Windows посредством SAMBA, либо как вариант можно использовать клиента скомпилированного под cygwin. Поддерживается шифрование информации, как на клиенте, так и на сервере, для этих целей используется несимметричный GPG и симметричный amcrypt алгоритм, хотя легко можно добавить и любой другой. Аналогично можно настроить и сжатие данных. Если сжимать информацию на клиенте это уменьшит нагрузку на сеть, если на сервере, то разгрузит нагрузку на маломощную машину клиента. При наличии нескольких средств архивации на одном сервере можно использовать несколько независимых конфигураций. AMANDA оптимизирована для работы со стримерами, но тем ни кто не запрещает использовать CD и DVD. Процессом резервирования можно руководить как вручную, так и запускать при помощи cron.
Arkeia
Компания выпускает два продукта Arkeia Network Backup и Arkeia Smart Backup. Первый предназначен для больших и средних сетей, второй для небольших растущих сетей. Отличаются они ценой. Так Smart Backup для пользователей Linux бесплатен, и ограничен 50Гб архивируемой информации. Стоимость лицензии Network Backup может колебаться от 3,000 до 15,000 у.е. Построен по клиент-серверной схеме. Имеются перекомпилированные пакеты для большинства систем. Для управления процессом архивирования используется Arkeia Manager, а на клиентских машинах устанавливаются программы клиенты. Эти компоненты написаны на Java и доступны для большого числа платформ. Локализованного интерфейса к сожалению нет. Клиент в принципе не привязан к конкретному серверу, можно развернуть несколько серверов и для резервирования выбрать любой из доступных, если администратор разрешил к нему доступ. Пользователи могут быть разделены на роли (ADMINISTRATOR, OPERATOR, USER) со своими правами в системе. Разработаны также дополнительные модули, позволяющие резервировать данные отдельных приложений без их остановки. В настоящее время доступны такие модули для Lotus, Open-Xchange, LDAP, MS Exchange, и баз данных Oracle, mySQL, PostgreSQL, DB2, и MS SQL Server. Стоит также отметить и функцию Disaster Recovery, появившуюся в продуктах Arkeia начиная с версии 5.3.12. С ее помощью можно восстановить данные на компьютере под управлением Linux или Windows всего за несколько шагов, даже если исходный компьютер потерян или вышел из строя.
Поддерживается протокол NDMP версии 3, позволяющий управлять данными на носителях. Его применение дает выигрыш по времени в операциях резервирования и восстановления. Возможно несколько вариантов дублирования резервной информации, восстановление с переадресацией данных, выполнение команд до и после резервирования. Удобный планировщик календарного типа позволяет выполнить все необходимые операции: полную, инкрементную, дифференциальную копии, восстановление и прочее. Общее впечатление портит только передача логина/пароля в открытом виде, что при возможностях Arkeia может привести к утечке информации, ведь восстановить файл можно в произвольное место в сети.
Afbackup
Построен по клиент-серверной схеме. Сервер отвечает за работу с различными устройствами хранения информации, отслеживает их состояние, количество. Все остальное лежит на клиенте. Клиент знает, какие файлы, каталоги подлежат резервированию, на какую кассету на стримере должна быть записана информация. На стороне клиента задействуются три утилиты. Утилита afclient отвечает за связь с сервером и осуществляет распаковку и упаковку файлов, afrestore – за восстановление информации, а afclient выполняет контролирующие и управляющие функции. Для последних двух утилит имеются фрон-енды xafrestore и xclientconfig. Чтобы знать какие файлы уже были резервированы клиент ведет специальный список, удаление которого приведет к тому, что повторно будет произведено полное резервирование. Аналогично, так как резервная копия привязана к имени узла, то при его изменении будет создана полная копия. Для уменьшения нагрузки на сеть файлы сжимаются индивидуально на стороне клиента. Сервер может работать в одном из двух режимов: однопоточном подходящем для полного резервирования и многопоточном, для инкрементного. В последнем случае для каждого соединения открывается новый порт. Все используемые кассеты получают специальную метку, к которой привязывается записанная информация, поэтому желательно эту метку нанести на коробку, чтобы не путать. Для работы с одним клиентом может быть настроено несколько серверов. Предусмотрено дублирование архива. Восстановлением информации может руководить как пользователь, так, и централизовано администратор. Дополнительно хочется отметить наличие большого числа дополнительных программ и утилит, например модуля к Webmin (http://sourceforge.net/projects/afbackup-webmin) и скрипта remote-afbackup позволяющего запускать операцию создания резервной копии удаленно.
Bacula [3]
Модульная архитектура этого мощного средства для создания, управления и восстановления информации позволяет использовать его как в малых, так и больших сетях. Работает по клиент-серверной схеме. Относительно прост в настройках и обладает большим количеством продвинутых возможностей, позволяющих с легкостью находить и восстанавливать утраченные или поврежденные файлы. Возможно, указать индивидуальные параметры для различных типов файлов. Например, текстовые сжимать, а архивы, исполняемые файлы передавать без сжатия. Центральным элементом Bacula является Director, который отвечает за хранение и запуск заданий, ведение журнала. Для хранения журналов архивных копий используется база данных. В настоящее время поддерживаются PostgreSQL, MySQL или SQLite, хотя если нет проблем с лицензированием можно использовать еще около 10 других СУБД. На компьютерах клиентов устанавливается File Daemon, который собирает данные для архивирования. Управление осуществляется посредством Bacula Console. Последние два компонента существуют для различных платформ, что позволяет без проблем использовать Bacula в гетерогенных сетях. Также стоит отметить весьма удачный планировщик, и систему приоритета выполнения заданий.
BackupPC [2]
Высокопроизводительное решение уровня предприятия, позволяющее резервировать данные компьютеров работающих под управление Unix/Linux, MacOS X и Windows разных версий. Прост в настройке и поддержке. Не требует клиентского ПО. Для резервирования данных Windows систем, используется протокол smb (или rsync работающий через cygwin), Unix и Linux — rsync или tar (над ssh/rsh/nfs). Для экономии ресурсов одинаковые файлы с одного и даже нескольких компьютеров загружаются только один раз, затем для привязки к конкретной системе используются жесткие ссылки, если на одной из систем такой файл изменился, то он будет перезаписан. Для управления процессом резервирования и восстановления информации, просмотра журналов и файлов в архиве, настройки, используется веб-интерфейс (т.е. придется ставить еще и веб-сервер), который, к сожалению не локализован. Выбранный для восстановления файл может быть скопирован на любой ресурс.
Следует также отметить поддержку резервирования систем подключающихся к сети периодически без постоянного IP-адреса и работающих через медленные каналы. Резервирования можно настроить как персонально, так и указать параметры, зависящие от операционной системы клиента. Определить различные задачи для полных и инкрементных копий. Если информация с компьютера не которое время не резервировалась, то пользователю будет послано предупреждение посредством электронной почты. Работает с архивами, созданными AMANDA (т.е. практически может служить к нему интерфейсом).
Backup Manager
Представляет собой инструмент, упрощающий процесс создания резервных копий, как полных, так и инкрементных. Для восстановления информации Backup Manager не используется. Но зато с его помощью очень просто организовать копирование локальных каталогов, баз данных MySQL и SVN репозитариев в архивы нескольких видов, на CD/DVD диски, а также на удаленные ресурсы. В качестве протоколов последних поддерживаются FTP, SSH, RSYNC и Amazon S3 (Simple Storage Service, http://aws.amazon.com/). Кроме того, есть возможность выполнения pre и post скриптов, что позволяет, например, автоматически монтировать и размонтировать SMB, NFS ресурсы. Для верификации записанной информации используется MD5, опционально архив можно зашифровать с помощью GnuPG.
Backupninja
Большинство свободных скриптов и программ предназначенных для создания резервных копий имеют неудобный файл конфигурации или вообще обходятся без такового. Целью проекта backupninja как раз и является повышение удобства при использовании таких программ, путем создания набора конфигурационных файлов расположенных в etc/backup.d/ имеющих единую, простую и понятную структуру. И попутно объединение возможностей нескольких программ. Псевдографическая консоль ninjahelper упрощает создание конфигурационных файлов и кроме того выдает подсказки по проведению некоторых операций. Поддерживается создание копий с удаленных ресурсов (посредством rdiff-backup), создание зашифрованных GnuPG образов (duplicity), резервирование Linux-Vserver, баз данных MySQL и РostgreSQL, содержимого OpenLDAP, SVN репозитариев, выдача информации по системе и аппаратному составу. Информация по работе может отправляться на указанный почтовый адрес.
Box Backup
Система резервирования Box Backup принадлежит к так называемым on-line. Разработчики считают, что в некоторых случаях дешевле вместо одного весьма дорогого стримера приобрести обычный сервер с несколькими дисками. У такой системы есть одно, но очень ценное достоинство все данные пользователю доступны по первому требованию, ведь все хранится на сервере, и нет необходимости в смене кассет. Построен по клиент-серверной схеме. И состоит из трех элементов: сервера bbstored, бєкап клиента bbackupd, задача которого контролировать изменения и загружать их на сервер и bbackupquery, инструмента предназначенного для создания запросов и восстановления информации. Особое внимание уделено вопросам безопасности данных. Так соединение между клиентом и сервером по умолчанию происходит по зашифрованному каналу, для генерирования и управления ключей, необходимых при аутентификации в комплекте имеются скрипты. Кроме того, резервируемые файлы на клиенте шифруются при помощи AES, а метаданные Blowfish. Поэтому даже если сервер компрометирован, данные все равно остаются в безопасности. Резервирование происходит в режиме «snapshot». После первого копирования в дальнейшем для обновления резервной копии используется rsync, поэтому в дальнейшем трафик может быть относительно небольшой. Старые версии не заменяются новыми, а удаляются только когда остется мало свободного места. Так же возможна работа в режиме «snapshot». По умолчанию в комплекте идут только утилиты командной строки, но отдельно разработан графический клиент Boxi (http://boxi.sourceforge.net/), использующий мультиплатформенную библиотеку wxWidgets. С его помощью довольно просто настроить опции копирования и восстановления файлов.
BRU Server
Простая в установке и использовании система, подходящая для создания резервных копий индивидуальным пользователям и предприятиям, с довольно гибкой лицензией (например, дополнительные серверы рассматриваются как клиенты). Работает по клиент-серверной схеме и включает три составляющих: сервер, клиент и консоль управления. Систему отличает возможность проверки правильности записанных данных на ленту данных без связи с клиентом. Данные могут быть записаны напрямую на стример, либо использовано промежуточное хранение на диске. Последнее позволяет затем более компактно расположить на одном носителе информацию с одного компьютера, параллельно резервировать данные с нескольких клиентов, при наличии одного стримера и проверять правильность записи на ленту. Также стоит отметить возможность восстановления части информации при ошибках считывания с ленты или диска. Информация может быть восстановлена не только в целевую, но и в другую систему или каталог. Фирменная технология QFA (Quick File Access) позволяет быстро получить доступ к данным на ленте. Управление может осуществляться не только через графическую консоль, но есть и командная строка, поддерживающая скрипты. Возможно выполнение на клиенте pre и post скриптов, позволяющая, например, заморозить состояние базы данных. Кроме BRU Server TOLIS Group представляет еще целый ряд продуктов предназначенных для резервирования информации.
Duplicity
Не смотря на небольшой размер, duplicity является довольно мощной системой резервного копирования информации. Его использование позволяет резервировать информацию с локальной системы, хотя его легко можно заставить получать информацию с удаленных систем по ssh. Представляет собой набор скриптов написанных на языке Python. Данные могут быть сохранены как в другом разделе, так и на удаленную систему. Поддерживаются ftp-серверы, ssh/scp, rsync. Использование librsync позволяет копировать только изменившиеся данные. Для работы требует наличия rdiff-backup о котором пойдет речь ниже. По умолчанию вся информация шифруется с помощью GnuPG.
DIBS — Distributed Internet Backup System
Весьма интересная система, написанная на Python и выпадающая из общего плана. Суть ее работы состоит в том, что создается сеть участников, которые обмениваются между собой данными, то есть работает такая сеть наподобие Р2Р вроде Napster, Gnutella, Kazaa. Вся информация перед передачей шифруется с помощью GnuGPG, поэтому пользователь на другом компьютере не сможет при всем своем желании ее прочесть. По сети передаются только изменившиеся файлы. Для повышения надежности используется код Рида-Соломона. Система DIBS очень проста в установке и настройке. После первоначальной настройки демон, работающий на системах, через определенное время проверяет данные в каталоге ~/.dibs/autoBackup, и если будут изменившиеся файлы, то они будут скопированы на удаленный компьютер. Все каталоги, информацию в которых необходимо резервировать должны содержать здесь символические ссылки. Для поиска подходящих для хранения резервных копий систем используется специальный сервис. При настройке своего сервиса может указываться дисковая квота, при превышении которой прием файлов прекращается. Сервис может быть настроен в активном и пассивном режиме, который используется в том случае, когда компьютер находится за межсетевым экраном.
rdiff-backup
Весьма популярная разработка Стенфордского университета, относительно недавно изменившая прописку. За 5 лет было выпущено более 60 релизов. Представляет собой скрипт, написанный на Python. Позволяет производить резервное копирование одного каталога в другой. Конечный каталог содержит копию исходного каталога, плюс в отдельном каталоге хранятся все описания различий копий в diff формате, поэтому возможно восстановление давно утерянных файлов и их версий. Невероятно прост в использовании. Возможно, совместное использование с SSH позволяющее производить безопасное копирование. Функциональность и удобство rdiff-backup могут добавить интерфейсы, разработанные под него. Так в настоящее время известны веб-интерфейсы
rdiffWeb (http://www.rdiffweb.org/), написанный на Python и rdiff-backup-web (http://rdiffbackupweb.sourceforge.net/) представляющий собой скрипты на PHP. Последний хотя и находится в состоянии альфы, но его уже можно рекомендовать к применению. И разработанный в рамках Google Summer of Code 2005 pyBackPack (http://projects.sucs.org/projects/pybackpack) использующий GTK+ библиотеки. К сожалению ни один из них не локализован.
Synbak
Основную цель, которую пытались достичь разработчики этого проекта – объединение нескольких методов создания резервных копий. Как и большинство проектов synbak является удобным интерфейсом для существующих программ. Используется простой и понятный файл конфигурации. Поддерживается создание резервных копий, в том числе и с удаленных ресурсов с использованием rsync (ssh, rsync, SMB/CIFS), баз данных MySQL и Oracle, каталогов LDAP, на архивы tar (tar, tar.gz и tar.bz2), стримеры и CDR/CD-RW/DVR/DVD-RW. Ресурсы cifs/smb при необходимости могут быть монтированы и размонтированы автоматически. Локальные базы MySQL могут быть сохранены в разных архивах, удаленные только в одном архиве. Любой удаленный ресурс может быть указан в стандарте URI то есть протокол://пользователь:пароль@узел/рeсурс. Система отчетов также стоит внимание, поддерживается вывод на консоль, отправка электронной почты, RSS сообщений, а также генерация html файла. При этом synbak имеет модульную архитектуру, позволяющую легко адаптировать для любой другой задачи, добавлен как новый метод резервирования, так и любые формы отчетов.
Time Navigator
Очень мощная легко расширяемая коммерческая разработка компании Atempo, предназначенная в первую очередь для больших предприятий, работающих в гетерогенной среде. Администрация упрощена благодаря продуманному унифицированному интерфейсу, позволяющему без проблем управлять несколькими серверами. При этом хранение информации прозрачно для пользователя, хотя копии различного назначения могут храниться на разных ресурсах с разным временем доступа (месяц – стриммер, день –диск и пр.) Поддерживается работа с протоколом NDMP. Применение Virtual Library System (VLS) позволяет эмулировать стример на жестком диске. Вся информация перед передачей шифруется, кроме того, возможно создание защищенных туннелей, для проверки оригинальности создается хеш. После передачи на сервер данные поторно проверяются путем сравнения хешей выработанных клиентом и сервером. Так как Time Navigator предназначен для работы с большим количеством клиентом, то он имеет специальную структуру Security and Compliance Manager (SCM) управляющую ключами и сертификатами. Вся информация разбита на классы, к которым используются разные правила защиты, это позволяет более гибко использовать ресурсы без ущерба безопасности. Для контроля безопасности ведутся журналы аудита, в которых заносится вся информация о деятельности пользователя. Система генерации отчетов ReporterTM собирающая данные со всех ресурсов, позволит получить практически всю необходимую при администрировании информацию, определить слабые места и выработать оптимальную стратегию резервного копирования.
Mondo Rescue [1]
Представляет собой набор утилит устанавливающихся в систему, либо загружаемых с CD. Он предназначен для создания резервной копии любой локальной области системы и записи их затем на CD/DVD, стример, жесткий диск или NFS сетевой ресурс. В случае краха можно будет очень легко восстановить и в том числе и с нуля не только сохраненную информацию, но и систему. Поэтому Mondo может пригодиться не только в аварийных случаях, но и при переразбиении дискового пространства или, например, при переходе на RAID. Также этот пакет весьма удобен для клонирования системы на несколько компьютеров с одинаковой конфигурацией. Для создания ежедневных резервных копий он не удобен. Mondo Rescue поддерживает почти все файловые системы, о которых знает ядро Linux ext2/3, JFS, XFS, ReiserFS, VFAT, а также LVM и RAID. Возможность клонирования позволяет использовать Mondo Rescue и для резервирования не-Linux файловых систем, например NTFS. В работе помогает понятная curses-консоль, позволяющая руководить процессом сохранения и восстановления информации. Кстати Mondo Rescue используют такие компании как Siemens, HP, IBM, NASA.
Hydra Backup System
Клиент-серверная система, в которой клиент используется администратором для настройки параметров резервирования. Всю работу выполняет сервер, результат сохраняется в каталог ftp сервера. К сожалению Hydra умеет создавать, только полные копии и только локальных каталогов, если нужны инкрементные и дифференциальные, то этот проект не для вас. Каталоги можно копировать ежедневно, еженедельно или ежемесячно. Файл конфигурации не используется, вместо этого все введенные администратором параметры сохраняются в файл /var/lib/hydra/targets_dump. В комплекте с системой поставляется как клиент командной строки, позволяющий управлять процессом удаленно, так и графический PyQT клиент. Клиенты могут использоваться для администрирования процессов резервного копирования на любом сервере Hydra в сети, для доступа используется пароль, хеш которого сохраняется в ~/.hydra позволяя в последующем не вводить его при подключении к серверу.
Hdup2
Небольшая по размеру, простая в настройках, но в тоже время довольно мощная утилита резервного копирования. Поддерживаются все присущие большинству подобных утилит возможности: include/exclude список, резервирования с удаленных источников, шифрование архива. Кроме того, возможно разбиениение резервной копии на файлы установленного размера, для того чтобы записать их затем на CD/DVD диск, отдельные подкаталоги можно исключить при помощи .nobackup файлов.
Таблица 1. Сводная характеристика рассматриваемых продуктов
1.Название |
AMANDA |
Arkeia |
Afbackup |
Backupninja |
Bacula |
BackupPC |
Backup Manager |
Box Backup |
BRU Server |
Duplicity |
DIBS |
rdiff-backup |
Time Navigator |
synbak- |
Mondo Rescue |
Hdup2 |
Hydra Backup System |
Ссылки:
1. Яремчук С. Cпасем пингвина: Mindi Linux и Mondo Rescue
– Журнал “Системный администратор”, № 2, 2004 г. – 14 – 17 с.
2. Маркелов А. Linux на страже Windows. Обзор и установка системы резервного копирования BackupPC – Журнал “Системный администратор”, № 9, 2004 г. – 2 – 7 с.
3. Гринько А. Архивируем данные с помощью Bacula
– Журнал “Системный администратор”, № 4, 2005 г. – 42 – 47 с.