Создание задания резервного копирования в Bareos

Создание служб и настройка плана резервного копирования Bareos

В предыдущих статьях мы установили систему резервного копирования Bareos и выполнили подключение Linux-клиента к ней.

К сожалению, после проделанных процедур, автоматически резервное копирование выполняться не будет, поэтому настройка и создание плана бэкапа возложено на руки специалиста :) Кому-то это может показаться сложным, кому-то простым, но настройка мне напомнила чем-то конфигурацию Icinga2

Требования

Сперва нужно проработать цель задания, поскольку под каждый сервер могут быть разные требования по выполнению резервного копирования. В рабочее время или выходные дни, полный бэкап или инкрементальный, резервируемые директории, размещение в пулах и пр.

График резервного копирования (Schedule)

В моем случае время суток определено - это ночь и отличное время для запуска заданий резервного копирования, поэтому рассмотрим в качестве примера именно выполнение ночных бэкапов. Конфигурационные файлы с графиком резервного копирования можно найти в директории /etc/bareos/bareos-dir.d/schedule.
Создадим новое расписание:

nano /etc/bareos/bareos-dir.d/schedule/Nightly.conf

Со следующим содержимым:

Schedule {
# name (required)
Name = "Nightly"
# run time
# allot of options are available,
# you can create multiple "Run =" times
# for now lets keep it simple
# this will run once a day, every day at 03:30
Run = daily at 03:30
}

Гибкость настроек позволяет сделать самые сложные графики, но об этом в другой раз, нам важно выполнять бэкапы ежедневно в 03:30 ночи, что и видно в конфигурационном файле выше daily at 03:30.

Сохраняем конфигурацию и выдаем соответствующие привилегии:

chown bareos.bareos Nightly.conf

Набор файлов (Fileset)

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

nano /etc/bareos/bareos-dir.d/fileset/LinuxServer.conf

Со следующим содержимым:

FileSet {
# name (required)
Name = "LinuxServer"
# include directory
Include {
Options {
# calculate a signature for all files
# both MD5/SHA1 are available, this is definitly for long term storage
# a good idea to activate, note that the hash ads a bit of storage overhead
Signature = MD5
# compress every file with compression software
# best known are : LZ4/GZIP (see manual for the others)
# LZ4 is super fast in both compression and decompression
Compression = LZ4
# if supported by the OS, the read time won't be adapted
# this would generate a bunch of writes for no reason on the client machine.
noatime = yes
}
File = /etc
File = /opt
File = /srv
}
}
  • Signature - параметр для проверки целостности, чтобы не ресторить поврежденную резервную копию. MD5 менее стойкий, но если паранойя это ваш друг, то можете использовать SHA1, который нагружает сильнее процессор и занимает дополнительных 4 байта на файл, но его сложнее сломать.

  • Compression - важная особенность - сжатие. LZ4 достаточно быстр, поэтому использую его. Сравнение между LZ4/GZIP можно почитать в документации. Обратите внимание, что это выполняется на клиенте.

Эскиз (Jobdefs)

Данная настройка объединяет все свойства задания, которое будет выполнять установленные нами требования. Это настройка по умолчанию, с которой мы начинаем работу при создании заданий. Реальные задания называются Jobs и могут перезаписывать эти значения по умолчанию.

Создаем новый конфигурационный файл:

nano /etc/bareos/bareos-dir.d/jobdefs/BackupLinuxServer.conf
JobDefs {
# name (required)
Name = "BackupLinuxServer"
# type can be backup/restore/verify
Type = Backup
# the default level bareos will try
# can also be Full/Differential(since last full)/Incremental(since last incremental)
Level = Incremental
# the default client, to be overwritten by the job.conf
Client = bareos-fd
# what files to include/exclude
FileSet = "LinuxServer"
# the schedule we just created
Schedule = "Nightly"
# where to store it
Storage = File
# the message reporting
Messages = Standard
# the pool where to store it
Pool = Incremental
# the higher the value priority the lower it will be dropped in the queue
# so for important jobs priority=1 will run first
Priority = 10
# the bootstrap file keeps a "log" of all the backups, and gets rewritten every time a
# full backup is made, it can be used during recovery
Write Bootstrap = "/var/lib/bareos/%c.bsr"
# in case these value's get overwritten
# define where would be a good pool to write
# note that full backup will be used atleast once because no full
# backup will exist
Full Backup Pool = Full
Differential Backup Pool = Differential
Incremental Backup Pool = Incremental
}

Теперь, когда у нас есть хороший эскиз для нашей задачи резервного копирования, создание реальной резервной копии очень просто.

Задание (Job)

Создаем новую задачу:

nano /etc/bareos/bareos-dir.d/job/backup-LinuxServer.conf

Со следующим содержимым:

Job {
# required
Name = "backup-LinuxServer"
# the default settings
JobDefs = "BackupLinuxServer"
# overwrite the client here
Client = "MyLinuxServer"
}

Перезагружаем bareos-dir

systemctl restart bareos-dir

На этом настройка завершена. Выполнение резервного копирования у нас назначено на 03:30, но мы можем запустить его вручную, для этого перейдем в bconsole выполним run и выберем порядковый номер того клиента, который хотим копировать.

Run Backup job
JobName: backup-observium
Level: Incremental
Client: Observium
Format: Native
FileSet: LinuxServer
Pool: Incremental (From Job IncPool override)
Storage: MyStorage (From Job resource)
When: 2018-03-15 13:53:45
Priority: 10
OK to run? (yes/mod/no):

Примечание. Если резервное копирование выполняется не в директорию по умолчанию, то не забываем выдать соответствующие привилегии для этого:

chown -R bareos:bareos /backup
chmod -R 700 /backup
Поделиться Комментарии