четверг, 8 декабря 2011 г.

Bacula. Часть 2. Jobs

Что же, продолжу я свой сказ.

На главном месте у бакулы это задания. Эта секция называется "Jobs".
Job {
    Name = "ns-backup"
    Type = Backup
    Level = Incremental
    Client = ns-fd
    FileSet = "ns.example.com"
    Storage = "storage1-sd"
    Pool = "Default"
    Messages = Standard
    Schedule = "WeeklyCycle"
    Write Bootstrap = "/var/lib/bacula/ns.bsr"
    Priority = 10
}

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

Параметр "Name" пригодится нам, что бы идентифицировать это задание.

Совет: названия давайте нормальные, которые реально идентифицируют объект.
Пример: msk.kremlin.dc.5.rack.15, server1.example.com.
Плохой пример: object1, comp2, comp3.

Type -  надо знать два типа Backup и Restore. Не поверишь, но это именно то, чем занимается данное задание.

Level - это уровень бэкапа. Надо знать и понимать три типа: инкрементальный, дифференциальный, полный. Опишу их:

Полный - делаем полную резервную копию. Что бы восстановить данные нужна именно она.


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


Дифференциальный - делаем сначала полную копию, затем только изменения между текущим состоянием и тем, что есть в полной копии. Т.е. для наложения требуется только два бэкапа.  Интересно, когда данные достаточно хаотичны и большого объема. Жрёт места больше чем инкрементальный.

Client - значение берется из секции Client и говорит, на какой клиентской машине будет производится резервирование.

Fileset - список данных, которые необходимо забирать для резерва. Значение из секции FileSet.
Естественно, что список данных может быть один и тот же для разных клиентов. А может быть и разным.

Storage - на какое хранилище будет отправлена резервная копия. Название берем из секции Storage.

Pool - в какую очередь попадает наше задание. Очередь достаточно занятное понятие, которого в простеньких системах даже нет. Значение берем из секции Pool

Message - куда писать сообщения и статусы о задании. Эту секцию можно увидеть в первой части.

Schedule - график выполнения заданий, т.е. в какое время надо выполнять задание. Значение берется из секции Schedule.

JobDefs - секция, которая тут нет, но она достаточно важна. Если есть параметры, которые у вас для многих заданий идентичны, то их можно выделить в секции JobDefs и дать им имя и использовать их уже в короткой нотации.

Вывод: для описания задания требуется только знать название в секции. Это дает лаконичное представление о задании. Важно лаконично называть секции, что бы вам сразу становилось понятно что, где и когда.