Pull to refresh

Укрощаем трёхглавого дракона или как работает аутентификация в Bacula

Open source *
Приветствую, Хабравчане.

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

Вообще с бакулой я связался совершенно случайно. Я всегда предпочитал самописные скрипты для бэкапов и мониторинг их выполнения nagios-ом, т.к. все специализированные средства (Bacula, Amanda, и т.п.) казались мне архитектурно слишком сложными, которые сами, в силу своей сложности, требуют того, чтобы их бэкапили. Но однажды, политикой сверху, нас посадили на ARCserve. Поигравшись немного с этим монстром я вернулся к Bacula и понял, что Bacula — это верх изящества и простоты.

Единственной проблемой для меня с Bacula оставалась магия с настройкой аутентификации. Это было просто как магия, вот тут что-то прописал — работает, вот там что-то поменял — не работает. Дело было в том, что:
1) непонятно кто и к кому подключается;
2) какие именно поля из конфигурационного файла использует этот кто-то для аутентификации.

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



Объекты на схеме


Backup Server — сервер управляющий резервным копированием
Storage Server — сервер управляющий хранилищем (хранилищем может быть как стример, так и дисковый массив)
Admin PC — компьютер администратора с утилитами для управления сервером
Backup Monitor — компьютер с программой выполняющей мониторинг серверов и клиентов
Client PC — компьютер, резервное копирование данных которой нужно выполнять

Кто к кому подключается


Из того, что на данный момент удалось узнать:
— Director подключается к Client и Storage
— Client подключается к Storage (в процессе бэкапа)
— Bacula Tray Monitor подключается напрямую к Director, Client и Storage
— Bacula Console подключается только к Director
— Storage самостоятельно, вроде бы, ни к кому не подключается

Аутентификация


Смотрите схему выше и обратите внимание:
— на то, что красными стрелками обозначена аутентификация сервера на сторадже и клиенте, синей стрелкой — подключение консоли управления к серверу, и зелеными (необязательная часть) — подключение утилиты мониторинга ко всем службам (серверу, стораджу и клиенту).
— на то, где и каким образом прописаны IP-адреса
— что в настройках служб необходимо закомментировать DirAddress, SDAddress и FDAddress = 127.0.0.1 (чтобы службы слушали подключения на 0.0.0.0, т.е. на всех интерфейсах)

Какие ещё параметры одних служб должны соответствовать параметрам других


Как на данный момент стало понятно, кроме параметров участвующих в аутентификации (см. схему) и IP-адресов ещё только «Device = Filestorage» и «Media Type = File» в настройках Director должны соответствовать настройкам Storage. Все остальные параметры ни на что не влияют и используются только внутри соответствующих конфигурационных файлов (некоторые их них обозначены на схеме как anyname1, anyname2 и т.д.).

Работы были проведены с:
— Ubuntu Server 12.04.1
— Bacula 5.2.5

Надеюсь, этот пост сэкономит кому-нибудь немного времени. Не забываем сохраняться.
Tags:
Hubs:
Total votes 28: ↑23 and ↓5 +18
Views 17K
Comments Comments 18