Bacula
Система резервного копирования «bacula».
«It comes in the night and sucks the essence from your computers», — Kern Sibbald
Обзор
Отзывы
О системе можно встретить много положительных отзывов:
- масштабируема;
- автоматизирована;
- возможно восстановление с нуля («bare metal», не восстанавливаются атрибуты файловых систем и программный RAID);
- и многое другое.
Из отрицательных отзывов:
- плохо переносит резкие смены конфигурации;
- плохая обработка ошибок при работе с диском (заполненный диск, глюки с созданием нового тома при наличии файла);
- много ручной работы (там-же: после настройки работает в полностью автоматическом режиме).
Источник — Bog BOS.
Компоненты
Здесь:
- Bacula Director (bacula-dir) — управляющий демон;
- Bacula Console (bconsole) — программа управления (на машине администратора);
- Bacula File (bacula-fd) — демон бекапа (на машине с которой выполняется резервное копирование);
- Bacula Storage (bacula-sd) — хранилище;
- Catalog — база данных (MySQL, PgSQL, SQlite);
- Bacula Monitor — монитор (значок в трее).
Документация
- Официальная документация на www.bacula.org.
- Частичный перевод руководства есть на www.opennet.ru.
- Статья на ibm.com.
- Материалы на Bog BOS.
Установка
Основная статья: Быстрый старт
Установка по умолчанию, только до состояния работоспособности.
Все настройки по умолчанию.
Pools, Volumes and Labels
Основная статья: Pools, Volumes and Labels
Понимание использования пулов, томов и меток.
Планирование
Использование накопителей
Теперь, на имеющемся материале, имеет смысл определиться со структурой резервного копирования:
- распределить, какие бекапы на какие накопители писать (в случае файлов: винчестеры и разделы);
- какие пулы при этом использовать;
- и описать это, распределив по соответственным конфигурационным файлам.
Вынос части конфигурации в отдельные файлы
Bacula FAQ:
Yes, the Director configuration doesn't have to be in just one file. You can do this:
@/path/to/file1 @/path/to/file2
In fact, the @filename can appear anywhere within the conf file where a token would be read, and the contents of the named file will be logically inserted in the place of the @filename. What must be in the file depends on the location the @filename is specified in the conf file.
# # Include subfiles associated with configuration of clients. # They define the bulk of the Clients, Jobs, and FileSets. # Remember to "reload" the Director after adding a client file. # @|"sh -c 'for f in /etc/bacula/clientdefs/*.conf ; do echo @${f} ; done'"
http://wiki.bacula.org/doku.php?id=sample_configs
Подключение fd с другого компьютера
Безопасность
Установка на компьютере fd означает что к нему можно обратиться и получить с него любые файлы. По мере необходимости, помимо достаточно больших паролей следует озаботиться и другими аспектами безопасности:
- ограничить адреса с которых можно обратиться;
- закрыть брандмауером;
- организовать шифрованный канал: пример.
Настройка
Для подключения удалённого fd:
- В конфиге fd на компьютере, с которого нужно делать резервную копию:
- указываем директора которому можно подключаться к этому клиенту.
- В конфиге директора, который будет управлять этим fd (это можно вынести в отдельный файл, чтобы не раздувать общий конфиг директора):
- описываем клиента (fd), к которому будем подключаться;
- описываем пул (необязательно);
- перечисляем что копировать (fileset) (необязательно);
- описываем расписание (schedule) (необязательно);
- описываем задание (job), включая в него секции:
- client;
- pool;
- fileset;
- schedule;
- часть описания можно вынести в секцию JobDefs.
Восстановление
При восстановлении по умолчанию файлы будут восстановлены на том же клиентском компьютере, в каталог указанный в конфигурации директора в задании (job) для восстановления.
Бекап БД MySQL
В настройках по умолчанию есть один пример копирования базы данных (собственной базы BaculA), но скорее всего чаще будут встречаться случаи резервного копирования с удалённых машин. При этом можно как выполнять mysqldump локально, обращаясь к удалённой базе, так и выполнять непосредственно на машине с СУБД, забирая затем файл оттуда. Для последнего случая понадобятся директивы:
ClientRunBeforeJob = /path/to/script/create.dump ClientRunAfterJob = /path/to/script/remove.dump
Смотрите также:
- http://sozinov.blogspot.com/2008/05/bacula-backup-mysql.html;
- в /usr/share/doc/bacula-common-[version]/examples/database/ для этого есть примеры.