Bacula centos восстановить данные

Обновлено: 06.07.2024

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

В этой статье мы рассмотрим как выполняется установка и настройка Bacula. Это одна из самых популярных систем резервного копирования для Linux с открытым исходным кодом.

Что такое Bacula

Bacula - это система резервного копирования корпоративного уровня. Она имеет клиент-серверную архитектуру и состоит из таких компонентов:

  • Bacula Director (сервис bacula-dir) - основной сервис, который управляет всеми другими процессами по резервному копированию и восстановлению;
  • Bacula Storage (сервис bacula-sd) - хранилище, предназначенное для сохранения резервных копий на диске;
  • Bacula File Daemon (сервис bacula-fd) - клиентская часть сервиса, которая нужна для доступа к файлам на сервере, с которого будет выполнятся резервное копирование.

Все компоненты могут быть установлены как на одном сервере, так и на разных, но каждый из них должен иметь возможность обратится к другому по сети. Для управления всем этим используется утилита командной строки bconsole. Для неё существует как консольный так и веб-интерфейс, но основной способ управления - командная строка.

Установка и настройка Bacula

Шаг 1. Установка Bacula на сервер

Для версии сервера можно устанавливать полностью группу пакетов bacula. В Ubuntu по умолчанию будут установлены также такие пакеты, как PostgreSQL и Postfix. Команда установки будет выглядеть вот так:

sudo apt install bacula


Для работы Bacula нужна какая-нибудь база данных поэтому без Postgresql обойтись не получится, но Postfix можно не ставить, для этого просто допишите в команде установки postfix-. Например:

sudo apt install bacula postfix-

В процессе установки программа предложит настроить базу данных для Bacula. Лучше сделать это сейчас чтобы потом не делать вручную. Поэтому выберите Yes в следующем окне:


Поскольку база данных находится на том же сервере, что и Bacula достаточно выбрать localhost:


Далее введите пароль от будущей базы данных:


Установщик автоматически создаст базу данных, пользователя, а также пропишет их в конфигурационный файл Bacula. После завершения установки можно переходить к настройке программы.

Шаг 2. Настройка Bacula Storage

Давайте первым делом настроем хранилище для Bacula. Конфигурация хранилища находится в файле /etc/bacula/bacula-sd.conf. В конфигурационном файле есть несколько секций:

Каждая секция имеет такой синтаксис:

имя_секции
параметр = значение
>

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

sudo mv /etc/bacula/bacula-sd.conf

sudo vi /etc/bacula/bacula-sd.conf

Удалять оригинальный файл не стоит, потому что может в будущем изменятся какие-либо пути и вам надо будет сверится с этим файлом. Сначала секция Storage:

Дальше секция Director:

Секция Device:

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

После завершения редактирования конфигурационного файла необходимо проверить его на ошибки. Для этого используйте такую команду:

sudo /usr/sbin/bacula-sd -t -c /etc/bacula/bacula-sd.conf

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

sudo systemctl restart bacula

Шаг 3. Настройка локального клиента Bacula File Daemon

Эта служба используется для доступа к файлам на сервере. Она должна быть запущена на машинах, с которых вы хотите делать резервные копии. Конфигурация стандартная, для локальной машины вы можете оставить то, что там есть по умолчанию. Рассмотрим основные секции:

sudo vi /etc/bacula/bacula-fd.conf

Дальше идет секция с основными настройками File Daemon:

Если что-то меняли, не забудьте проверить конфигурацию на ошибки и перезапустить сервис bacula-fd.

Шаг 3. Настройка Bacula Director

Конфигурационный файл Bacula Director находится по такому пути /etc/bacula/bacula-director.conf. Здесь тоже всё разбито на секции. Вы можете поступить аналогично настройке Storage. Переименовать его и добавлять секции в пустой файл. Давайте рассмотрим основные секции. Главная секция, описывающая сам сервис управления называется Director:

Следующая секция не обязательная, но она есть в конфигурационном файле Bacula - JobDefs. Эта секция содержит значения по умолчанию, которые потом можно будет использовать при создании задач (Job):

Файл с метаданными в формате bsr содержит информацию в ASCII о том, где и какие файлы находятся. Она необходима для того чтобы потом можно было восстановить из резервной копии отдельные файлы без восстановления всего что было сохранено. Дальше идёт секция с именем Catalog, в которой описывается способ подключения к базе данных Postgresql, которая была создана и настроена во время установки. Если всё сделано правильно, то в оригинальном конфигурационном файле уже есть верные данные:

Ещё тут есть секция Messages с именем Standart и секция Console. В них ничего менять не надо, просто скопируйте их из оригинального конфигурационного файла.

Шаг 4. Резервное копирование локальной папки

Теперь у вас есть полностью настроенное хранилище, eizenhorn-sd и файловый демон eizenhorn-fd. Можно приступать к настройке резервного копирования локальной папки. Для этого в конфигурационный файл директора надо добавить несколько секций. Давайте сначала добавим пул, где будут хранится данные. Фактически, эта секция описывает набор томов (Volume), а фактически файлов в файловой системе с одинаковым префиксом, в которые будут записываться резервные копии. Это полезно, например, если вы хотите хранить резервные копии каждой машины в отдельном файле:

sudo vi /etc/bacula/bacula-dir.conf

Пул готов, дальше надо определиться какой клиент мы будем использовать для доступа к файлам. Поскольку это локальная машина, надо использовать ранее настроенный eizenhorn-fd:

Тут надо разобраться с группой параметров удаления данных. Раньше, в настройке пула использовался параметр Volume Retention, в настройке клиента ещё два. Вот их значения:

  • Job Retention - период хранения информации о выполненных задачах. Она занимает не много места, поэтому хранить её можно долго. После удаления вы не сможете посмотреть какие задачи когда были выполнены.
  • File Retention - период хранения информации о местонахождении файлов. Занимает уже больше места, но позволяет восстановить отдельные файлы из резервной копии. Без него вы сможете восстановить файлы только распаковав резервную копию полностью.
  • Volume Retention - отвечает за хранение самих данных резервных копий. После удаления вы уже не сможете получить к ним доступ.

После того как клиент есть осталось понять какие файлы надо поместить в резервную копию, для этого есть секция FileSet:

В данном случае интересен только параметр File, который указывает путь к папке, которую надо поместить в резервную копию. В данном случае это папка с конфигурацией системы - /etc.

Теперь надо указать когда запускать резервную копию с помощью секции Scedule:

Имя Name может быть произвольным, вы его будете использовать позже, при составлении задачи, а параметр Run должен указывать когда надо запускать резервную копию, а также может переопределять параметры заданные в задаче (Job). Кроме того можно задать несколько директив Run для того чтобы настроить разные типы резервного копирования.

Переопределяя уровень резервирования (Level) можно указать такие параметры:

  • Full - все файлы и каталоги перечисленные в FileSet не зависимо от того изменились они или нет.
  • Incremental - только те файлы и каталоги из FileSet, которые изменились с момента последней резервной копии.

Подробно о формате времени можно узнать в официальной документации. В упрощенном варианте можно использовать такой синтаксис:

день at ЧЧ : ММ

месяц номер_недели день at ЧЧ : ММ

В качестве дня можно использовать daily (каждый день) или sun, mon, the, wed, thu, fri, sat. В качестве номера недели: 1st, 2st, 3st, 4st, 5st. Например, можно записать вот так:

Дальше осталось объединить всё созданное ранее в задаче (Job):

После завершения настройки проверьте конфигурационный файл на ошибки:

sudo /usr/sbin/bacula-dir -t -c /etc/bacula/bacula-dir.conf

И если всё хорошо, перезапустите сервис:

sudo systemctl restart bacula-dir

Шаг 5. Настройка консоли

Конфигурационный файл консоли находится здесь /etc/bacula/bconsole.conf. В нём есть только одна секция и здесь нужно указать на каком IP адресе ожидает соединений Bacula Director, а также пароль, к нему настроенный в секции Director файла /etc/bacula/bacula-dir.conf. Например:

Дальше можно переходить к работе с консолью.

Шаг 5. Резервное копирование в консоли

Работать с консолью Bacula довольно непривычно. Но у неё есть свои плюсы. Для запуска консоли выполните такую команду:

Вы увидите такое окно, с приглашением ввода в виде звездочки:


Для запуска задачи по резервному копированию выполните команду run. Поскольку сейчас задача одна, вам сразу же будет предложено её выполнить, в дальнейшем надо будет выбрать номер задачи или явно указать её имя команде в параметре команды run. После выполнения задачи она будет просто поставлена в очередь:



В данном случае будет выведена краткая статистика по задаче, а также результат её выполнения, ОК:

Посмотреть список выполненных задач можно командой list jobs:


Обратите внимание, что у каждой задачи есть свой ID и вы можете с помощью него посмотреть список файлов каждой задачи:

list files jobid=14


Шаг 6. Восстановление данных

Для восстановления данных можно создать специальную задачу (Job), а затем воспользоваться командой restore, которая позволяет восстановить нужную резервную копию. Сначала надо добавить нужную задачу в конфигурационный файл /etc/bacula/bacula-dir.conf. Например, для восстановления ранее сделанной резервной копии папки /etc:

Сохраните изменения и перезапустите bacula-dir, затем создайте папку, куда будет выполнятся восстановление:

sudo mkdir /opt/restore

Запустите консоль и выполните команду restore для того чтобы начать восстановление:


Дальше вам надо знать задачу по резервному копированию, которую вы хотите восстановить. Узнать её можно несколькими способами:

  • 1 - выведет последние 20 выполненных задач;
  • 2 - выведет задачи, у которых есть указанные файлы;
  • 3 - позволяет ввести вручную ID нужных задач;
  • 4 - позволяет выполнить SQL запрос.

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


Давайте попробуем восстановить файлы из резервной копии, созданной заданием с ID 15. Для этого нажмите 4 и введите 15:


Здесь нужно перемещаться по виртуальной файловой системе с помощью команд cd и ls, а также отмечать или снимать отметку для файлов которые надо извлечь командами mark и unmark. Когда всё будет готово выполните команду done:


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


А затем утилита покажет общую информацию о будущем восстановлении и вам надо набрать yes для того чтобы продолжать.


После завершения восстановления файлы появятся в папке /opt/restore. Если вы хотите восстановить все файлы из последней резервной копии, то вам не надо делать всё это достаточно выполнить команду run и передать ей имя задачи по восстановлению:

Выводы

Из этой статьи вы узнали как выполняется установка и настройка Bacula в Linux для резервного копирования локальных файлов. Удалённое резервное копирование не намного сложнее. Вам просто надо установить на удалённую машину клиент и прописать его IP адрес в директоре. Это довольно громоздкая платформа, но нельзя не отдать ей должное в том, что конфигурационные файлы вполне понятны и их не очень сложно редактировать. А если вы не хотите иметь дело с консолью и конфигурационными файлами, то у программы есть несколько сторонних веб-интерфейсов.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Восстановление файла из Bacula

Создано 05.09.2016 06:55

Запускаем консольную утилиту "bconsole":

*restore
Первым делом определяемся, что будем восстанавливать.
Все наборы резервных копий Bacula обозначены уникальным номером задания JobId, которым они были созданы.
Если JobID не известен, то его можно определить следующим путем:

First you select one or more JobIds that contain files to be restored.

To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item: (1-13): 3
Требуемый номер задания можно узнать выбрав пунк 1.

Сразу после этого утилита находит набор резервных копий, закреплённый за нашим JobId.
И строит дерево виртуальной файловой системы:

Building directory tree for JobId(s) 9788 . ++++++++++++++++++++++++++++++++++++++++++
85 files inserted into the tree.

Теперь выбераем, что хотим извлечь из резервной копии.
Тут всё просто: ходим по виртуальной файловой системы и помечаем объекты, подлежащие восстановлению:

cwd is: /
$ ls
etc/
home
srvs/
storage1
usr/
var/
$
$ cd /var/log
cwd is: /var/log/
$ mark maillog
1 file marked.

После того, как подборка объектов для восстановления успешно сформирована, завершаем процедуру, призывая утилиту перейти к следующему этапу:

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

Bootstrap records written to /var/db/bacula/dmps1-1.local-dir.restore.1.bsr
The job will require the following
Volume(s) Storage(s) SD Device(s)
===========================================================================

relay2.0007 File FileStorage
Volumes marked with "*" are online.

1 file selected to be restored.
Defined Clients:
1: dmps1
2: dmps1-1.local-fd
3: email1
4: email2
5: relay1
6: relay2
Select the Client (1-14): 1

Если нужно вывести файлы непосредственно на удалённую машину клиента, для которого уже имеется задача резервного копирования,
то выбираем из списка выше соответствующий набор правил.
На случай, если требуется вывести восстанавливаемые объекты в файловую систему,
доступную непосредственно с сервера резервного копирования,
у нас имеется первое правило, которое описано на этапе настройки сервиса (Bacula считает ошибкой отсутствие хотя бы одной задачи типа restore).

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

Running Jobs:
JobId Level Name Status
===================================
9800 1 63 OK 30-Aug-16 15:08 RestoreFiles
По завершению задачи обнаруживаем помеченные выше к восстановлению файлы в выбранной нами директории "/srvs/bacula/restores/".

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

Данное руководство научит устанавливать и настраивать серверные компоненты Bacula на сервере CentOS 7. Здесь вы узнаете, как с помощью Bacula создавать локальные резервные копии (т. е. резервные копии хоста, на котором установлена система Bacula). Возможно, это не самый продуктивный пример использования Bacula, но на его основе можно разработать более сложные настройки для бэкапа других серверов, например, клиентов.

Требования

Компоненты Bacula

Bacula состоит из нескольких программных компонентов и основывается на модели «сервер-клиент». Рассмотрим компоненты Bacula подробнее.

  • Сервер Bacula (также сервер бэкапа) включает в себя следующие компоненты:
    Bacula Director (DIR): программное обеспечение, которое управляет операциями резервного копирования и восстановления, выполняемыми демонами File и Storage.
  • Storage Daemon (SD): программное обеспечение, которое выполняет операции чтения и записи на устройствах хранения, используемых для резервного копирования.
  • Catalog (каталог): сервисы, которые поддерживают базу данных резервных копий файлов. Данные хранятся в БД SQL, например, в MySQL или PostgreSQL.
  • Bacula Console: интерфейс командной строки, который позволяет администратору резервного копирования взаимодействовать с Bacula Director и управлять им.

Примечание: Компоненты сервера Bacula не обязательно запускать на одном сервере.

Клиент Bacula (сервер, данные которого будут копироваться) запускает File Daemon (FD). Это программное обеспечение, которое предоставляет серверу Bacula (в частности, Bacula Director) доступ к данным, которые нужно скопировать. Такие серверы называются клиентами бэкапа, или просто клиентами.

Установка MySQL и Bacula

Для хранения каталога данных Bacula использует БД SQL, такие как MySQL или PostreSQL. В этом руководстве предлагаем установить MariaDB, форк проекта MySQL. Чтобы установить Bacula и MariaDB Server, введите:

sudo yum install -y bacula-director bacula-storage bacula-console bacula-client mariadb-server

sudo systemctl start mariadb

После этого нужно создать пользователя БД и таблицы. Для этого запустите сценарии:

/usr/libexec/bacula/grant_mysql_privileges
/usr/libexec/bacula/create_mysql_database -u root
/usr/libexec/bacula/make_mysql_tables -u bacula

Затем нужно запустить простой сценарий, который удалит некоторые опасные настройки по умолчанию и заблокирует доступ к системе баз данных. Запустите интерактивный сценарий:

Программа запросит root-пароль. Поскольку вы только установили MySQL, скорее всего, такого пароля нет. Просто нажмите Enter, чтобы пропустить поле. После этого будет предложено выбрать такой пароль. Нажмите Enter и выберите root-пароль. Чтобы принять значения по умолчанию в остальных запросах, просто нажмите Enter.

Это удалит образцы баз данных и пользователей, отключит удаленный доступ root и сразу обновит настройки MySQL.

Теперь нужно выбрать пароль для пользователя БД Bacula.

Откройте консоль MySQL как root.

Введите root-пароль MySQL.

Теперь установите пароль пользователя Bacula (вместо bacula_db_password укажите свой пароль).

Закройте командную строку MySQL.

Добавьте MariaDB в автозагрузку.

sudo systemctl enable mariadb

Настройка Bacula для использования MySQL

По умолчанию Bacula использует библиотеку PostgreSQL. Это нужно изменить.

sudo alternatives --config libbaccats.so

Вы увидите следующее меню. Чтобы выбрать MySQL, введите 1.

There are 3 programs which provide 'libbaccats.so'.
Selection Command
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
2 /usr/lib64/libbaccats-sqlite3.so
*+ 3 /usr/lib64/libbaccats-postgresql.so
Enter to keep the current selection[+], or type selection number: 1

Теперь серверные и клиентские компоненты Bacula установлены. Создайте каталоги для резервного копирования и восстановления.

Каталоги для бэкапа и восстановления

Для хранения резервных копий и их восстановления Bacula использует каталоги backup и restore соответственно.

Если в системе несколько разделов, создайте каталоги в том разделе, в котором достаточно места.

Создайте новые каталоги:

sudo mkdir -p /bacula/backup /bacula/restore

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

sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Настройка Bacula Director

Bacula состоит из нескольких компонентов, каждый из которых требует индивидуальной настройки. Все конфигурационные файлы хранятся в каталоге /etc/bacula.

Для начала настройте Bacula Director.

Откройте конфигурационный файл компонента:

sudo vi /etc/bacula/bacula-dir.conf

Настройка ресурса Director

Найдите ресурс Director и настройте его для прослушивания 127.0.0.1 (localhost). Для этого добавьте в раздел строку DirAddress.

Настройка локальных задач

Задачи Bacula (job) выполняют резервное копирование и восстановление данных. Ресурсы задания – это подробные данные о том или ином задании: имя клиента, файлы для бэкапа или восстановления (FileSet) и многое другое.

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

Найдите ресурс Job с именем BackupClient1. Замените значение в строке Name именем BackupLocalFiles.

Затем найдите ресурс Job с именем RestoreFiles. В строке Name укажите имя RestoreLocalFiles, а в строке Where – каталог /bacula/restore.

Теперь RestoreLocalFiles сможет хранить файлы в каталоге /bacula/restore.

Файлы для бэкапа

FileSet определяет список файлов и каталогов, которые нужно включить или исключить из резервного копирования.

  • Добавить сжатие gzip.
  • В разделе Include заменить /usr/sbin в строке File на /.
  • В конце раздела Exclude добавить строку File = /bacula.

FileSet Name = "Full Set"
Include Options signature = MD5
compression = GZIP
>
File = /
>
Exclude File = /var/lib/bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
File = /bacula
>
>

Рассмотрим изменения в FileSet под названием Full Set. Во-первых, при создании резервного архива будет использоваться сжатие gzip. Во-вторых, в резервное копирование включается весь корневой раздел. В-третьих, из резервного копирования исключается каталог /bacula, потому что иначе Bacula будет создавать резервные копии каталога, в котором хранятся резервные копии.

Примечание: Если в / смонтированы другие разделы, которые нужно включить в FileSet, создайте в разделе Include дополнительные записи File для каждого из них.

Имейте в виду: резервные копии широких наборов FileSet (таких как Full Set) занимают больше места на диске, чем резервные копии более конкретных списков файлов. Например, если у вас есть четкий план, вам может хватить набора FileSet из пользовательских конфигурационных файлов и баз данных. Это поможет сэкономить дисковое пространство.

Настройка Storage Daemon

В конфигурационном файле Bacula Director есть ресурс Storage. Он определяет работу Storage Daemon, к которому подключается Director.

Найдите ресурс Storage. В строке Address замените значение localhost внутренним IP-адресом или FQDN.

Это важно, поскольку демон Storage Daemon будет прослушивать интерфейс частной сети, чтобы поддерживать взаимодействие с удаленными клиентами.

Настройка каталога

Ресурс Catalog определяет БД, к которой будет подключаться Director.

Найдите ресурс Catalog по имени MyCatalog (под комментарием Generic catalog service). Обновите значение dbpassword и укажите пароль пользователя MySQL bacula.

Теперь Bacula Director сможет подключиться к БД MySQL.

Настройка пула

Ресурс Pool определяет набор хранилищ, используемых Bacula для записи резервных копий. В данном случае в качестве томов хранения используются файлы. Обновите метки, чтобы локальные резервные копии были правильно помечены.

Сохраните и закройте файл. Настройка компонента Bacula Director завершена.

Проверка настроек

Убедитесь, что в файле нет ошибок:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Настройка Storage Daemon

Сервер Bacula почти готов. Осталось только настроить Storage Daemon, чтобы система Bacula понимала, где хранить файлы.

Откройте конфигурационный файл SD.

sudo vi /etc/bacula/bacula-sd.conf

Настройка ресурса Storage

Найдите в файле ресурс Storage. Он определяет, где процесс SD будет прослушивать соединения. Добавьте параметр SDAddress и укажите в нем FQDN (или внутренний IP-адрес) сервера бэкапа:

Настройка устройства хранения

Затем найдите ресурс Device по имени FileStorage и обновите значение Archive Device, указав в нем путь к каталогу backup:

Сохраните и закройте файл.

Проверка настроек

Убедитесь, что в конфигурационном файле Storage Daemon нет ошибок.

sudo bacula-sd -tc /etc/bacula/bacula-sd.conf

Пароли компонетов Bacula

Director, SD и FD используют пароли для межкомпонентной аутентификации. Эти пароли можно установить вручную, но вам эти пароли знать не нужно. Потому их можно сгенерировать с помощью команды и вставить в конфигурационные файлы Bacula автоматически.

Следующие команды сгенерируют случайный пароль для Director и вставят его в файл.

DIR_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@DIR_PASSWORD@@/$/" /etc/bacula/bacula-dir.conf
sudo sed -i "s/@@DIR_PASSWORD@@/$/" /etc/bacula/bconsole.conf

Этот набор команд сгенерирует и установит пароль для Storage Daemon. Director подключается к SD, потому ему тоже нужен пароль.

SD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@SD_PASSWORD@@/$/" /etc/bacula/bacula-sd.conf
sudo sed -i "s/@@SD_PASSWORD@@/$/" /etc/bacula/bacula-dir.conf

Эти команды генерируют и устанавливают пароль File Daemon (клиентское программное обеспечение Bacula). Director подключается к FD, поэтому ему тоже нужен пароль.

FD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@FD_PASSWORD@@/$/" /etc/bacula/bacula-dir.conf
sudo sed -i "s/@@FD_PASSWORD@@/$/" /etc/bacula/bacula-fd.conf

Запуск компонентов Bacula

Запустите Bacula Director, Storage Daemon и локальный File Daemon с помощью команд:

sudo systemctl start bacula-dir
sudo systemctl start bacula-sd
sudo systemctl start bacula-fd

После успешного запуска компонентов добавьте их в автозагрузку.

sudo systemctl enable bacula-dir
sudo systemctl enable bacula-sd
sudo systemctl enable bacula-fd

Создание тестовой задачи

Для запуска первой задачи можно использовать Bacula Console.

Чтобы открыть консоль, введите:

Вы попадете в командную строку Bacula Console, которая обозначена символом *.

Создание метки

Введите команду label.

Команда запросит имя тома.

Enter new Volume name:
MyVolume

Затем выберите пул для бэкапа. В данном примере используется пул File. Чтобы выбрать его, введите 2.

Select the Pool (1-3):
2

Запуск резервного копирования вручную

Bacula теперь знает, как нужно записывать данные резервной копии. Теперь можно запустить резервное копирование, чтобы убедиться, что Bacula работает правильно:

Программа предложит выбрать задачу, которую нужно запустить. Чтобы выбрать BackupLocalFiles, введите 1.

Select Job resource (1-3):
1

Чтобы запустить задачу, на запрос Run Backup job нужно ответить yes.

Также вы можете узнать состояние задачи. Для этого нужно запросить состояние Director. Введите в bconsole:

Если задача выполняется успешно, вы увидите примерно такой вывод:

Running Jobs:
Console connected at 09-Apr-15 12:16
JobId Level Name Status
======================================================================
3 Full BackupLocalFiles.2015-04-09_12.31.41_06 is running
====

Когда задача будет завершена, в отчете о состоянии она перейдет в раздел Terminated Jobs:

Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
3 Full 161,124 877.5 M OK 09-Apr-15 12:34 BackupLocalFiles

Состояние OK значит, что задача выполнена успешно.

Теперь у вас есть резервная копия Full Set, созданная с помощью Bacula.

Тестовое восстановление

Создав резервную копию, важно проверить ее восстановление. Команда restore позволяет восстанавливать скопированные файлы.

Полное восстановление

Для примера попробуйте восстановить все файлы последней резервной копии:

На экране появится меню, в котором можно выбрать резервный набор, который необходимо восстановить. Поскольку у вас есть только одна резервная копия, выберите вариант 5, «Select the most recent backup»:

Select item (1-13):
5

Поскольку в данной настройке есть всего один клиент, он будет выбран автоматически.

Затем программа предложит выбрать FileSet. Чтобы выбрать Full Set, введите 2.

Select FileSet resource (1-2):
2

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

Поскольку для восстановления использовалась команда restore all, все скопированные файлы уже выбраны. Файлы, которые входят в список восстанавливаемых, отмечены звездочкой *.

Чтобы откорректировать список файлов, вы можете перемещаться и просматривать содержимое с помощью команд cd и ls, а также добавлять и исключать файлы с помощью команд mark и unmark.

Чтобы получить полный список команд, введите help.

Выбрав все необходимые файлы, введите:

OK to run? (yes/mod/no):
yes

Проверьте состояние Director:

Чтобы закрыть Bacula Console, введите:

Проверка восстановления

sudo ls -la /bacula/restore

В нем должны быть восстановленные копии файлов. Чтобы восстановить утраченные данные, можете скопировать восстановленные файлы в соответствующие каталоги.

Удаление восстановленных файлов

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

sudo -u root bash -c "rm -rf /bacula/restore/*"

Запустите эту команду как root, так как многие восстановленные файлы принадлежат пользователю root.

Заключение

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

Bacula — кроссплатформенное клиент-серверное программное обеспечение, позволяющее управлять резервным копированием, восстановлением, и проверкой данных по сети для компьютеров и операционных систем различных типов.

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

Создаем файл с содержимым:

Далее нам надо отключить SELinux, т.к. судя по ответу разработчиков в релизной на сегодняшней день версии 9.4.4 они еще не допилили связь Bacula и SELinux


Установка и настройка PostgreSQL 10

Добавляем репозиторий PostgreSQL 10

Устанавливаем PostgreSQL 10, инициализируем БД сервер

Запускаем сервис и добавляем его в автозагрузк

Настраиваем PostgreSQL
Раскоментируем строку listen_addresses

Настраиваем подключения к базе

Установка Bacula 9.4.4

Выполняем скрипты, для корректной работы Bacula с PostgreSQL

Делаем симлинки для удобства управления, запускаем службу и смотрим статус

Создаем директории для бэкапов / ресторов (к ним можно примонтировать NFS-хранилище)

Создаем директории для логов

Теперь надо отредактировать конфиги Bacula, прописать наш пароль

Настройка ресурса Director

Найдите ресурс Director и настройте его для прослушивания ip-адреса. Для этого добавьте в раздел строку DirAddress.

Настройка локальных задач

Задачи Bacula (job) выполняют резервное копирование и восстановление данных. Ресурсы задания – это подробные данные о том или ином задании: имя клиента, файлы для бэкапа или восстановления (FileSet) и многое другое.
Найдите ресурс Job с именем BackupClient1. Замените значение в строке Name именем BackupLocalFiles.

Затем найдите ресурс Job с именем RestoreFiles. В строке Name укажите имя RestoreLocalFiles, а в строке Where – каталог /bacula/restore.

Файлы для бэкапа

  • Добавить сжатие gzip.
  • В разделе Include заменить /usr/sbin в строке File на /.
  • В конце раздела Exclude добавить строку File = /bacula.

Настройка каталога

Ресурс Catalog определяет БД, к которой будет подключаться Director.
Найдите ресурс Catalog по имени MyCatalog (под комментарием Generic catalog service). Обновите значение dbpassword и укажите пароль пользователя MySQL/PostgeSQL bacula.
Еще надо добавить адрес, иначе при проверке (sudo bacula-dir -tc /opt/bacula/etc/bacula-dir.conf) нет конекта к базе

Настройка пула

Ресурс Pool определяет набор хранилищ, используемых Bacula для записи резервных копий. В данном случае в качестве томов хранения используются файлы. Обновите метки, чтобы локальные резервные копии были правильно помечены.

Сохраните и закройте файл. Настройка компонента Bacula Director завершена.

Настройка Storage Daemon

Надо настроить Storage Daemon, чтобы система Bacula понимала, где хранить файлы.

Откройте конфигурационный файл SD.

Настройка устройства хранения


Установка и настройка Bacula и Webmin для создания бэкапов сервера на Redhat/CentOS/Fedora

Установка Bacula на Redhat/CentOS/Fedora

Сначала давайте установим Bacual и MySQL сервер, используя команду:

Запустите службу MySQL и создайте пароль рута для MySQL.

Добавим службу мускула в автозапуск моей системы:

Назначим пароль для админа в mysql, для этого выполните команду:

Затем установите пароль пользователя для Bacula на MySQL. Чтобы сделать это, войдите в свой сервер MySQL с помощью команды:

Настройка Bacula для создания бэкапов сервера на Redhat/CentOS/Fedora

Теперь нужно обновить все файлы конфигурации Bacula с новым паролем и ИП- адресом, как показано ниже.

Обновляем Bacula Director

Обновление сервера хоста Bacula, Bacula MySQL пароль пользователя, Bacula консоли пароля, демон Bacula файл паролей и т.д. Будьте внимательны, что вы должны использовать полное доменное имя для добавления клиентов или просто использовать IP-адрес вместо этого.

bacula-dir.conf

Так как он довольно большой я решил выложить готовый свой конфиг, чтобы посмотреть его, перейдите по ссылке, так же можете его скачать:

Обновляем Bacula Console

редактирование bconsole.conf в bacula

редактирование bconsole.conf в bacula

Так же вылажу свой конфиг, ссылка для чтения тут, качаем по команде:

Обновляем Storage Daemon

настройка bacula-sd.conf в bacula

настройка bacula-sd.conf в bacula

Обновляем file daemon

настройка bacula-fd.conf в bacula

настройка bacula-fd.conf в bacula

И, наконец, последний конфиг:
Для чтения.

Чтобы его скачать, выполните команду:

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

Теперь мы закончили все редактирование и все модификации. Следующим шагом нужно перезапустить все демоны в Bacula и добавить их в автозагрузку:

Добавлю все эти сервисы в автозагрузку моей ОС:

Bacula был успешно установлен и настроен. Теперь вы можете добавить клиентов, рабочие места и многое другое путем обновления конфигурационных файлов Bacula. В качестве альтернативы вы можете использовать Webmin, чтобы сделать работу более простой. Вполне легче, чем обновление конфигурационных файлов вручную. Переходим на официальный сайт и качаем последнюю версию webmin, я на момент написания статьи использовал самую последнюю, по этому, если устраивает, используйте:

Отрегулируйте Firewall / Router

если этот файл окажется у вас пустым, то и оставляйте его таким, если есть записи, то допишите еще и эти:

Вот собственно и все, заходим на веб-интерфейс webmin и начинаем его настраивать во вкладке bacula.

Информацию о настройке webmin можете прочитать в моей статье:
Установка webmin CentOS/ RedHat/ Fedora

В ней я описывал как можно зайти на вебмин если забыли ( не знаете логин и пароль от него) как войти.

Если Вы уже перешли в браузер, то появилось окно для входа, вводим в него логин ( у меня это root) и пароль, я его сбросил ( т.к я не знал его).

Меню Bacula Backup System

Меню Bacula Backup System

настройка webmin для bacula

настройка webmin для bacula

Заполняем все поля ( вводим название БД, логин для нее и пользователя) и еще кое что. Тут не сложно все понять. По этому я не буду заострять внимание.

Установка и настройка Bacula и Webmin для создания бэкапов сервера на Redhat/CentOS/Fedora завершена.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Читайте также: