Linux bacula установка настройка

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.

Читайте также:  Мониторинг работы компьютера windows

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.

Источник

Настройка и понимание Bacula

Иногда проснувшись утром отчетливо понимаешь — что то не так. Хотя ты побрился и даже ни разу не порезался, кофе не выкипел, на улице солнечное утро, добрался до работы быстро и без приключений, вроде бы все хорошо, а все равно что то не так. Но войдя в офис ты видишь общую панику, истеричные вопли, о том, что все пропало и «весь офисный планктон» умрет, а ты находишься во главе тех кто погибнет.
Оказывается ночью отказали файловый и почтовый серверы. И тут понимаешь, что не с проста утро началось так хорошо. Работы предстоит достаточно, но данные надежно сохранены, ибо ты позаботился об их резервном копировании.

В принципе обычная рабочая ситуация, если есть бекапы данных. Именно «о вовремя сделанном бекапе» мы сегодня и поговорим.
Систем резервного копирования данных достаточно много, с открытым исходным кодом — значительно меньше, а уровня предприятия, да еще и с открытым кодом можно пересчитать по пальцам рук, ну или ног, кому как удобнее.
После детального изучения возможностей была выбрана система с неброским названием Bacula.
Минимальный список требований:
1.клиент-серверная архитектура
2.возможность бекапа. восттановления nix,win систем
3.различные варианты бекапов (полный, дифференциальный, инкрементальный )
4.возможность варировать тип бекапа от времени выполнения
5.ротация бекапов
6.«достаточная» документированность
7.высокая надежность (уровня «палкой не убьешь»)
Кто слышит в первые о Bacula, советую посетить википедию, дабы иметь минимальное представление от теме «статьи».
Для тех, кто «осилил много букв», но не желает лазать по википедии привожу список основных модулей.
Bacula Director — процесс управляющий системой в целом(управление, планирование, восстановление бекапов).
Storage Director — запускается на сервере отвечающим за «физическое» хранение данных.
File Director — сервис запускаемый на каждом из клиентов.
Bconsole — консоль управления.

Читайте также:  Linux raid remove disk

Задание: наладить систему резервного копирования и восстановления данных, таким образом, что бы: на server1 и server3 в понедельник делался «полный» бекап, со вторника и до воскресенья включительно дифф. бекпы, а для server2 всю неделю делались «полные» бекапы.
Данные должны храниться не менее 3х недель.
Для примера возьмем конфигурацию для резервного копирования и восстановления данных с server3.

Начнем с настройки Bacula Director
(файл конфига: /etc/bacula/bacula-dir.conf. Расположение: сервер с запущенным bacula-director )
Director <
Name = backup-dir
Dirport = 9101
QueryFile = «/etc/bacula/scripts/query.sql» #набор sql запросов для работы с метаданными
WorkingDirectory = «/var/lib/bacula»
PidDirectory = «/var/run/bacula»
Password = «some_password»
Messages = Daemon
DirAddress = 10.10.0.1
>

В связи с тем, что система интенсивно хранит метаданные в базе данных настраиваем доступ к mysql базе данных.
Catalog <
Name = MyCatalog
dbname = bacula; DB Address = «10.10.0.1»; user = bacula; password = «some_password»
>

Настраиваем доступ к консоли управления
Console <
Name = backup-mon
Password = «some_password»
CommandACL = status, .status
>

Отправка отчетов о проделанной работе на почту администратору
Messages <
Name = Daemon
mailcommand = «/usr/lib/bacula/bsmtp -h localhost -f \»\(Bacula\) \ \» -s \»Bacula daemon message\» %r»
mail = admin@domain.com = all, !skipped
console = all, !skipped, !saved
append = «/var/lib/bacula/log» = all, !skipped
>

Определяем сервера «хранилища»
Storage <
Name = stor_server1
Address = 10.10.0.2
SDPort = 9103
Password = «storage_pass»
Device = FileStorage
Media Type = File
>

Создаем расписания согласно которому будем выполнять задания копирования или восстановления.
Согласно расписанию в понедельник будет создан «полный» бекап, в остальные дни будут создаваться дифференциальные бекапы. Так например, что бы восстановить данные за пятницу, необходимо развернуть задание бекапа выполненное в понедельник, после чего «сверху накатить» пятничный диф. бекап.
Schedule <
Name = «WeeklyDiff»
Run = Level=Full on mon at 05:01
Run = Level=Differential on tue-sun at 02:02
>

Расписание, для создания «полных» бекапов. Применяется для данных, потеря которых приведет к «полному» разочарованию начальства в «вашей квалификации» с занесением в личное дело, или «в грудную клетку», кому как повезет.
Schedule <
Name = «WeeklyFull»
Run = Level=Full on mon-sun at 03:03
>

Создаем задание для бекапа сервера server3
Job <
Name = «server3» #Имя задания
Type = Backup #Тип работы(создание бекапа)
Level = Differential #Уровень бекапа
Client=server3-fd #Клиент на котором будет производиться бекап
FileSet=»server3″ #Где описано как и какие файлы будем сохранять
Storage = stor_server1 #Куда будем «сливать» бекап
Pool = mainpool #Определяем с каким «пулом»(как) будем работать
Messages = Standard #Как отрапортовать о проделанной работе
Schedule = «WeeklyDiff» #По какому расписанию делать бекапы
>

Указываем что именно и как будем сохранять с сервера server3
FileSet <
Name = «server3»
Include <
Options <
signature = MD5 #Для сверки используем MD5
Compression=GZIP #Используем GZIP компрессию
>
File = /etc #Что именно бекапить
File = /home/
File = /var/www

Exclude < #А что не бекапить, например логи
File = /home/logs
File = /var/www/logs
>
>

Описание параметров клиента, для server3
Client <
Name = server3-fd
Address = 10.10.0.3
FDPort = 9102
Catalog = MyCatalog
Password = «fd_password
File Retention = 28 days #Сколько сохранять метаданные о сохраненных файлах для
#данного клиента
Job Retention = 28 days #Сколько сохранять метаданные касательно заданий для данного #клиента
AutoPrune = yes #Может ли бакула очищать метаданные
>

Читайте также:  Windows 10 get windowsfeature

В данной секции определяем параметры ротации.
Исходя из конфигурации: мы используем 4 тома, в томе храниться не более 7 зданий (недельный бекап), время хранения тома 3 недели (21 день).
Таким образом мы храним каждое задание 21 день, на 22 день очищаем том с данными заданиями и используем его заново.
Так, если мы хотим хранить данные не 3 недели, а 4, то Volume Retention должны быть не 21, а 28 и Maximum Volumes должно быть 5. И не забудьте создать дополнительный том.
Pool <
Name = mainpool
Pool Type = Backup
Recycle = yes # Может ли бакула удалять задания из томов
AutoPrune = yes # Может ли бакула очищать тома
Volume Retention = 21 days # Как долго бакула должна «бояться» очистить том
Maximum Volume Jobs = 7 # Сколько заданий хранить в каждом из томов
Maximum Volumes = 4 # максимальное количество том которыми может #оперировать бакула
>

Описание задания, для восстановления данных
Job <
Name = «server3-resotre»
Type = Restore
Client=server3
FileSet=»server3″
Storage = stor_server1
Pool = mainpool
Messages = Standard
Where = /var/lib/bacula-restores
>

Для работы bacula-director, бекапа и восттановления «server3» данного конфига вполне достаточно.
Что у нас получилось: в понедельник происходит «полный» бекап сервера, со вторника по понедельник идут диф. бекапы.
На севере «хранилище» для данного задания создается 4 тома, в каждом томе хранится 7 заданий.(том линкуется(создается) командой label)
По заполнении всех 4 томов, происходит очистка самого старого тома.
Далее идет конфиг сервера «хранилища»(storage director) и клиента(file director) для сервера server3

Описание настроек для Bacula Storage Director
(файл конфига: /etc/bacula/bacula-sd.conf. Расположение: сервер с запущенным bacula-sd (storage director) )
Storage <
Name = stor_server1
SDPort = 9103
WorkingDirectory = «/var/lib/bacula»
Pid Directory = «/var/run/bacula»
SDAddress = 10.10.0.2
>
Director <
Name = backup-dir
Password = «storage_pass»
>

Device <
Name = FileStorage
Media Type = File
Archive Device = /var/bacula
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
>

Messages <
Name = Standard
director = backup-dir = all
>

Описание настроек для file-director на сервере server3

(файл конфига: /etc/bacula/bacula-fd.conf. Расположение: сервер с запущенным bacula-fd ( server3))
Director <
Name = backup-dir
Password = «server3-fd»
>

FileDaemon <
Name = server3-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
FDAddress = 10.10.0.3
>

Messages <
Name = Standard
director = server3-fd = all, !skipped, !restored
>

Надеюсь комментарии в конфигурационных файлах сервера «хранилища» и клиента на сервере server3 излишни.

Итогом данный статьи может стать понимание того как настроить гибкую, надежную систему резервного копирования и восстановления данных с неброским названием Bacula.

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

Источник

Оцените статью