Найти в Дзене
Записки сисадмина

Резервное копирование. Bacula. Создаем и разворачиваем бэкапы.

Ранее мы уже настроили наш сервер с bacula, полностью разобрались с конфигурацией директора, так что настало время подключить клиента и настроить нашу первую задачу. Client { Name = Имя клиента (задается по желанию) Password = Пароль от клиента (должен совпадать с паролем в конфиге fd клиента) Address = IP адрес клиента, либо FQDN, предварительно прописанный в /etc/hosts сервера FDPort = Порт, по которому директор обращается к файловому демону клиента Catalog = Каталог (не менять) File Retention = Сколько времени хранить забэкапленные файлы клиента Job Retention = Сколько времени хранить записи о выполненных бэкапах (как лог) } Если все было настроено правильно, соединение установится и клиент выдаст краткую информацию о себе. Storage Storage { Name = Имя storage daemon'a для клиента (задается по желанию) Password = Пароль от storage daemon'a (сервера) Address = IP адрес, либо FQDN сервера с storage daemon'ом SDPort = Порт, по которому директ
Оглавление

Ранее мы уже настроили наш сервер с bacula, полностью разобрались с конфигурацией директора, так что настало время подключить клиента и настроить нашу первую задачу.

Настроим клиента

  • На клиенте устанавливаем пакет bacula-client (он же bacula file daemon) и редактируем файл /etc/bacula/bacula-fd.conf
-2
  • Прописываем логин и пароль директора, который будет к нам подключаться.
-3
  • Указываем порт, по которому можно будет подключиться и открываем его на фаерволле клиента.

Переходим к настройке директора

  • В файле /etc/bacula/bacula-sd.conf добавляем новый Device (виртуальное устройство, на котором будут храниться резервные копии с полным путем до директории хранения)
-4
  • В файле /etc/bacula/bacula-dir.conf добавляем параметры клиента
-5
Client {
Name = Имя клиента (задается по желанию)
Password = Пароль от клиента (должен совпадать с паролем в конфиге fd клиента)
Address = IP адрес клиента, либо FQDN, предварительно прописанный в /etc/hosts сервера
FDPort = Порт, по которому директор обращается к файловому демону клиента
Catalog = Каталог (не менять)
File Retention = Сколько времени хранить забэкапленные файлы клиента
Job Retention = Сколько времени хранить записи о выполненных бэкапах (как лог)
}
  • После сохранения конфигурации и перезапуска демона bacula-dir, мы можем проверить статус нашего клиента через bacula console.
-6

Если все было настроено правильно, соединение установится и клиент выдаст краткую информацию о себе.

  • Возвращаемся в файл /etc/bacula/bacula-dir.conf и добавляем остальные директивы:

Storage

-7
Storage {
Name = Имя storage daemon'a для клиента (задается по желанию)
Password = Пароль от storage daemon'a (сервера)
Address = IP адрес, либо FQDN сервера с storage daemon'ом
SDPort = Порт, по которому директор обращается к файловому серверу
Device = Берется из конфига storage daemon
Media Type = Берется из конфига storage daemon
Maximum Concurrent Jobs = Максимальное количество одновременных подключений к storage daemon'у
}

Pool

-8
Pool {
Name = Имя пула (диапазона) файлов бэкапа
Pool Type = Тип пула
Volume Retention = Сколько времени хранить файлы бэкапа (если больше FileRetention в пункте Client, bacula будет перезаписывать файлы клиента в уже имеющиеся файлы бэкапа)
Recycle = Автоматическое перезаписывание файлов бэкапа
AutoPrune = Автоматическое удаление файлов бэкапа, которые просрочились (возраст больше, чем указан в volume retention)
LabelFormat = Формат имени бэкап файла
Maximum Volume Bytes = Максимальный размер одного файла бэкапа (при выходе за рамки, будет создан следующий файл )
}

FileSet

-9
FileSet {
Name = Имя файлового набора
Include {
File = Что именно бэкапим с клиента (указываем изначальный путь)
Options {
Compression = Компрессия бэкапа
OneFS = При установке флага "yes", bacula будет игнорировать папки типа bin, dev, sys
} }}

Schedule

-10

Job

-11
Job {
Name = Имя задачи
Type = Тип задачи (backup, restore, verify, admin)
Level = Тип бэкапа (full, incremental, differential e.t.c.)
Client = Имя клиента (прописывали вручную ранее)
FileSet = Имя файлового набора (прописывали вручную ранее)
Schedule = Имя расписания (прописывали вручную ранее)
Storage = Имя storage daemon'a (прописывали вручную ранее)
Pool = Имя пула файлов бэкапа (прописывали вручную ранее)
Messages = Куда писать лог
}

  • Сохраняем конфигурацию и перезапускаем наших демонов bacula-dir и bacula-sd.

Ручной запуск задачи

  • Переходим в наш Webmin в раздел Bacula Backup System и жмем в самом низу кнопку "Run Backup Job".
-12
  • В поле "Job to run" выбираем нашу созданную задачу и нажимаем "Backup Now".
-13
  • Видим, что наш директор смог подключиться к клиенту и выбрал задачу
-14
  • После выполнения ищем графу "Termination". Если вы видите статус "Backup OK", резервное копирование завершилось успешно.

Восстановление резервной копии

  • Возвращаемся в Webmin в раздел Bacula Backup System и жмем кнопку "Restore Backup".
-15

Job to restore - Какую именно задачу восстанавливать. Имеет структуру [№]-[Имя задачи][дата и время начала выполнения задачи бэкапа]-[уровень бэкапа]

Files to restore - Какие именно файлы вытащить из бэкапа. Если нужны все, указывается корень (/)

Restore from storage device - Из какого каталога восстанавливать

Restore to client or group - На какого клиента восстановить бэкап (можно выкинуть на другой сервер)

Restore to directory - в какую папку восстанавливать

  • Нажимаем "Restore Now" и ждем завершения.
-16
-17
  • Опять же обращаем внимание на графу "Termination". Если там указано "Restore OK", можем переходить на сервер, который указывали в параметрах восстановления и проверять целостность файлов.

Полезное дополнение

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

Поэтому советую обратить внимание на проект Bacula Web. Имеется приятная и информативная визуализация в виде графиков, а так же есть возможность вывести список выполненных задач по каждому из клиентов.