Bacula
Система резервного копирования "bacula"
«It comes in the night and sucks the essence from your computers». Kern Sibbald
Обзор
правитьОтзывы
правитьО системе можно встретить много положительных отзывов:
- масштабируема,
- автоматизирована,
- возможно восстановление с нуля (bare metal, не восстанавливаются атрибуты файловых систем и программный RAID)
- и многое другое.
Из отрицательных отзывов:
- плохо переносит резкие смены конфигурации,
- плохая обработка ошибок при работе с диском (заполненный диск, глюки с созданием нового тома при наличии файла),
- много ручной работы (там-же: после настройки работает в полностью автоматическом режиме).
источник: Bog BOS
Компоненты
правитьИзображение с www.bacula.org.
Здесь:
- 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.
Установка
правитьОсновная статья: Bacula/Быстрый старт
Установка по умолчанию, только до состояния "работает".
Все настройки по умолчанию.
Pools, Volumes and Labels
правитьОсновная статья: Bacula/Pools, Volumes and Labels
Понимание использования пулов, томов и меток.
Планирование
правитьТеперь, на имеющемся материале, имеет смысл определиться со структурой резервного копирования:
- распределить какие бекапы на какие накопители писать (в случае файлов: винчестеры и разделы)
- какие пулы при этом использовать
- и описать это, распределив по соответственным конфигурационным файлам.
Планирование использования накопителей
правитьОсновная статья: Bacula/Использование накопителей
Вынос части конфигурации в отдельные файлы
править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'"
Подключение fd с другого компьютера
правитьБезопасность
правитьУстановка на компьютере fd означает что к нему можно обратиться и получить с него любые файлы. По мере необходимости, помимо достаточно больших паролей следует озаботиться и другими аспектами безопасности:
- Ограничить адреса с которых можно обратиться.
- Закрыть брандмауером.
- Организовать шифрованный канал: пример.
Настройка
правитьДля подключения удалённого fd:
- В конфиге fd на компьютере, с которого нужно делать резервную копию:
- Указываем директора которому можно подключаться к этому клиенту.
- В конфиге директора, который будет управлять этим fd (это можно вынести в отдельный файл, что бы не раздувать общий конфиг директора):
- Описываем клиента (fd), к которому будем подключаться.
- Описываем пул (необязательно).
- Перечисляем что копировать (fileset) (необязательно).
- Описываем расписание (schedule) (необязательно).
- Описываем задание (job), включая в него секции:
- client
- pool
- fileset
- schedule
- часть описания можно вынести в секцию JobDefs
Восстановление
правитьПри восстановлении по умолчанию файлы будут восстановлены на том же клиентском компьютере, в каталог указанный в конфигурации директора в задании (job) для восстановления.
бекап MySQL базы
правитьВ настройках по умолчанию есть один пример копирования базы данных (собственной базы бакулы), но скорее всего чаще будут встречаться случаи резервного копирования с удалённых машин. При этом можно как выполнять 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/ для этого есть примеры.