Система резервного копирования "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'"

http://wiki.bacula.org/doku.php?id=sample_configs

http://www.bacula.org/5.0.x-manuals/en/main/main/Customizing_Configuration_F.html#SECTION001723000000000000000

Подключение fd с другого компьютера

править

Безопасность

править

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

Ограничить адреса с которых можно обратиться.
Закрыть брандмауером.
Организовать шифрованный канал: пример.

Настройка

править

Для подключения удалённого fd:

  1. В конфиге fd на компьютере, с которого нужно делать резервную копию:
    • Указываем директора которому можно подключаться к этому клиенту.
  2. В конфиге директора, который будет управлять этим 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

См. также: