воскресенье, 11 мая 2008 г.

Bacula - система резервного копирования и восстановления

отсюда

Перед началом установки сервисов необходимо ознакомиться со структурой и функционированием составных частей системы Bacula. В этом может помочь небольшая статья [1] и исчерпывающая документация (более 700 стр.), доступная на официальном сайте. Установка сервисов - это всего лишь начало, впереди стоят более важные задачи по грамотной конфигурации сервисов и тестированию процессов резервирования и восстановления.

В приведенном описании в качестве Director и Storage сервисов используется FreeBSD 5.4, в качестве клиента (File Daemon) опробованы следующие системы: Debian 3.1 (Bacula 1.36.2), 4.0 (Bacula 1.38.11), FreeBSD 5.4 (Bacula 2.0.1), Slackware 10.1 (Bacula 2.0.2). В качестве рабочей консоли использовался Windows XP SP2 (Bacula 2.0.1).

Установка Director и Storage сервисов

1. Установка производится из портов

# cd /usr/ports/sysutils/bacula-server
# make
[X] MYSQL Use MySQL database instead of SqLite
[X] NLS Native Language Support via gettext utilities
[X] OPENSSL Enable OpenSSL for encrypted communication
...
# make install

2. Для работы Bacula Director необходима база данных для накопления и оперирования всевозможными данными о собранных резервных копиях. Такая база называется Каталог (Catalog). Таких каталогов может быть несколько, в зависимости от потребностей. Перед запуском, необходимо подготовить хотя бы один Каталог:

mysql -u root -ppassword
CREATE DATABASE `bacula_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT USAGE ON *.* TO 'baculauser'@'localhost' IDENTIFIED BY 'baculauser_password';
GRANT ALL PRIVILEGES ON `bacula_db`.* TO 'baculauser'@'localhost';

Для заполнения подготовленной базы необходимыми таблицами есть скрипт /usr/local/share/bacula/make_mysql_tables. Единственное, в нем по умолчанию используется база данных с именем bacula. В данном примере используется имя bacula_db, поэтому перед запуском скрипт необходимо внести соответствующую поправку.

# /usr/local/share/bacula/make_mysql_tables -u baculauser -pbaculauser_password
Creation of Bacula MySQL tables succeeded.

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

# cd /usr/local/etc
# cp bacula-dir.conf.sample bacula-dir.conf
# cp bacula-sd.conf.sample bacula-sd.conf

Для автоматического запуска Director и Storage сервисов при загрузке сервера в /etc/rc.conf добавить строчки

bacula_dir_enable="YES"
bacula_sd_enable="YES"

Документацию и клиент-сервис (file daemon) можно установить отдельно

# cd /usr/ports/sysutils/bacula-docs
# make && make install
# cd /usr/ports/sysutils/bacula-client
# make && make install
Запуск сервисов
# /usr/local/etc/rc.d/bacula-dir.sh start
# /usr/local/etc/rc.d/bacula-sd.sh start

Установка клиента (File Daemon)

# apt-get install bacula-fd
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
bacula-common
Suggested packages:
bacula-doc bacula-traymonitor
The following NEW packages will be installed
bacula-common bacula-fd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 528kB of archives.
After unpacking 1167kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get: 1 http://ftp.at.debian.org etch/main bacula-common 1.38.11-7 [348kB]
Get: 2 http://ftp.at.debian.org etch/main bacula-fd 1.38.11-7 [180kB]
Fetched 528kB in 2s (264kB/s)
Selecting previously deselected package bacula-common.
(Reading database ... 44221 files and directories currently installed.)
Unpacking bacula-common (from .../bacula-common_1.38.11-7_all.deb) ...
Adding user 'bacula'... Ok.
Selecting previously deselected package bacula-fd.
Unpacking bacula-fd (from .../bacula-fd_1.38.11-7_i386.deb) ...
Setting up bacula-common (1.38.11-7) ...

Setting up bacula-fd (1.38.11-7) ...
Starting Bacula File daemon: bacula-fd.

В конфигурационном файле /etc/bacula/hostname-fd.conf поправить описание Director (имя, адрес, пароль), закомментировать второй Director (с опцией Monitor), в описании Messages поправить имя используемого director'а. Перезапустить fd-сервис с новыми параметрами:

# /etc/init.d/bacula-fd restart
Restarting Bacula File daemon: bacula-fd.

Установка клиента из исходников (sources)

# tar zxf bacula-2.0.x.tar.gz
# cd bacula-2.0.x
./configure --with-mysql --with-openssl --enable-client-only --localstatedir=/var --sysconfdir=/etc \
--with-job-email=roma@mycompany.com --with-dump-email=roma@mycompany.com
# make
# make install

В конфигурационном файле /etc/bacula/bacula-fd.conf поправить описание Director (имя, адрес, пароль), закомментировать второй Director (с опцией Monitor), в описании Messages поправить имя используемого director'а. Скрипт управления bacula-сервисами - /etc/bacula/bacula, его необходимо переложить, в соответствии с Вашей системой, в папку с другими скриптами и проделать необходимые манипуляции для автоматического запуска fd-сервиса в момент загрузки системы. Запустить fd-сервис с новыми параметрами:

# /etc/bacula/bacula start
Starting the Bacula File daemon

Ссылки:

  1. Bacula: Cross-Platform Client-Server Backups
  2. Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows
  3. Перевод документации от Bacula v.1.38 на русский язык (частично)

Комментариев нет: