суббота, 23 мая 2009 г.

Резервное копирование (Backup)

В данной статье описывается система резервного копирования на основе программы с открытым исходным кодом - Bacula.

Общее описание системы и ее компонентов

Общая схема системы бекапирования представлена на рис. 1.

В систему входят: директор (Director), хранилище (Storage Daemon), клиент (File Daemon), каталог (Catalog) и консоль (Console).

Директор - это программа, которая курирует все операции резервного копирования и восстановления. Администратор использует директор для планирования бекапов и восстановления.

Консоль — это программа, которая позволяет администратору или пользователю подключаться к директору.

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

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

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

В качестве каталога может использоваться одна из трех баз данных MySQL, PostgreSQL и SQLite. В наше примере использована БД PostgreSQL.

Файлы конфигурации системы, запускаемые процессы.


Директор - самый важный компонент. Он ведает всеми клиентами, сторожами, пулами (Pool), планирует (Schedule) и инициирует начало работ (Job), создает список файлов и каталогов для бекапирования (FileSet). Через директора осуществляется взаимодействие с каталогом.

Основной конфигурационный файл — bacula-dir.conf.


Основной конфиг делится на несколько секций:

Секция Director - описание директора.

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


Секция Storage — секция подключения сторожей.

В секции описаны сторожи, где bacula может сохранять бекапы. Задаются имя сторожа, IP адрес или DNS-имя сервера со storage-демоном (SD), порт, пароль от демона, устройство (Device) который предоставляет для записи SD, тип устройства (File или Лента).


Секция Pool — описание пулов.

В этой секции проводится описание пулов. Пулы служат для управления томами (Volume). В этой секции описывается тип пула (Backup, Scratch, Migration), задается формат имени тома - LabelFormat, Volume Retention - время, в течении которого, том гарантировано не будет использован другими работами (данные не будут перезаписаны), после этого времени том освобождается для новых работ.


Секция JobDefs - шаблоны работ.

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


Секция Job — описание работ.

В этой секции описывается: какого клиента бекапить и где сохранять бекапы, назначается расписание запуска ful- и incremental-бекапа, а также назначается fileset — список бекапируемых и не бекапируемых файлов. Для unix серверов стандартный fileset - /usr/local/bacula/etc/filelist/unix.conf, а для windows - /usr/local/bacula/etc/filelist/windows.conf. Так как работы в основном стандартные, то описание работы можно строить на основе шаблонов JobDefs.


Секция Messages — система отчетов.

Bacula ведет журнал всех выполняемых работ. Отчеты отсылаются по трем направлениям: консоль оператора, файл логов и электронная почта. Соответственно, в этой секции описывается какие сообщения отсылать на консоль оператора — console, какую информацию записывать в журнальный файл - append, на какой почтовый ящик отсылать email отчеты mail = bacula-report@exmple.com. Команды отправки писем определяются директивами mailcommand и operatorcommand.


Секция Catalog.

Здесь даются параметры подключения к БД.


Секция Client — клиенты bacula.

В этой секции определяются параметры подключения к файловому демону (FD) клиента bacula. Задается IP адрес или DNS имя клиента, порт и пароль. Можно также поменять БД, в которой сохранять данные по файлам и работам этого клиента. Директивами File Retention и Job Retention задаются сроки хранения данных о файлах и работах клиента, соответственно. Bacula хранит информацию о всех работах, файлах и томах 15 дней.

Управление директором осуществляется с помощью консоли - bconsole. Существует также ряд GUI-консолей: bgnome-console, bwxconsole, а также BAT - Bacula Administration Tool.


Комментариев нет: