Установка и настройка Bacula на сервер Ubuntu 12.04

Bacula – это продвинутая система резервного копирования, способная обрабатывать создание локальных и удалённых копий за счет использования модели клиент-сервер. Она имеет очень гибкие конфигурации, которые обеспечивают полный контроль над средой резервного копирования.

В данном руководстве показано, как создать резервную копию целой root-системы виртуального выделенного сервера Ubuntu 12.04.

Примечание: Строки, выделенные красным, нужно ввести самостоятельно или отредактировать. Остальное можно просто скопировать и вставить.

Установка MySQL

Для хранения и организации данных Bacula использует базы данных SQL; в данном руководстве используется MySQL.

В Ubuntu 12.04 систему MySQL нужно установить заранее, иначе при установке bacula на экране появится ошибка:

An error occurred while installing the database:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Во избежание этой ситуации нужно просто предварительно установить MySQL:

sudo apt-get update
sudo apt-get install mysql-server

При этом будет запрошен пароль администратора MySQL. Введите пароль, чтобы продолжить.

Установка Bacula

Теперь можно установить компоненты Bacula:

sudo apt-get install bacula-server bacula-client

При этом нужно настроить БД для bacula. Просто нажмите yes, и dbconfig-common настроит БД автоматически.

По запросу введите пароль администратора MySQL. Затем СУБД запросит пароль приложения для bacula-director-mysql. Нажмите Enter или Return, чтобы сгенерировать случайный пароль.

Настройка файловой системы

Теперь нужно создать несколько каталогов, которые будут использоваться в качестве точек резервного копирования и восстановления (назовём их backup и restore).

Запущенная с флагом –p команда mkdir создаст целевой каталог, а также все необходимые родительские каталоги:

sudo mkdir -p /bacula/backup /bacula/restore

Теперь нужно изменить права на каталог, чтобы доступ к ним был только у bacula.

sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Настройка Bacula

Bacula состоит из нескольких компонентов, которые требуют индивидуальной настройки. Все необходимые конфигурационные файлы находятся в каталоге /etc/bacula/.

Настройка bacula-dir.conf

Для начала отредактируйте файл bacula-dir.conf:

sudo nano /etc/bacula/bacula-dir.conf

Чтобы выполнить резервное копирование, запланированное в данном руководстве, нужно отредактировать несколько разделов файла.

Для начала найдите раздел Standard Restore template. В настройках Job нужно найти параметр Where и указать в нём созданную ранее точку восстановления.

Job {
Name = "RestoreFiles"
Type = Restore
Client=Blank-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /bacula/restore
}

Затем найдите раздел «List of files to be backed up». В настройки FileSet нужно внести опцию для поддержки утилиты gzip, которая будет сжимать файлы.

После этого в параметре File = укажите все файлы, которые нужно скопировать. Данный раздел может содержать несколько объявлений File =, каждый со своим путём.

В данном руководстве показано, как создать резервную копию всей системы root (/). Измените параметры следующим образом:

Include {
Options {
signature = MD5
compression = GZIP
}
#
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
File = /
}

В завершение добавьте пути к файлам, которые должны быть исключены из резервной копии. Для этого нужен раздел Exclude, использующий всё тот же синтаксис File =.

В целом, стандартные настройки довольно хороши, нужно только указать путь к архиву; не стоит создавать копию резервной папки. Отредактируйте второй по счёту параметр File =, указав путь к root-файлу bacula:

Exclude {
File = /var/lib/bacula
File = /bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}

Сохраните и закройте файл.

Настройка bacula-sd.conf

Следующий файл, который нужно отредактировать, называется bacula-sd.conf. Он определяет место хранения резервных копий.

Откройте bacula-sd.conf с правами sudo:

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

В разделе «Devices supported by this Storage daemon» найдите настройку Device и измените её значение (Archive Device), указав путь к созданному ранее каталогу для копий:

Device {
Name = FileStorage
Media Type = File
Archive Device = /bacula/backup
LabelMedia = yes;                   # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes;               # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

Сохраните и закройте файл.

Проверка синтаксиса настроек

Прежде чем продолжить, убедитесь, что bacula распознаёт все настройки. Используйте внутренние команды тестирования bacula, чтобы убедиться, что синтаксис отредактированных файлов не содержит ошибок.

Для начала проверьте конфигурации bacula-dir:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Если команда не возвращает никакого результата, значит, конфигурационный файл не содержит ошибок. Затем проверьте bacula-sd:

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

Опять же, отсутствие вывода команды означает, что конфигурационный файл действителен.

Теперь перезапустите сервис bacula, чтобы активировать обновления.

sudo service bacula-sd restart
sudo service bacula-director restart

Теперь всё готово к созданию резервной копии.

Создание резервной копии системы

С сервисом bacula можно взаимодействовать при помощи консоли. Чтобы получить доступ к консоли bacula, запустите команду bconsole:

sudo bconsole

Эта команда откроет консоль bacula, командная строка которой начинается с (*). Сначала выполните команду label. Она запросит указать имя архива, который нужно создать.

label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: MyArchiveName

Выберите pool как тип хранилища. Поскольку резервная копия будет храниться в виде файла, выберите №2:

2: File

Теперь Bacula имеет все инструкции о том, как нужно записать данные для резервной копии. Запустите тестовое резервное копирование, чтобы убедиться, что всё работает должным образом:

run
A job name must be specified.
The defined Job resources are:
1: BackupClient1
2: BackupCatalog
3: RestoreFiles
Select Job resource (1-3):

Выберите 1, чтобы запустить предварительно настроенный процесс резервного копирования.

1: BackupClient1

Подтвердите запуск:

yes

Bacula сообщит, что вы получили несколько сообщений; это вывод, сгенерированный резервной копией. Проверьте сообщения на наличие ошибок, набрав:

messages

На экране появится несколько строк вывода. Повторяйте проверку до тех пор, пока на экране не появится резюме результатов выполнения резервного копирования:

Termination: Backup OK

Затем выполните контрольную проверку.

Восстановление копии

После создания резервной копии важно убедиться, что её можно восстановить. В консоли bacula введите:

restore all

Появится меню, содержащее широкий ряд опций. Чтобы восстановить последнюю резервную копию, выберите 5:

5: Select the most recent backup for a client

Это откроет дерево виртуальных файлов со структурой скопированных каталогов. Интерфейс позволяет легко добавлять и исключать файлы для восстановления при помощи простых команд.

Поскольку была выбрана опция restore all, каждый скопированный ранее файл будет восстановлен.

Чтобы выполнить тонкую настройку восстановления, просмотрите список файлов при помощи команды ls и cd, выберите файлы для восстановления при помощи команды mark и исключите ненужные файлы при помощи unmark. Чтобы получить полный список команд, запустите через консоль:

Help

Завершив, выйдите из режима выбора файлов с помощью команды:

done

Подтвердите восстановление копии:

yes

Проверьте сообщения об ошибках:

messages

Резюме восстановления должно иметь такой вид:

Termination: Restore OK

Завершив, ведите exit, чтобы закрыть консоль bacula.

exit

Проверка файловой системы

Чтобы убедиться, что резервное копирование прошло успешно, просмотрите содержимое резервного каталога. Для этого понадобятся привилегии sudo, поскольку права на структуру каталогов принадлежат пользователю bacula:

sudo ls /bacula/backup

На экране появится файл с именем, установленным ранее для архива.

Теперь проверьте точку восстановления. Чтобы просмотреть её содержимое:

sudo ls /bacula/restore

Вы увидите зеркало файловой структуры root, за исключением файлов и каталогов, внесённых в раздел Exclude файла bacula-dir.conf.

Примечание: Bacula также является производительным решением для удалённого резервного копирования, о чём можно прочесть в следующей статье этой серии.

Tags: , ,

1 комментарий

Добавить комментарий