Bacula: различия между версиями
Строка 63: | Строка 63: | ||
@|"sh -c 'for f in /etc/bacula/messages.d/*.conf ; do echo @${f} ; done'" | @|"sh -c 'for f in /etc/bacula/messages.d/*.conf ; do echo @${f} ; done'" | ||
@|"sh -c 'for f in /etc/bacula/pool.d/*.conf ; do echo @${f} ; done'"</pre> | @|"sh -c 'for f in /etc/bacula/pool.d/*.conf ; do echo @${f} ; done'"</pre> | ||
==== Описание хранилищ ==== | |||
В каталоге {{path|storage.d}} находятся конфигурационные файлы хранилищ к которым director имеет доступ: | В каталоге {{path|storage.d}} находятся конфигурационные файлы хранилищ к которым director имеет доступ: | ||
<pre>Storage { | <pre>Storage { | ||
Строка 72: | Строка 73: | ||
Media Type = File | Media Type = File | ||
}</pre> | }</pre> | ||
==== Описание наборов файлов ==== | |||
В каталоге {{path|fileset.d}} находятся описания списков файлов для резервирования: | |||
<pre>catalog.conf: # Описывает резервирование дампа базы данных bacula | |||
FileSet { | |||
Name = "Catalog" | |||
Include { | |||
Options { | |||
signature = MD5 | |||
} | |||
File = /var/lib/bacula/bacula.sql | |||
} | |||
}</pre> | |||
<pre>fullset.conf: # Полный бэкап системы | |||
FileSet { | |||
Name = "Full Set" | |||
Include { # Какие файлы включать | |||
Options { | |||
signature = MD5 | |||
} | |||
File = / | |||
} | |||
Exclude { # Какие файлы не включать в бэкап | |||
File = /proc | |||
File = /sys | |||
File = /dev | |||
File = /tmp | |||
File = /.journal | |||
File = /.fsck | |||
} | |||
} | |||
</pre> | |||
==== Описание задач ==== | |||
В каталоге {{path|job.d}} описываются задания резервирования.<br> | |||
Запустим и добавим в автозапуск сервис: | Запустим и добавим в автозапуск сервис: | ||
<pre># systemctl start bacula-dir | <pre># systemctl start bacula-dir |
Версия от 12:42, 10 июля 2017
Бэкапы обстоятельно
Первым делом стоит понять, что Bacula — сложный продукт, пригодный для множества ситуаций, но за это приходится платить существенным вложением времени в освоение базовых вещей и соответствующее конфигурирование (отведите хотя бы неделю на базовое освоение и планирование тестовой инсталяции).
Если требуется создавать простую резервную копию — возможно, достаточно просто tar, rsync или несложных систем вроде rdiff-backup или bontmia. Но если надо работать с несколькими клиентами, стораджами, наборами данных, расписаниями бэкапа — лучше сразу посмотреть на bacula.
Дистрибутив
Существует бета-версия дистрибутива Bran Backup, созданная Станиславом Иевлевым (inger@) и Виталием Кузнецовым (vitty@). Она представляет собой удобный инсталятор Bacula на базе ALT Linux. Дистрибутивы для различных архитектур лежат здесь. В настоящее время статус этих версий: Бета
Планируемые доработки
- Доработать branding
- Реализовать возможность удобной настройки шифрования передаваемых данных и получившихся архивов
- Реализовать возможность восстановления из архива
Базовая настройка Bacula
Рассмотрим минимальную установку сервера bacula.
Установим необходимые пакеты:
На сервере:
# apt-get install bacula7-common bacula7-console bacula7-director-common bacula7-director-mysql bacula7-storage mt-st
\
На клиенте:
# apt-get install bacula7-client
Настройка базы данных MySQL
Запустим сервис и добавим его в автозагрузку:
# systemctl start mysqld # systemctl enable mysqld
Подключимся к MySQL:
# mysql -u root -p
Создадим базу bacula:
mysql> CREATE DATABASE `bacula`;
Создадим пользователя bacula с паролем "Pa$$word":
mysql> CREATE USER 'bacula'@'localhost' IDENTIFIED BY 'Pa$$word';
Дадим пользователю права на базу:
mysql> GRANT ALL PRIVILEGES ON `bacula`.* TO 'bacula'@'localhost'; mysql> FLUSH PRIVILEGES;
Для создания необходимых таблиц существуют скрипт:
# /usr/share/bacula/scripts/make_mysql_tables
Настройка Director
За настройку Bacula Director отвечает файл /etc/bacula/bacula-dir.conf:
Director { Name = dir # Имя DIRport = 9101 # Порт который будет слушать Director QueryFile = "/usr/share/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 1 @/etc/bacula/bacula-dir-password.conf # Файл с паролем для доступа к Director Messages = Daemon } # Параметры каталога Catalog { Name = MyCatalog # Имя каталога dbname = bacula # Имя базы данных user = bacula # Имя пользователя базы данных password = "Pa$$word" # Пароль пользователя базы данных } # Дальнейшие строчки подгружают конфигурационные файлы из подкаталогов job.d fileset.d schedule.d client.d storage.d messages.d pool.d @|"sh -c 'for f in /etc/bacula/job.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/fileset.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/schedule.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/client.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/storage.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/messages.d/*.conf ; do echo @${f} ; done'" @|"sh -c 'for f in /etc/bacula/pool.d/*.conf ; do echo @${f} ; done'"
Описание хранилищ
В каталоге storage.d находятся конфигурационные файлы хранилищ к которым director имеет доступ:
Storage { Name = File # Имя хранилища Address = 127.0.0.1 # IP или FQN хранилища SDPort = 9103 # Порт @/etc/bacula/bacula-sd-password.conf # Пароль для доступа к хранилищу Device = FileStorage Media Type = File }
Описание наборов файлов
В каталоге fileset.d находятся описания списков файлов для резервирования:
catalog.conf: # Описывает резервирование дампа базы данных bacula FileSet { Name = "Catalog" Include { Options { signature = MD5 } File = /var/lib/bacula/bacula.sql } }
fullset.conf: # Полный бэкап системы FileSet { Name = "Full Set" Include { # Какие файлы включать Options { signature = MD5 } File = / } Exclude { # Какие файлы не включать в бэкап File = /proc File = /sys File = /dev File = /tmp File = /.journal File = /.fsck } }
Описание задач
В каталоге job.d описываются задания резервирования.
Запустим и добавим в автозапуск сервис:
# systemctl start bacula-dir # systemctl enable bacula-dir
Настройка Storage
Основной файл конфигурации хранилищ находится это /etc/bacula/bacula-sd.conf, также к нему присоединяются все файлы из каталога device.d
По умочанию этот файл выглядит так:
Storage { Name = sd # Имя хранилища SDPort = 9103 # Порт WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 } Director { Name = dir # Имя director, который может подсоединяться к этому хранилищу @/etc/bacula/bacula-sd-password.conf # Файл с паролем к хранилищу } @|"sh -c 'for f in /etc/bacula/device.d/*.conf ; do echo @${f} ; done'" Messages { Name = Standard director = dir = all }
В каталоге device.d находится файл с описанием устройства:
Device { Name = FileStorage # Имя устройства Media Type = File # Тип устройства Archive Device = /srv/backup # Папка для хранения LabelMedia = yes; Random Access = Yes; AutomaticMount = yes; RemovableMedia = no; AlwaysOpen = no; }
Запустим и добавим в автозагрузку сервис:
# systemctl start bacula-sd # systemctl enable bacula-sd