Содержание

Skip to end of metadata
Go to start of metadata

Хранилищу сообщаем:

  1. Как его зовут

  2. Другую основную служебную информацию
  3. Где их с клиентом директор и как с ним общаться

  4. Как и куда сообщать о своем состоянии и работах

  5. Как и где хранить данные

  6. Как и куда сообщать о своем состоянии и работах

Файл конфигурации Bacula Storage

Файл конфигурации Bacula Storage по умолчанию /etc/bacula/bacula-sd.conf имеет в себе почти 300 строк, в которых много служебной информации и примеры.

Нам все это не нужно.

Создадим папку куда сложим бекапы файлов конфигурации Bacula по умолчанию:

sudo mkdir /etc/bacula/backup-default-conf

Сделаем резервную копию основного файла конфигурации:

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

Создадим новый основной файл конфигурации (пустой):

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

Основная конфигурация Хранилища (Main conf)

при копировании проверяйте правильность указанных IP адресов

Storage {

имя Хранилища

Name = stor-sd

какой порт слушать (используется значение по умолчанию)

SDPort = 9103

папка в которой лежат статус-файлы Хранилища

WorkingDirectory = "/var/lib/bacula"

pid-файл демона Хранилища

Pid Directory = "/run/bacula"

# Максимальное количество выполняемых заданий.

# (не рекомендуется одновременно запускать более одного задания)

Maximum Concurrent Jobs = 1

fqdn имя или IP-адрес Хранилища

SDAddress = 192.168.244.80

}

Подключение Директора к этому Хранилищу

Далее нам необходимо сконфигурировать подключение Директора к этому Хранилищу, добавив в этот файл ( /etc/bacula/bacula-sd.conf ) следующее:

Director {

# Имя Директора который может подключаться к этому Хранилищу

Name = dir-dir

# Пароль подключения к этому Хранилищу

Password = "storpass"

}

В моем примере я решил использовать Autochanger. Это Настройка которая позволяет сгруппировать устройства хранения, входящие в одну автоматизированную библиотеку, возможно виртуальную, и обращаться к ним как к единому целому, позволяя серверу хранения выбрать доступное.

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

Далее нам необходимо настроить Autochanger .

Autochanger {

# Имя, указывается В Директоре (директива Device ресурса Storage)

Name = Autochanger1

# имена устройств хранения через запятую (ресурсы Device)

Device = FileChgr1-Dev1, FileChgr1-Dev2

# /dev/null для виртуального дискового, имеются подстановки

# (%o - команда (load, unload), %a - устройство для данных, %c - устройство позиционирования и т.д.)

Changer Command = ""

# /dev/null для виртуального дискового

Changer Device = /dev/null

}

Устройства хранения

Далее мы сконфигурируем наши устройства хранения.

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

У нас появляются 2 новых устройства с именами: "FileChgr1-Dev1" и "FileChgr1-Dev2".

Папка для устройства FileChgr1-Dev1:

sudo mkdir /backups/files1/

sudo chmod 755 /backups/files1/

sudo chown bacula:bacula /backups/files1/

Папка для устройства FileChgr1-Dev2:

sudo mkdir /backups/files2/

sudo chmod 755 /backups/files2/

sudo chown bacula:bacula /backups/files2/


Device {

# Имя устройства хранения (уникальное для каждого устройства)

Name = FileChgr1-Dev1

# логический тип носителя; указывается директором в запросе

# используется при восстановлении для определения сервера хранения, способного прочитать том;

# каждое устройство для записи на диск в определённый каталог должно иметь соответствующий Media Type,

# т.к. в БД хранится только Media Type, а не имя устройства

Media Type = File1

# имя устройства или абсолютное имя (путь) каталога

# в котором будут размещаться резервные копии

Archive Device = /backups/files1

# позволяет автоматически размечать новые тома

# в соответствии с директивой LabelFormat ресурса Pool в настройках Директора

LabelMedia = yes

# Указывает на возможность случайной (непоследовательной) адресации.

# Для устройства типа File должно быть yes

Random Access = Yes

# если устройство открыто, использовать его

AutomaticMount = yes

# возможно ли извлечение устройства хранения. Необходимо для Tape, CD и т.д.

Для файлов устанавливается no

RemovableMedia = no;

# открывать только тогда, когда стартует соответствующие задание

AlwaysOpen = no;

# Максимальное количество выполняемых заданий.

# (не рекомендуется одновременно запускать более одного задания)

Maximum Concurrent Jobs = 1

}


Device {

Name = FileChgr1-Dev2

Media Type = File1

Archive Device = /backups/files2

LabelMedia = yes

Random Access = Yes

AutomaticMount = yes

RemovableMedia = no

AlwaysOpen = no

Maximum Concurrent Jobs = 1

}

Поведение уведомлений Хранилища

Заканчивается настройка Хранилища конфигурацией поведения уведомлений.

Messages {

Name = Standard

director = dir-dir = all

}

Итоговая конфигурация Хранилища

при копировании проверяйте правильность указанных IP адресов

Storage {

# имя Хранилища

Name = stor-sd

# какой порт слушать (используется значение по умолчанию)

SDPort = 9103

# папка в которой лежат статус-файлы Хранилища

WorkingDirectory = "/var/lib/bacula"

# pid-файл демона Хранилища

Pid Directory = "/run/bacula"

# Максимальное количество выполняемых заданий.

# (не рекомендуется одновременно запускать более одного задания)

Maximum Concurrent Jobs = 1

# fqdn имя или IP-адрес Хранилища

SDAddress = 192.168.244.80

}


Director {

# Имя Директора который может подключаться к данному хранилищу

Name = dir-dir

# Пароль подключения к данному хранилищу

Password = "storpass"

}


Autochanger {

# Имя, указывается В Директоре (директива Device ресурса Storage)

Name = Autochanger1

# имена устройств хранения через запятую (ресурсы Device)

Device = FileChgr1-Dev1, FileChgr1-Dev2

# /dev/null для виртуального дискового, имеются подстановки

# (%o - команда (load, unload), %a - устройство для данных, %c - устройство позиционирования и т.д.)

Changer Command = ""

# /dev/null для виртуального дискового

Changer Device = /dev/null

}


Device {

# Имя устройства хранения (уникальное для каждого устройства)

Name = FileChgr1-Dev1

# логический тип носителя; указывается директором в запросе

# используется при восстановлении для определения сервера хранения, способного прочитать том;

# каждое устройство для записи на диск в определённый каталог должно иметь соответствующий Media Type,

# т.к. в БД хранится только Media Type, а не имя устройства

Media Type = File1

# имя устройства или абсолютное имя (путь) каталога

# в котором будут размещаться резервные копии

Archive Device = /backups/files1

# позволяет автоматически размечать новые тома

# в соответствии с директивой LabelFormat ресурса Pool в настройках Директора

LabelMedia = yes

# Указывает на возможность случайной (непоследовательной) адресации.

# Для устройства типа File должно быть yes

Random Access = Yes

# если устройство открыто, использовать его

AutomaticMount = yes

# возможно ли извлечение устройства хранения. Необходимо для Tape, CD и т.д.

# Для файлов устанавливается no

RemovableMedia = no;

# открывать только тогда, когда стартует соответствующие задание

AlwaysOpen = no;

# Максимальное количество выполняемых заданий.

# (не рекомендуется одновременно запускать более одного задания)

Maximum Concurrent Jobs = 1

}


Device {

Name = FileChgr1-Dev2

Media Type = File1

Archive Device = /backups/files2

LabelMedia = yes

Random Access = Yes

AutomaticMount = yes

RemovableMedia = no

AlwaysOpen = no

Maximum Concurrent Jobs = 1

}


Messages {

Name = Standard

director = dir-dir = all

}

Присвоение необходимых прав созданному файлу и назначение ему владельца (chmod and chown on file)

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

sudo chmod 644 /etc/bacula/bacula-sd.conf

sudo chown root:bacula /etc/bacula/bacula-sd.conf

Перезапуск сервиса Хранилища

Необходимо перезапустить сервис командой:

sudo systemctl restart bacula-sd.service

Если все настроено правильно, то никаких сообщений об ошибках мы не увидим.

Если что то пошло не так - смотрим логи Bacula и системы, разбираемся с правами доступа в папки и к файлам самой Bacula на Хранилище.

Так же для понимания что не так хорошо помогает результат вывода команды:

sudo journalctl -xe

Настройка закончена, если все прошло без ошибок, то можно и НУЖНО(!!!) сделать снимок ВМ Хранилища.
  • No labels