Покрокова модифікація передвстановленою налаштування Bacula

Введення
Це коротка покрокова інструкція для початківців: як змінити вже працюючу систему резервного копіювання на базі Bacula. Така робота допоможе Вам зрозуміти взаємозв'язки елементів конфігурації bacula.

У сучасних дистрибутивах Linux встановлена з пакетів Bacula нерідко вже налаштована для копіювання конфігурації ОС. Якщо у Вас bacula не налаштована попередньо, візьміть повне керівництво (див. «Література»).

Загальна інформація
Завдання — крім існуючого сховища додати нове і організувати резервне копіювання на нове місце. Для такої задачі необхідно виконати 4 кроки.

  1. файл конфігурації демона-зберігача bacula-sd потрібно додати секцію «Device», щоб демон дізнався про новому місці зберігання.
  2. файл конфігурації демона-керуючого bacula-dir (bacula-dir.conf) потрібно додати секцію «Storage», яка опише нове «сховище» (організоване на новому «пристрої» демона зберігання).
  3. файл bacula-dir.conf потрібно додати секцію «Pool», яка оголосить новий набір томів (розміщується на новому «сховище»).
  4. файл bacula-dir.conf потрібно додати секцію «Job», яка опише нове завдання резервного копіювання (використовує новий набір томів).
Крім створення резервних копій потрібно налаштувати можливість відновлення файлів. Для цього необхідно створити завдання для відновлення нову секцію «Job» з типом завдання «Restore».

У випадку, якщо необхідно задати новий розклад резервного копіювання, потрібно буде додати секцію «Shedule» в файл bacula-dir.conf і тоді новий розклад можна використовувати в існуючому або новому завданні. Можна також описати кілька наборів томів, наприклад, для тривалого зберігання повних копій і короткочасного — інкрементальних архівів, після чого з цими наборами томів створіть відповідні завдання.

Якщо ж Ви зміните параметри набору томів (якщо змінився зміст якоїсь вже існуючої секції «Pool»), обов'язково виконайте в консолі bacula команду update. По цій команді демон bacula-dir оновить інтервали (тривалість зберігання) раніше створених томів зміненого набору.

Крок 1. Додаємо місце зберігання (Device) в bacula-sd.conf
У конфігурації демона зберігання 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

Крок 2. Додаємо сховище в bacula-dir.conf
Тепер додамо інформацію про новому місці зберігання в конфігурацію демона 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 for instance
# 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
...


Крок 3. Додаємо пул томів bacula-dir.conf
Щоб bacula окремо враховувала файли, розташовані нв NAS, створюємо пул для них. Цей пул явно не прив'язаний до сховища, він буде використаний в завданні.
Одне і те ж сховище можна прив'язати до безлічі пулів, наприклад, можна зробити різні пули для щотижневих, щомісячних і щоденних резервних копій, в кожному різний час зберігання томів.

3.1. Створюємо файл /etc/bacula/pool/nas.conf з описом секції Pool. Відмінності від дефолтного — формат мітки (щоб відрізняти файли з збереженими даними) та ім'я.

# Default pool definition for Storage NAS
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
...


Крок 4. Додаємо завдання в bacula-dir.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. Перевіряємо
5.1. Даємо команду демону bacula-dir перечитати конфігурацію. Найбільш надійний спосіб для цього — команда повернутися в консолі bacula-dir: якщо змінена конфігурація містить помилку, демон покаже місце помилки в консолі і продовжить роботу у колишньої конфігурації.

Підключіться до демону bacula-dir з допомогою bconsole або BAT. В консолі введіть reload (BAT можна скористатися графічним інтерфейсом, а не вводити команду: на рядку «console» клацніть правою кнопкою мишки і в контекстному меню виберіть «Reload bacula-dir.conf»).

Якщо що-то неправильно, Ви побачите в консолі повідомлення про помилку, якщо все в порядку, жодних повідомлень в консолі не буде.

5.2. Виконуємо резервне копіювання нового завдання. Це найзручніше зробити в BAT: відкрийте вкладку «Jobs», у списку завдань виберіть ім'я нового завдання (наприклад, «BackupFullSetDup»), клацніть правою кнопкою мишки і в контекстному меню виберіть «RunJob».

Стан завдання дивіться на вкладці «Jobs Run». В консолі дивіться етапи виконання завдання )команда .message). Якщо завдання завершиться з помилкою, в консолі Ви зможете побачити повідомлення про помилку.

Крок 6. Створюємо завдання для відновлення файлів
Щоб можна було швидко відновити втрачений (вилучений або змінений файл, підготуємо завдання типу «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
...


Література

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.