- PVSM.RU - https://www.pvsm.ru -
Это краткая пошаговая инструкция для начинающих: как изменить уже работающую систему резервного копирования на базе Bacula. Такая работа поможет Вам понять взаимосвязи элементов конфигурации bacula.
В современных дистрибутивах GNU/Linux установленная из пакетов Bacula нередко уже настроена для копирования конфигурации ОС. Если у Вас bacula не настроена предварительно, возьмите полное руководство (см. «Литература»).
Задача — помимо существующего хранилища добавить новое и организовать резервное копирование на новое место. Для такой задачи необходимо выполнить 4 шага.
Помимо создания резервных копий нужно настроить возможность восстановления файлов. Для этого необходимо создать задание для восстановления – новую секцию «Job» с типом задания «Restore».
В случае, если необходимо задать новое расписание резервного копирования, нужно будет добавить секцию «Shedule» в файл bacula-dir.conf и тогда новое расписание можно использовать в существующем или новом задании. Можно также описать несколько наборов томов, например, для длительного хранения полных копий и кратковременного — инкрементальных архивов, после чего с этими наборами томов создайте соответствующие задания.
Если же Вы измените параметры набора томов (если изменилось содержание какой-нибудь уже существовавшей секции «Pool»), обязательно выполните в консоли bacula команду update. По этой команде демон bacula-dir обновит интервалы (длительность хранения) ранее созданных томов изменённого набора.
В конфигурации демона хранения bacula-sd добавим новое место («устройство») для хранения файлов – секцию «Device{}».
1.1. Создаём файл /etc/bacula/device/backupstorage.conf
– копируем имеющийся «в коробке» /etc/bacula/device/file.conf
и меняем в нём путь для размещения файлов, имя и тип носителя. «Name» и «media type» должны быть уникальны среди описаний «Device» – они будут использоваться для выбора места хранения в задании резервного копирования.
# Definition of file storage device
# iSCSI volume "iqn.2012-07.com.lenovoemc:storage.ix4-300d.ix4-300d-vol3g"
# mapped to /dev/disk/by-label/backupstorage
# and mounted to /srv/backup/backupstorage
#
Device {
Name = BackupStorage
Media Type = File-NAS
Archive Device = "/srv/backup/backupstorage"
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
1.2. Добавляем этот файл в конфигрурацию /etc/bacula/bacula-sd.conf рядом с другими:
…
@/etc/bacula/device/filestorage.conf
@/etc/bacula/device/tapedrives.conf
@/etc/bacula/device/backupstorage.conf
#
# Send all messages to the Director,
# mount messages also are sent to the email address
#
Messages {
Name = Standard
director = labara-host = all, !skipped, !restored
}
1.3. Даём демону bacula-sd команду перечитать конфигурацию.
service bacula-sd reload
или
/etc/init.d/bacula-sd reload
Теперь добавим информацию о новом месте хранения в конфигурацию демона bacula-dir – вставим новую секцию «Storage{}» в файл «bacula-dir.conf».
2.1. Создаём файл /etc/bacula/storage/backupstorage.conf – можно скопировать имеющийся /etc/bacula/storage/file.conf и заменить параметры «Name», «Device» и «Media Type». Имя пишем новое, для «Device» используем «Name» из «Шага 1», для «Media Type» – «Media Type» из «Шага 1».
# Definition of storage instance for
# iSCSI volume "iqn.2012-07.com.lenovoemc:storage.ix4-300d.ix4-300d-vol3g",
# mounted to /srv/backup/backupstorage
#
Storage {
Name = NASBackupStorage
Address = "192.0.2.3"
SDPort = 9103
@/etc/bacula/bacula-sd-password.conf
Device = BackupStorage
Media Type = File-NAS
}
2.2. Вставляем /etc/bacula/storage/backupstorage.conf в /etc/bacula/bacula-sd.conf рядом с другими:
…
@/etc/bacula/client/client1.conf
@/etc/bacula/storage/file.conf
@/etc/bacula/storage/example.conf
@/etc/bacula/storage/backupstorage.conf
@/etc/bacula/messages/standart.conf
@/etc/bacula/messages/daemon.conf
@/etc/bacula/pool/default.conf
…
Чтобы bacula отдельно учитывала файлы, расположенные нв NAS, создаём пул для них. Этот пул явно не привязан к хранилищу, он будет использован в задании.
Одно и то же хранилище можно привязать к множеству пулов, например, можно сделать разные пулы для еженедельных, ежемесячных и ежедневных резервных копий, в каждом разное время хранения томов.
3.1. Создаём файл /etc/bacula/pool/nas.conf с описанием секции Pool. Отличия от дефолтного — формат метки (чтобы отличать файлы с хранимыми данными) и имя.
# Default pool definition for NAS Storage
Pool {
Name = NAS
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
LabelFormat = "bn"
# Use not more Maximum Volume Bytes on disk
Maximum Volume Bytes = 4G
}
3.2. Вставляем /etc/bacula/pool/nas.conf в /etc/bacula/bacula-sd.conf рядом с другими.
…
@/etc/bacula/pool/default.conf
@/etc/bacula/pool/scratch.conf
@/etc/bacula/pool/nas.conf
…
Теперь добавим задание, используя существующее расписание (Schedule) «WeeklyCycle» (см. файл /etc/bacula/schedule/weeklycycle.conf). Если существующее расписание нас устраивает, иначе придётся создать новые расписания, в которых укажем пулы, время запуска и режимы создания резервных копий, и уже после их создания — новые задания.
4.1. Чтобы много раз не писать одинаковые параметры резервного копирования на подмонтированный том NAS, создаём файл с секцией «JobDefs» /etc/bacula/job/defaultnasjob.conf:
JobDefs {
Name = "NASDefaultJob"
Type = Backup
Level = Incremental
Client = fd
FileSet = "Full Set"
Storage = NASBackupStorage
Messages = Standard
Pool = NAS
Priority = 10
}
4.2. Задание для сохранения файлов сервера на том NAS, его очередь — «10». Создаём файл задания /etc/bacula/job/baculadup.conf
#
# Define the duplicate of main backup job. This job stores backup into NAS.
#
Job {
Name = "BackupFullSetDup"
JobDefs = "NASDefaultJob"
Schedule = "WeeklyCycle"
Write Bootstrap = "/srv/backup/backupstorage/bacula/DUPClient1.bsr"
}
4.3. Задание для сохранения базы bacula на том NAS, которое нужно выполнять в последнюю очередь, номер очереди «11». Создаём файл задания /etc/bacula/job/backupcatalognas.conf:
Job {
Name = "BackupCatalogNAS"
JobDefs = "NASDefaultJob"
Level = Full
FileSet="Catalog"
Schedule = "WeeklyCycleAfterBackup"
# This creates an ASCII copy of the catalog
RunBeforeJob = "/usr/share/bacula/scripts/make_catalog_backup"
# This deletes the copy of the catalog
RunAfterJob = "/usr/share/bacula/scripts/delete_catalog_backup"
Write Bootstrap = "/srv/backup/backupstorage/bacula/BackupCatalogNAS.bsr"
Priority = 11 # run after main backup
}
4.4. Вставляем новые файлы заданий в /etc/bacula/bacula-sd.conf рядом с другими:
…
@/etc/bacula/pool/default.conf
@/etc/bacula/pool/scratch.conf
@/etc/bacula/pool/nas.conf
@/etc/bacula/job/defaultjob.conf
@/etc/bacula/job/backupcatalog.conf
@/etc/bacula/job/bacula.conf
@/etc/bacula/job/defaultnasjob.conf
@/etc/bacula/job/baculadup.conf
@/etc/bacula/job/backupcatalognas.conf
5.1. Даём команду демону bacula-dir перечитать конфигурацию. Наиболее надёжный способ для этого — команда reload в консоли bacula-dir: если изменённая конфигурация содержит ошибку, демон покажет место ошибки в консоли и продолжит работу в прежней конфигурации.
Подключитесь к демону bacula-dir с помощью bconsole или BAT. В консоли введите команду reload (в BAT можно воспользоваться графическим интерфейсом, а не вводить команду: на строке «console» кликните правой кнопкой мышки и в контекстном меню выберите «Reload bacula-dir.conf»).
Если что-то неправильно, Вы увидите в консоли сообщение об ошибке, если всё в порядке, никаких сообщений в консоли не будет.
5.2. Выполняем резервное копирование нового задания. Это удобнее всего сделать в BAT: откройте вкладку «Jobs», в списке заданий выберите имя нового задания (например, «BackupFullSetDup»), кликните правой кнопкой мышки и в контекстном меню выберите «RunJob».
Состояние задания смотрите на вкладке «Jobs Run». В консоли смотрите этапы выполнения задания )команда .message). Если задание завершится с ошибкой, в консоли Вы сможете увидеть сообщение об ошибке.
Чтобы можно было быстро восстановить утерянный (удалённый или изменённый) файл, подготовим задание типа «Restore». В нём используются те же Pool, Storage, Fileset и Client, что и в задании типа «Backup», добавлен путь для восстановления («Where»), отличается тип, нет расписания и уровня.
6.1. Добавим файл /etc/bacula/job/restorefromnas.conf:
Job {
Name = "RestoreFromNAS"
Type = Restore
Client=fd
FileSet="Full Set"
Storage = NASBackupStorage
Pool = NAS
Messages = Standard
Where = /tmp/bacula-restores
}
6.2. Вставляем новый файл задания в /etc/bacula/bacula-sd.conf рядом с другими:
…
@/etc/bacula/job/restore.conf
@/etc/bacula/job/restorefromnas.conf
…
Автор: grumbler66rus
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/rezervnoe-kopirovanie/75028
Ссылки в тексте:
[1] Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula: http://habrahabr.ru/post/135291/
[2] Настройка и понимание Bacula: http://habrahabr.ru/post/86526/
[3] Bacula: для тех кому надо по-быстрому и в картинках: http://habrahabr.ru/post/211755/
[4] Bacula — официальный сайт: http://bacula.org
[5] Bacula — Википедия: https://ru.wikipedia.org/wiki/Bacula
[6] Источник: http://habrahabr.ru/post/243719/
Нажмите здесь для печати.