Содержание

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

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

  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 root:bacula /backups/files1/

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

sudo mkdir /backups/files2/

sudo chmod 755 /backups/files2/

sudo chown root: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