Выбор системы резервирования для гетерогенной сети — дело весьма непростое. Требований, предъявляемых к конечному варианту, можно выставить предостаточно: поддержка как можно большего количества ОС (и, в первую очередь, Windows), различные схемы бэкапа, шифрование, удобство в настройках и многое другое. Среди бесплатных решений довольно много интересных систем, попробуем разобраться в их особенностях.

 

Bacula

  • Сайт проекта: bacula.org, sf.net/projects/bacula
  • Доступные версии: свободная Bacula
  • Project 5.х и коммерческая Bacula System Enterprise 4.х
  • Лицензия: GNU GPL
  • ОС сервер: Linux, FreeBSD, Open/Solaris
  • ОС клиент: Linux, *BSD, Open/Solaris, Mac OS X, Win

Очень популярная кроссплатформенная система резервного копирования, архивирования и восстановления данных. Построена по клиент-серверной технологии, модульная архитектура делает Bacula достаточно гибким инструментом, позволяющим использовать его как на единичной системе, так и для резервирования данных в разветвленной корпоративной сети. Все настройки осуществляются путем правки конфигурационных файлов.

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

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

Сжатие файлов производится на клиентской стороне, что уменьшает трафик и разгружает сервер. Стоит отметить весьма удачный встроенный планировщик и систему приоритета выполнения заданий.

Система резервирования, построенная на Bacula, состоит из трех основных компонентов, которые могут быть развернуты как на одном, так и на нескольких серверах/рабочих станциях:

  • Director (порт 9101) — основной элемент, осуществляющий централизованное управление всеми составляющими Bacula, формирование и запуск заданий по расписанию, также ведет журнал событий;
  • Storage (порт 9103) — демон, отвечающий за непосредственную запись резервируемых данных на носитель (жесткий диск, CD/DVD, ленточный или USB накопитель);
  • File Daemon (порт 9102) — клиентская программа, которая устанавливается на каждом компьютере и по команде Director’а производит резервирование и передачу данных на Storage.

Кроме этого, для отслеживания процесса обмена данными между Direct, Storage, File Daemon и управления работой Bacula администратор устанавливает на свой компьютер Monitor (значок висит в трее) и консоль.

Для хранения журналов архивных копий используется база данных — PostgreSQL, MySQL или SQLite. Сервер с ролью Director и Storage должен работать под управлением Linux, FreeBSD, Open/Solaris. Список ОС, на которые можно установить клиента, пополнен Windows (32 и 64 bit), *BSD, Mac OS X. Именно такое разнообразие и привело к тому, что Bacula очень популярна в гетерогенных сетях. Соединение между компонентами не защищено, но при необходимости легко настроить SSH туннель, на сайте проекта есть подробное описание.
В настоящее время доступно несколько вариантов консоли управления. Кроме текстовой консоли bconsole, проект предлагает графическую утилиту BAT (Bacula Admin Tool) на Qtбиблиотеках (в Ubuntu в universe) и wx-console на wxWidgets. В отдельном архиве (baculagui) идут: bweb (веб-интерфейс на Perl для выполнения базовых операций), bacula-web (веб-консоль, написанная на PHP), bimagemgr (веб-инструмент для управления записанными на CD данными). Кроме этого, доступен ряд сторонних разработок, например Baculaconf (baculaconf.sf.net) и Webacula (Web + Bacula, webacula.sf.net/ru). Так что из любой точки планеты, используя только веб-браузер, админ может запустить задание и просмотреть текущий статус (выполненные, с ошибками и т.д.), восстановить файлы, управлять хранилищами и многое другое.

По умолчанию для аутентификации компонентов Bacula используется пара логин и пароль (передается CRAM-MD5), но при необходимости довольно просто настроить более защищенную TLS аутентификацию. В общем случае правило iptables для сети 192.168.1.0/24 выглядит так:

Для сервера:

-A INPUT -p tcp --dport 9101:9103 –s 192.168.1.0/24 -j ACCEPT

На клиентском компе нужно открыть только 9102 порт:

-A INPUT -p tcp --dport 9102 –s 192.168.1.0/24 -j ACCEPT

Админы, не желающие возиться с установкой Bacula, могут воспользоваться специализированным дистрибутивом Bran (branbackup.org, его основой послужил ALT Linux), предназначенным для организации центра хранения информации. Для управления настройками предлагается простой и понятный веб-интерфейс.

 

BackupPC

  • Сайт проекта: backuppc.sf.net
  • Лицензия: GNU GPL
  • ОС сервер: Linux, *BSD, Open/Solaris
  • ОС клиент: не требует

BackupPC — еще одно популярное решение для резервирования и восстановления данных в гетерогенных сетях. В отличие от Bacula, не требует установки клиентского ПО, поэтому достаточно прост и понятен в настройке и поддержке. Ведь все установки производятся практически в одном месте, настройки на клиентской стороне минимальны. Серверная часть может работать на сервере под управлением практически любой Unix-подобной ОС — Linux, *BSD, Open/Solaris. Для резервирования данных с клиентских машин под управлением Unix/Linux, Mac OS X и Windows используются «родные» протоколы. Так для подключения к сетевым папкам Windows применяется SMB, хотя предусмотрена работа и с использованием rsync (через cygwin), для Unix-подобных систем выбор шире — rsync, nfs или tar.

BackupPC является универсальным средством, поскольку можно определить вариант создания резервной копии для любой ситуации: в локальной сети можно отдать предпочтение SMB, менее нагружающему клиентскую систему, но требующему более широкого канала, а для удаленных систем, разбросанных по филиалам и работающих через медленные каналы — rsync. Компрессия данных производится на сервере (gzip/bzip2), администратор может задавать различный уровень сжатия. Данные сервер сохраняет на жестком диске, ленточном накопителе или сетевом ресурсе. При необходимости передачи информации по незащищенным сетям легко настроить SSH туннель.

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

В BackupPC есть еще одна фишка, которая позволяет экономить место на харде. Если при копировании обнаружится несколько копий одного файла, то такой файл загружается только один раз. А для привязки к резервируемой системе создается жесткая ссылка. Если файл изменится, то он будет резервирован уже стандартным способом. Файл при необходимости можно восстановить на любой компьютер. Также следует отметить возможность работы с архивами, созданными системой бэкапа AMANDA.

Основные настройки производятся путем правки config.pl (файл хорошо документирован, в поставке есть готовый шаблон). Общие параметры могут быть переопределены в индивидуальных файлах настройки (размещаются в /ServerBackupPC/pc/computer_name). Список «подлежащих архивированию» компьютеров заносится в файл hosts.

Для изменения конфигурации сервера, добавления и удаления узлов, просмотра текущего состояния процесса создания резервных копий, инициализации и приостановки заданий, поиска и восстановления данных используется удобный веб-интерфейс (CGI), поэтому придется поднимать еще и веб-сервер. Хотя проблем здесь обычно не возникает, поскольку при установке практически любого дистрибутива из репозитария все необходимое будет сделано автоматически. Веб-интерфейс не локализован, но понятен даже неспециалисту.
Написан BackupPC на Perl, для работы потребуется ряд дополнительных модулей: Compress::Zlib, Archive::Zip и File::RsyncP. Кроме этого, понадобятся серверы Samba и Apache.

Текущей стабильной является версия 3.1.0 (ноябрь 2007 года), хотя на сайте проекта имеется уже 3.2.0beta0 (апрель 2009), работающая стабильно и без нареканий.

 

Box Backup

  • Сайт проекта: boxbackup.org
  • Лицензия: BSD
  • ОС сервер: Linux, *BSD, Open/Solaris, Mac OS X
  • ОС клиент: Linux, *BSD, Open/Solaris, Mac OS X, WinXP/2k3/Vista

Разработчики системы резервирования Box Backup считают, что нужные данные должны быть всегда под рукой. Учитывая, что цены на терабайтные жесткие диски уже не кусаются, в некоторых случаях вполне можно обойтись и без стримера, кассет, CD/DVD и так далее.
Достаточно сервера с несколькими жесткими дисками. В итоге не нужно беспокоиться о безопасном хранении кассет, а нужный файл восстанавливается буквально одним щелчком мышки. Резервная копия создается, как только будет обнаружено изменение исходного файла. При первом запуске программы создается полная копия данных (snapshot), затем для уменьшения трафика по сети передаются только изменения (rsync).

Интересно, что в Box Backup имитируется работа с лентами, в архиве доступны как старые, так и новые версии файла. Если пользователь удалил данные на своем компьютере, в резервной копии они по-прежнему остаются (пока есть место на диске) и лишь помечаются как удаленные. Таким образом, Box Backup является еще и дополнительной Корзиной для особо важных файлов. Пользователь при необходимости может самостоятельно вернуть файл к жизни, если обнаружит пропажу.

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

ExcludeFilesRegex = .*\.(mp3|MP3)$

Построен Box Backup по ставшей уже привычной клиент-серверной схеме и состоит из трех элементов: сервера bbstored, осуществляющего хранение информации, клиента bbackupd, контролирующего изменения и при обнаружении таковых загружающего новые данные на сервер, и утилиты bbackupquery, предназначенной для управления созданием резервных копий и восстановления информации.
То, что резервированием фактически управляет клиент, достаточно удобно, ведь таким образом можно легко бэкапить данные с ноутов мобильных сотрудников, как только они подключатся к корпоративной сети. В качестве серверной части рекомендуются OpenBSD и Linux, но Box Backup будет работать на Free/NetBSD, Mac OS X, Solaris. Клиентская часть, кроме перечисленного, может быть установлена и на Windows.

Безопасности в Box Backup уделено особое внимание. Так аутентификация и передача данных производятся по защищенному TLS/ SSL каналу. После установки сервера генерируется сертификат, в комплекте поставляется специальный скрипт bbstored-certs, облегчающий процедуру его создания. Сами данные шифруются на клиенте при помощи алгоритма AES, метаданные — Blowfish, это гарантирует, что на сервере не будет открытой информации, которую легко украсть. Не зная ключа, прочитать файлы (они хранятся под номерами, а не именами) невозможно.

Кроме этого, шифрование на стороне клиента уменьшает нагрузку на сервер, процесс имеет невысокий приоритет, поэтому работа системы резервирования почти незаметна.

По умолчанию все настройки как на сервере, так и клиенте производятся в командной строке и при помощи конфигурационного файла. Отдельно доступен графический клиент Boxi (boxi.sf.net), собранный с использованием кроссплатформенной библиотеки wxWidgets. С его помощью довольно просто настроить опции копирования и восстановления файлов.

Также в комплекте идет скомпилированный клиент для Windows. Сторонними разработчиками написан веб-клиент Boxbackup-Explorer (joonis.de/boxbackup-explorer), который позволяет восстановить файлы и просмотреть статистику по наличию свободного места и использованным лимитам.

Последней стабильной версией является 0.10 (февраль 2006 года), которой и рекомендуют пользоваться разработчики. Но в ней есть проблема: при создании резервной копии размером больше 2 Гб появляется ошибка. Если же для твоей сети это ограничение критично, можно воспользоваться нестабильной версией 0.11rc5 (сентябрь 2009), хотя разработчики предупреждают о том, что в ней реализован еще не весь функционал.

 

AMANDA

  • Сайт проекта: amanda.org, sf.net/projects/amanda
  • Лицензия: Freeware
  • ОС сервер: Linux, *BSD, Open/Solaris, Mac OS X
  • ОС клиент: Linux, *BSD, Open/Solaris, Mac OS X, WinXPSP2/2k3SP2/VistaSP1/2k8R2/7

AMANDA (Advanced Maryland Automatic Network Disk Archiver) — развитая система архивирования, созданная и первоначально поддерживаемая университетом Maryland (США). Со временем исходные тексты были перемещены на Sourceforge, и сегодня проект разрабатывается сообществом добровольцев и распространяется под freeware лицензией, разрешающей его модифицировать, копировать, распространять и продавать при условии сохранения авторства.

Раньше AMANDA пользовалась популярностью лишь у админов, обслуживающих *nix-сервера в больших сетях. Дело в том, что по сути AMANDA является надстройкой к стандартным dump/restore (для XFS xfsdump), GNU tar, compress, gzip и так далее, и изначально ориентирована на архивирование данных на стримеры. Но постепенно AMANDA научили сохранять данные на жесткий диск, CD/ DVD и МО-диски. И теперь для этого уже не нужны лишние телодвижения, хотя первоначальная адаптация под стример дает о себе знать, например жесткий диск нарезается на виртуальные кассеты. Возможности по созданию архива AMANDA определяются потенциалом dump и tar. Для ext2/3, ZFS и XFS можно снять снапшот целого раздела, причем без его предварительного размонтирования, для архивирования данных на остальных ФС следует использовать уже tar, который снапшоты снимать не умеет, зато в этом случае есть возможность отбора файлов и каталогов по шаблону.

Построена AMANDA по клиент-серверной схеме. В зависимости от конфигурации сети и использования ОС, клиент устанавливается на удаленных системах, данные которых требуется архивировать, либо на самом сервере. Например, резервирование файлов ОС Windows изначально поддерживалось по SMB. Сегодня доступна отдельная специальная версия — Zmanda Windows Client 2.6.x (wiki.zmanda.com/index.php/Zmanda_Windows_Client), поддерживающая Win32 API и использующая возможности Volume Shadow Services для создания резервных копий (подробнее о VSS читай в мартовском номере ][ за 2008 год). Этот клиент будет работать на всех популярных версиях окон: WinXPSP2/2k3SP2/VistaSP1/2k8R2 и Se7en. Усилиями сторонних разработчиков доступен веб-интерфейс (cs.ait.ac.th/laboratory/amanda), который поможет пользователям Windows зарегистрировать их системы для бэкапа на сервере.
Для передачи информации между сервером и клиентом используется собственный протокол, работающий поверх UDP или TCP. При настройке администратор может выбрать один из нескольких способов аутентификации: Kerberos 4/5, OpenSSH, rsh, bsdtcp, bsdudp и Samba. Но нужно учитывать, что Windows клиент поддерживает только bsdtcp. Для его использования сервер следует запустить с аргументом "-auth=bsdtcp". Например, для inetd: amanda stream tcp nowait amanda /usr/lib/ amanda/amandad amandad -auth=bsdtcp amdump В настройках сервера, в файле disklist, где указываются ресурсы, которые должны резервироваться, нужно прописать параметр:

auth "bsdtcp"

Управление архивированием осуществляется стандартным образом, то есть команду дает сервер. Клиент ожидает подключение сервера на порту 10080/UDP или 10081/ TCP, если используется Kerberos. Для передачи данных открывается новое соединение. В плане настройки сжатия и шифрования данных AMANDA — самая гибкая из систем этого обзора.

Обе операции можно выполнить как на клиенте, так и на сервере, в результате админ может более планомерно распределить нагрузку на системы и загрузку сети. Шифрование файлов производится при помощи GPG, по умолчанию эта функция отключена, но администратор самостоятельно устанавливает, кто, какой утилитой (amcrypt, GPG и т.д.) и с какими параметрами будет шифровать данные. Опционально также активируется шифрование потока между клиентом и сервером:

kencrypt yes

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

Все настройки производятся в конфигурационных файлах сервера, их формат достаточно прост. В поставке есть несколько хорошо прокомментированных шаблонов, что упрощает изучение. К сожалению, за весь период своего развития AMANDA так и не обзавелась удобным графическим интерфейсом. Впрочем, многие админы считают, что ей он и не нужен. Хотя в коммерческой версии Amanda Enterprise Edition предлагается GUI (Zmanda Management Console), обладающий всеми необходимыми функциями для управления бэкапом в больших организациях. Но если процесс создания резервной копии в AMANDA достаточно прозрачен, то обратная процедура — восстановление данных при помощи утилиты amrecover, требует некоторой сноровки, и новичку, вероятно, не понравится: необходимо последовательно указать имя задания, узел, диск, просмотреть список файлов и затем восстановить выбранные. Хотя спасает то, что в большинстве случаев архивные копии так и остаются невостребованными.

 

Заключение

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

 

Links

 

Архивирование vs Резервирование

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

1 комментарий

  1. frolpaxa

    06.01.2016 at 15:20

    Amanda конечно интересна, но в большинстве случаев, из-за не совсем простой настройки, ее обходят стороной новички. Вот по этому поводу нашел отличный ман — https://zefir.space/a/18/

Оставить мнение

Check Also

Алмазный фонд «Хакера». Самые крутые материалы по реверсингу и malware за три года

Иногда мы, редакторы и авторы «Хакера», сами читаем «Хакер». Нет, ну то есть мы постоянно …