Т.к. bacula штука здоровая, то будет несколько частей.
Что такое bacula - это очень мощный, открытый менеджер бэкапов для гигантского кол-ва платформ. Про платформы не шучу, их реально много.
Но почему я выбрал именно эту "чудо" систему?
Дело в том, что парк машин у меня хоть и не очень солидный, но на второй десяток уже идет. И захотелось под это всё, хоть как-то, свести бэкапы в единую систему. И встал вопрос, что выбрать - ну а раз пишу про bacula, то выбор был сделан в пользу этой системы.
Сразу предупреждаю, что bacula - жуткий монстр, его конфиг удручает с первых минут, и именно по этому, надо сначала понять как это дело работает. Иначе...
А работает bacula просто и лаконично. Весь сервис делится на три части:
За работу с хранилищами отвечает сервис bacula-sd. Зачем отдельный сервис? Дело в том, что хранилища бывают разными: на хардах, на лентах, на оптических дисках, да хоть на флешках. А бывают ещё и библиотеки для лент и оптики. Вот ко всему этому добру данный сервис и дает вам доступ. Причем эти сервисы могут быть раскинуты по разным физическим машинам, что позволяет делать хоть гео-распределенное хранилище. За сервисами хранилищ следит сервис управления, через единый интерфейс взаимодействия. Вот и получается, что можно заготовить такие схемы хранения, что хватит практически на любого изысканного гурмана.
Сервис клиентов.
Собственно сервис, по средством которого будет осуществлено резервирование данных. Вы просто устанавливаете клиент и задаете ему пароль. На клиенте не надо указывать, что и когда вы хотите делать. Все ваши действия вы будете указывать на стороне управляющего сервиса, кроме отдельных специфичных скриптов. Сами понимаете, что скрипты под windows в linux среде отлаживать немного ... неудобно. А клиентские сервисы имеются под множество платформ. Т.е. на стороне клиента надо делать минимум действий. Удобно администратору с гигантским парком машин - минимум возни с клиентской частью.
Сервис управления.
Воистину монстр. Базовый конфиг занимает около 300 строк. Реальный ужас, а после пару клиентов и сложных комбинаций заданий, вообще способен быстро вырасти свыше 1000 строк. Т.ч. первое действие, которое надо сделать, это разбить по отдельным файлам разделы из файла bacula-dir.conf. В конфиге bacula подгрузка данных делается через директиву @/path/to/file.name.
Как сделал я? Я разделил конфиги на следущие секции:
Да собственно теперь можно сразу вынести листинг
Что такое bacula - это очень мощный, открытый менеджер бэкапов для гигантского кол-ва платформ. Про платформы не шучу, их реально много.
Но почему я выбрал именно эту "чудо" систему?
Дело в том, что парк машин у меня хоть и не очень солидный, но на второй десяток уже идет. И захотелось под это всё, хоть как-то, свести бэкапы в единую систему. И встал вопрос, что выбрать - ну а раз пишу про bacula, то выбор был сделан в пользу этой системы.
Сразу предупреждаю, что bacula - жуткий монстр, его конфиг удручает с первых минут, и именно по этому, надо сначала понять как это дело работает. Иначе...
А работает bacula просто и лаконично. Весь сервис делится на три части:
- Управление
- Клиенты
- Хранилища
За работу с хранилищами отвечает сервис bacula-sd. Зачем отдельный сервис? Дело в том, что хранилища бывают разными: на хардах, на лентах, на оптических дисках, да хоть на флешках. А бывают ещё и библиотеки для лент и оптики. Вот ко всему этому добру данный сервис и дает вам доступ. Причем эти сервисы могут быть раскинуты по разным физическим машинам, что позволяет делать хоть гео-распределенное хранилище. За сервисами хранилищ следит сервис управления, через единый интерфейс взаимодействия. Вот и получается, что можно заготовить такие схемы хранения, что хватит практически на любого изысканного гурмана.
Сервис клиентов.
Собственно сервис, по средством которого будет осуществлено резервирование данных. Вы просто устанавливаете клиент и задаете ему пароль. На клиенте не надо указывать, что и когда вы хотите делать. Все ваши действия вы будете указывать на стороне управляющего сервиса, кроме отдельных специфичных скриптов. Сами понимаете, что скрипты под windows в linux среде отлаживать немного ... неудобно. А клиентские сервисы имеются под множество платформ. Т.е. на стороне клиента надо делать минимум действий. Удобно администратору с гигантским парком машин - минимум возни с клиентской частью.
Сервис управления.
Воистину монстр. Базовый конфиг занимает около 300 строк. Реальный ужас, а после пару клиентов и сложных комбинаций заданий, вообще способен быстро вырасти свыше 1000 строк. Т.ч. первое действие, которое надо сделать, это разбить по отдельным файлам разделы из файла bacula-dir.conf. В конфиге bacula подгрузка данных делается через директиву @/path/to/file.name.
Как сделал я? Я разделил конфиги на следущие секции:
- jobs,
- clients,
- filesets,
- pools,
- schedulers,
- storages
Да собственно теперь можно сразу вынести листинг
Director {
Name = backup-dir
DIRport = 9101
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 1 # можно запускать только одно задание
Password = "my_director pass" # Console password
Messages = Daemon
DirAddresses = {
ip = { addr = some.localnetwork;
port = 9101;
}
ip = { addr = some.internet.host;
port = 9101;
}
ip = {
addr = 127.0.0.1;
port = 9101;
}
} # Сделано так, потому как есть ещё пару сетевых интерфейсов куда светить не надо
}
Catalog {
Name = BackupCatalog
dbname = "bacula";# dbuser = "bacula"; dbpassword = "" нету так как sqlite
}
# Консоль - это четвертая часть в бакуле, но так как настройки большой не требует
# то я её и не описывал. Единственное, что в конфиге консоли пароль должен совпадать
Console {
Name = backup-mon
Password = "my_console_pass" # Console password
CommandACL = status, .status
}
# Здесь системные сообщения. В общем это отдельная песня. Пока лучше оставить так, как есть
Messages {
Name = Standard
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
mail = root@localhost = all, !skipped
operator = root@localhost = mount
catalog = all
console = all, !skipped, !saved
append = "/var/lib/bacula/log" = all, !skipped
}
Messages {
Name = Daemon
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
mail = root@localhost = all, !skipped
console = all, !skipped, !saved
append = "/var/lib/bacula/log" = all, !skipped
}
# Импортирование конфига для различных секций
@/etc/bacula/bacula-dir-jobdefs.conf
@/etc/bacula/bacula-dir-job.conf
@/etc/bacula/bacula-dir-fileset.conf
@/etc/bacula/bacula-dir-schedule.conf
@/etc/bacula/bacula-dir-client.conf
@/etc/bacula/bacula-dir-storage.conf
@/etc/bacula/bacula-dir-pool.conf
В следующей части я объясню как работает связка.
Комментариев нет:
Отправить комментарий