|
Данная статья предназначена для ознакомления с функционалом и логикой работы сетевого инструмента резервного копирования BACULA.
| Для выполнения административных действий в операционной системе особого назначения Astra Linux Special Edition администратор должен выполнить вход с минимальным (нулевым) уровнем конфиденциальности и с максимальным уровнем целостности, определённым в ОС. |
|
При установке и настройке данного продукта подразумевается "чистый" эксперимент, т.е:
Для развёртывания продукта использовались три виртуальные машины:
Задача (Job) – операция создания архива файлов или восстановления информации из архива.
Том (Volume) – единица хранения информации, представляет собой отдельный файл, магнитную ленту, CD, DVD. Один том может содержать несколько задач, или одна задача может занимать несколько томов.
Пул (Pool) – группа томов. Пул объединяет в себе несколько томов, чтобы отдельная резервная копия не была ограничена объемом тома.
Набор файлов (FileSet) – списки директорий и отдельных файлов, которые должны быть заархивированы. Может содержать регулярные выражения.
Уведомление (Messages) – информация о состоянии компонентов Bacula и задач. Могут передаваться по электронной почте, либо записываться в журнал.
Файл начальной загрузки (bootstrap) – специальный текстовый файл, содержащий информацию об архивированных файлах и томах. Этот файл используется во время операции восстановления.
Предпочтителен Full backup, но это «дорого» обходится. Если данные не очень ценны или ресурсов мало, то используйте Incremental backup. Differential backup это компромисс, но бывает, что последняя копия приближается к объему полного копирования так что, следите за ним.
Bacula поддерживает следующие типы сообщений:
Для отправки сообщений Bacula использует собственный средство – bsmtp, которое может отправлять сообщения не только локальным пользователям, но и на удаленный smtp-сервер.
Главный конфигурационный файл Director Daemon bacula-dir.conf, как и остальные конфигурационные файлы Bacula, состоит из логических разделов, описывающих отдельные ресурсы.
Каждый логический раздел ограничен фигурными скобками {}.
В ключах регистр и пробелы полностью игнорируются. Поэтому ключи: name, Name, и "N a m e" полностью идентичны.
Пробелы до и после знака «равно» игнорируются. Если «значение» содержит пробелы, оно должно быть заключено в двойные кавычки, а пробелы должны быть экранированы обратным слешем.
Для каждого компьютера, файлы которого архивируются, рекомендуется создавать отдельные файлы настроек содержащие в себе ресурс Client, FileSet, Pool, Job Backup или Job Restore (Storage будет один для всех клиентов), и разделять их по папкам. Удобнее описывать эти ресурсы в отдельном файле/ах, который включается в bacula-dir.conf с помощью директивы @. Делается это в первую очередь для того, чтобы избежать разрастания одного конфигурационного файла до больших размеров, а так же для гибкости настройки. Например, ресурсы Client, FileSet, Pool, Job Backup и Job Restore для сервера, на котором установлена система Bacula, можно поместить в файл localhost.conf, и включить его в bacula-dir.conf:
@/etc/bacula/conf.d/localhost.conf |
Каждому файлу и каждой переменной присваивается понятное имя и далее в Job указываются необходимые имена переменных чтобы это было законченной сформированной задачей и могло корректно работать согласно ваших указаний.В конфигурационных файлах необходимо описать к примеру работу для одного клиента несколькими переменными такими как Job, Pool, Client, FileSet, Storage, Schedule.
Основной набор файлов рабочего клиента состоит из 6-ти элементов:
|
Прежде чем bacula сможет использовать том (volume), том должен получить метку (label).
В случае, когда том является файлом, файл создаётся при нанесении метки и метка используется в качестве названия. Метки могут наноситься автоматически. Это определяется параметрами: "LabelMedia = yes", в секции device конфигурации sd и "Label Format = LableName-" в конфигурации пула
При этом к заданному формату будет прибавляться цифровой индекс: LableName-0001.
В формате метки можно использовать макросы, например:
"Label Format = LableName-${Year}_${Month}_${Day}" |
Для задания (Job) определяется не том, а пул. При этом:При этом индекс добавляться не будет. И если, например, при проверке, будет выполнено более одного резервного копирования в день, то будет использован один и тот же том, если позволит параметр Maximum Volume Jobs.
Шаги по созданию Пула (Pool), добавлению Томов к нему, и запись программных меток на Тома, могут казаться утомительными сначала, но фактически они весьма просты, и позволяют использовать множество Томов (вместо того, чтобы быть ограниченным размером одной единственной ленты/диска/файла). Пулы также дают существенную гибкость в процессе резервирования. Например, можно иметь "Daily" (ежедневный) Пул Томов для инкрементальных (Incremental) резервных копий и "Weekly" (еженедельный) Пул Томов для полных (Full) резервных копий. Назначение соответствующих Пулов в ежедневных и еженедельных резервных Заданиях (Job) гарантирует, что никакое ежедневное Задание не перепишет данные данные в Еженедельном Пуле и наоборот. Кроме того, Bacula укажет, какой том необходимо подключить и когда.
Чтобы было проще ориентироваться в конфигурационных файлах, можно выносить часть конфигурации в отдельные файлы. Например, вся последующая конфигурация (Pool, File set, Schedule и Job) может быть вынесена в отдельный файл /etc/bacula/conf.d/testpool.conf, который можно подключить в конфигурацию директора (bacula-dir.conf) следующим образом:
@/etc/bacula/conf.d/testpool.conf |
Теперь, описав пул (pool), набор файлов (fileset) и расписание (schedule), можно описать задание (Job) в котором они используются. Очевидно, что описывать всё нужно не всегда, можно использовать в разных заданиях одинаковые пулы, наборы файлов и расписания.Параметр Maximum Volume Jobs рекомендуется установить в значение 1. Это будет означать, что в рамках одного носителя данных могут быть размещены резервные данные, полученные в ходе выполнения только одного задания. При использовании файлов, рекомендуется придерживаться правила "один файл – одна копия", т.е. в одном файле Bacula должны храниться резервные данные, которые были сформированы в рамках выполнения одного задания. Для каждого последующего выполнения будут создаваться новые файлы.
Для распределения резервного хранения по разным точкам необходимо:
Пулы не привязаны к хранилищам (storage) и любой пул может быть использован в любом хранилище.
То есть, достаточно на каждое устройство для записи (например, каталог с файлами) определить storage, после чего направлять произвольный пул на произвольное устройство.
Допустим, используется единственный Storage и он описан в шаблоне JobDefault, а все типы расписания описаны в файле defaultchedule.conf.
Поэтому мы будем в клиентских файлах задавать только эти значения: Client, FileSet, Pool, Job Backup и Job Restore.
http://www.bacula.org/7.4.x-manuals/en/main/index.html http://www.bacula.org/7.4.x-manuals/en/console/Console_Operators_Guide.html https://ru.wikibooks.org/wiki/Bacula https://ru.wikibooks.org/wiki/Bacula/Pools,_Volumes_and_Labels https://kamaok.org.ua/?p=1517 https://habr.com/post/135291/ http://bog.pp.ru/work/bacula.html https://www.altlinux.org/Bacula |
Что читать дальше: