Bacula backup настройка резервного копирования в Linux
Для задач резервного копирования в системах Linux существует ряд продуктов (кроме специализированных стандартных утилит), которые обладают высокой эффективностью и универсальностью использования. Среди таковых особенно выделяется Bacula, которая кроме всех прочих достоинств обладает также и ещё некоторыми немаловажными особенностями — это свободное распространение и открытый исходный код. Как правило, подобные системы, в большинстве случаев – проприетарные, поэтому Bacula для системного администратора может явиться самым удачным и рациональным выбором.
Утилита способна выполнять резервное копирование, восстановление, а также проверку данных в любой распределённой системе, будь то домашняя сеть (настольный ПК и пара ноутбуков), или же огромная корпоративная интрасеть. Bacula легко масштабируема в зависимости от условий применения, к тому же, поддерживает огромный набор UNIX-систем. Поскольку Bacula разработана в полноценной кроссплатформенной реализации, она способна работать и выполнять задачи даже если среди её клиентов есть машины под управлением ОС Windows. Bacula включается в состав репозиториев практически любого Linux-дистрибутива, но при необходимости можно скачать архив с исходными текстами с официального сайта разработчиков http://blog.bacula.org и собрать из них рабочую систему, что особого труда не составляет, т. к. продукт очень хорошо документирован и активно поддерживается разработчиками.
Основные преимущества Bacula
Стоит отдельно остановиться на конкретных возможностях Bacula, выделяющих её среди аналогичных продуктов:
- Открытый исходный код и свободное распространение.
- Работа в смешанных системах – UNIX, Linux, Mac OS и Windows.
- Модульная, легко масштабируемая архитектура с чётким разделением функционала, данных и элементов управления/взаимодействия с системой.
- Организация и управление базами данных с помощью MySQL, PostgreSQL и даже
- Работа с несколькими ленточными устройствами хранения, в том числе и с автоматической заменой лент.
- Шифрование сетевого трафика, а также данных резервных копий.
- Централизованные контроль и управление резервным копированием всей системы в распределённых системах любой сложности.
- Возможность создания сигнатур MD5 или SHA1 для каждого обрабатываемого файла.
- Возможность копирования файлов, размером больше 2 Гбайт.
- Поддержка выполнения сценариев в процессе резервного копирования.
Справедливо отметить, что далеко не каждый коммерческий закрытый продукт обладает всеми перечисленными возможностями.
Принцип работы Bacula
Утилита состоит из функциональный компонентов, каждый из которых ответственен за свой круг задач. Каждый компонент функционирует в системе в виде отдельного демона. Они (демоны) обмениваются данными между собой автоматически, а также посредством графического пользовательского интерфейса (GUI) или через командную консоль управления.
Итак, основные демоны Bacula:
- Управления — этот компонент управляет задачами резервного копирования и восстановления, а также координирует проверку файлов, подлежащих резервированию.
- Управления файлами работает в каждой системе, в которой необходимо резервное копирование. Он отправляет демону управления данные об атрибутах резервируемых файлов.
- Хранения — выполняет чтение/запись с устройств хранения. По-умолчанию он работает на тех машинах, к которым непосредственно подключены устройства хранения, однако можно запускать этот демон и на удалённом компьютере — отдельно.
- Каталог — это компонент представляет собой служебную базу данных (БД) для организации и учёта резервного копирования, восстановления и проверки файлов. Благодаря каталогу, утилита располагает всей информацией о всех файлах и устройствах хранения в ретроспективе.
Настройка Bacula
Как уже было отмечено, Bacula из-за своей модульной и многослойной архитектуры может легко разворачиваться и работать в системах самого различного масштаба и сложности. Во всех случаях для настройки утилиты необходимо выполнить следующие действия:
- установить демоны;
- установить и настроить внешние СУБД (системы управления базами данных), а также создать саму БД и таблицы для использования;
- установить и настроить клиентские демоны управления файлами;
- запустить демоны Bacula;
- определить носители хранения и добавить их в пул Bacula;
- проверить работоспособность путём выполнения тестового резервного копирования.
Обычно, на клиентских компьютерах устанавливаются демоны управления файлами, а все остальные демоны работают на серверной машине. В больших и сложных системах с высокой нагрузкой рекомендуется отступать от этой схемы, равномерно организуя нагрузку на сервера, устанавливая отдельные компоненты (демоны) Bacula на отдельных машинах, в том смысле, что на отдельных машинах не должно выполняться сразу несколько демонов.
Установка базы данных
Как уже было сказано, Bacula имеет функциональный компонент — каталог для организации, хранения и использования в своих задачах ретроспективы данных. Этот каталог хранится в БД и обслуживается СУБД, которая, в свою очередь, предварительно должна быть установлена и настроена.
Сама же БД утилиты, т. е. её каталог также должна быть предварительно создана. Также и должны быть созданы и необходимые таблицы внутри этой БД. Обычно всё это делается автоматически при разворачивании утилиты в системе, когда она устанавливается из репозиториев дистрибутива. Для этого используются специализированные скрипты, которые можно найти в каталоге src/cats дистрибутива с исходными кодами Bacula, если сборка и установка производится вручную. Скрипт create_mysql_database создаст базу данных, а другой скрипт make_mysql_tables – таблицы для этой БД. Ещё один скрипт grant_mysql_privileges предоставляет пользователю MySQL разрешения для пользования этой БД.
Конфигурирование демонов
Для каждого компонента Bacula и демона предусмотрен отдельный конфигурационный файл. После установки и настройки СУБД, а также создания БД таблиц каталога Bacula необходимо выполнить конфигурацию и её компонентов. В следующей таблице представлены конфигурационные файлы основных компонентов утилиты, которые находятся в каталоге /etc/bacula:
Компонент
Конфигурационный файл
Компьютер
Сервер, запускающий демон управления
Любой сервер, содержащий демон хранения
Любой клиент, для которого нужно создавать резервные архивы
Любой компьютер, который можно использовать для управления
Стоит отметить, что хранение конфигурации в отдельных для каждого компонента файлах — очень удобно и способствует лучшей масштабируемости системы, ведь таким образом легко «расфасовать» разные демоны с их конфигурационными файлами по разным машинам. Например, если нужно хранить архивы на «стороннем компьютере», то для этого достаточно установить и настроить демон хранения на этом «стороннем компьютере».
Для того, чтобы более подробно рассмотреть механизм конфигурирования демонов, следует разобраться с несколькими базовыми понятиями, характерными для Bacula, а именно:
- Задания — это базовые компоненты, характеризующие процесс работы утилиты, т. е. то, что представляет активность системы в виде выполняемых ею процессов. Задания построены на основе других компонентов: наборы файлов, клиенты, пулы памяти, а также схемы задания.
- Наборы файлов — это, собственно перечни как самих файлов, так и файловых систем. Они могут быть как включены в задания, так и исключены из них.
- Сообщения — информация, включающая в себя данные о состоянии Bacula, которой демоны обмениваются между собой. Сообщения могут сохраняться в файлах журнала, а также отправляться по e-mail.
- Пулы — это наборы физических устройств хранения.
В Bacula существует также такое понятие как «Разделы конфигураций» или «ресурсы» из которых и состоят файлы конфигурации. Описание ресурса заключено в фигурные скобки. Файлы конфигураций всех демонов включают в себя ресурс «Director» — это основной ресурс Bacula, который поддерживает функционирование демонов:
Данный ресурс содержит описание того, как собственно, должен вести себя демон: какой должен использоваться порт для обмена данными с другими демонами, сколько задач может выполнять демон, его рабочая директория, где он хранит временные файлы, пароль и тип сообщений. Пароли, хоть и хранятся в конфигурационных файлах в открытом виде, однако всегда передаются и обрабатываются с применением шифрования. Пароли применяются для «узнавания» демонами друг друга для повышения безопасности и предотвращения возможных коллизий в их работе.
Также все демоны имеют ресурс Messages для генерации, обмена и обработки сообщений:
В более сложном случае, характерном для файла конфигурации bacula-dir.conf ресурс Messages имеет следующий вид:
В данном случае описание ресурса Messages предписывает Bacula отправлять сообщения по e-mail, а также регистрировать их в файле журнала /var/log/bacula.log.
Можно определить несколько ресурсов Messages и привязать их к отдельным заданиям, которые, в свою очередь, описываются в другом ресурсе Job. Самую подробную информацию о правилах описания ресурсов для разных случаях можно найти в официальной технической документации к Bacula.
Самой сложной конфигурацией является конфигурация демона управления — bacula-dir.conf. Она должна включать в себя описания ещё семи (кроме рассмотренных Director и Messages) ресурсов: Job, Client, Catalog, Storage, Schedule, FileSet, Pool. В предоставляемых в дистрибутивах или пакетах утилиты можно найти примеры конфигурационных файлов, в которых описываются ресурсы с подробными комментариями и на их основе создать собственную конфигурацию.
Для конфигурирования демона управления файлами на конкретном компьютере должен быть (после предварительной установки этого демона на этот компьютер) отредактирован файл bacula-fd.conf. В нём нужно, в ресурсе Director указать, какое устройство управления использовать для планирования задач для этого клиента, а также пароль — такой же, который указан в ресурсе Client в файле конфигурации демона управления. В ресурсе FileDemon определяются имена клиентов, а также порт, через который демон управления файлами слушает для получения команд от демона управления. Ну и конечно, должен быть определён ресурс Messages.
Запуск демонов Bacula
После того как все демоны и клиенты установлены и настроены. Можно запускать Bacula с помощью скрипта ./bacula start, который запустит все демоны системы. На клиентских машинах (на которых находятся демоны управления файлами). Для запуска клиентских демонов используется эта же команда. Сам же скрипт находится в каталоге с установленным сервером/демоном.
Для проверки состояния работы демонов, а также для управления Bacula можно использовать программу bconsole. Которая также находится в каталоге установки Bacula. Пользоваться bconsole можно с любого компьютера в сети, если конечно она правильно установлена и настроена:
Для включения автозапуска Bacula при начальной загрузке системы можно (и нужно) также добавить команду ./bacula start в автозагрузку. В зависимости от используемой Linux-системы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Bacula
Содержание
Bacula
Bacula — это программа резервного копирования, позволяющая вам сохранять, восстанавливать и проверять данные через вашу сеть. Для Bacula существуют клиенты под Linux, Windows и Mac OS X, превращая ее в кросс-платформенное сетевое решение.
Обзор
Bacula состоит из нескольких компонентов и сервисов для управления тем, какие файлы сохранять и где хранить резервные копии:
Эти сервисы и приложения могут быть запущены на разных серверах и клиентах или их можно установить на одной машине, если требуется резервное копирование одного диска или тома.
Установка
Существует несколько пакетов, содержащих различные компоненты Bacula. Для установки Bacula введите в терминале:
При установке по умолчанию пакет bacula будет использовать базу данных MySQL для Catalog. Если вы хотите использовать SQLite или PostgreSQL, установите соответственно пакет bacula-director-sqlite3 или bacula-director-pgsql.
В процессе установки у вас спросят данные об администраторе базы данных и владельце базы данных bacula. Администратор базы данных требуется для получения необходимых прав на создание базы данных. Дополнительную информацию смотрите в разделе MySQL.
Настройка
Файлы настройки Bacula форматированы на основе ресурсов, включающих директивы, обрамленные фигурными скобками «<>«. Каждый компонент Bacula имеет индивидуальный файл в каталоге /etc/bacula.
Различные компоненты Bacula должны авторизовывать себя друг для друга. Это решается использованием директивы password. Например, пароль в ресурсе Storage файла /etc/bacula/bacula-dir.conf должен соответствовать паролю ресурса Director файла /etc/bacula/bacula-sd.conf.
По умолчанию настраивается задание резервного копирования Client1 для архивирования Bacula Catalog. Если вы планируете использовать сервер для резервного копирования более чем на одном клиенте, вам потребуется изменить имя этого задания на что-то более осмысленное. Для переименования отредактируйте файл /etc/bacula/bacula-dir.conf:
Требуется использовать Console для запросов к Director по поводу заданий, но чтобы обычный пользователь мог использовать Console, он должен быть включен в группу bacula. Чтобы добавить пользователя в группу bacula введите следующую команду в терминале:
Резервное копирование локальной системы
Эта секция описывает как сделать резервную копию определенных каталогов на единственном сервере на локальное ленточное устройство.
1. Для начала требуется настроить устройство хранения. Отредактируйте /etc/bacula/bacula-sd.conf, добавив:
Этот пример для ленточного устройства DDS-4. Измените «Media Type» и «Archive Device» в соответствии с вашим оборудованием.
Вы также можете раскомментировать один из примеров в этом файле.
2. После редактирования файла /etc/bacula/bacula-sd.conf сервис Storage требуется перезагрузить:
3. Теперь добавьте ресурс Storage в файл /etc/bacula/bacula-dir.conf для использования нового устройства:
Директива Address должна быть полностью квалифицированным доменным именем (FQDN) сервера. Замените backupserver на актуальное сетевое имя.
Также убедитесь, что директива Password соответствует строке пароля в /etc/bacula/bacula-sd.conf.
4. Создайте новый FileSet, который будет определять какие каталоги копировать, добавив:
Этот FileSet задает резервное копирование для каталогов /etc и /home. Директивы ресурса Options настраивают FileSet на создание контрольных сумм MD5 для каждого сохраненного файла и сжатие файлов с использованием GZIP.
5. Далее создайте новое расписание Schedule для задачи резервного копирования:
Задание будет запускаться каждый день в 00:01. Существует множество других доступных опций расписаний.
6. Наконец, создадим задание:
Задание будет выполнять полную резервную копию каждый день на ленту.
7. Каждая используемая лента должна иметь метку. Если текущая лента метки не имеет, Bacula отправит email с оповещением. Чтобы установить метку на ленту с помощью Console, введите в терминале:
8. В командной строке Bacula Console введите:
9. Вам предложат выбрать один из ресурсов Storage:
10. Введите новое имя тома:
Замените Sunday на соответствующую метку.
11. Теперь выберите накопитель:
Поздравляем! Вы настроили Bacula на резервное копирование локального сервера на подключенное ленточное устройство.
Ссылки
Дополнительные опции настройки Bacula смотрите в руководстве Bacula User’s Manual.
Домашняя страница Bacula содержит последние новости и доработки по Bacula.
Bacula в РФ содержит документацию Bacula на русском языке.
Также посетите страницу Bacula Ubuntu Wiki.
Источник