Это старая версия документа.
Bacula
Bacula - это программа резервного копирования, позволяющая вам сохранять, восстанавливать и проверять данные через вашу сеть. Для Bacula существуют клиенты под Linux, Windows и Mac OS X, превращая ее в кросс-платформенное сетевое решение.
Обзор
Bacula состоит из нескольких компонентов и сервисов для управления тем, какие файлы сохранять и где хранить резервные копии:
~~ **Bacula Director**: сервис, который управляет всеми операциями резервного копирования, восстановления, проверки и архивации. ~~ **Bacula Console**: приложение, позволяющее взаимодействовать с **Director**. Существует три версии **Console**: ~~ текстовая версия, основанная на командной строке. ~~ графический пользовательский интерфейс (GUI) для **Gnome**, основанный на GTK+. ~~ графический интерфейс на базе wxWidgets. ~~ **Bacula File**: она же программа **Bacula Client**. Это приложение устанавливается на машине, на которой производится резервное копирование, и оно отвечает на данные, отправленные по запросу **Director**. ~~ **Bacula Storage**: программа, которая выполняет хранение и восстановление данных на физических носителях. ~~ **Bacula Catalog**: отвечает за поддержку файловых индексов и томов баз данных для всех сохраняемых фалов, допуская быстрое нахождение и восстановление сохраненных файлов. **Catalog** поддерживает три различных базы данных: MySQL, PostgreSQL и SQLite. ~~ **Bacula Monitor**: позволяет отслеживать работу **Director** и сервисов **File** и **Storage**. На данный момент **Monitor** доступен только в виде GTK+ GUI приложения.
Эти сервисы и приложения могут быть запущены на разных серверах и клиентах или их можно установить на одной машине, если требуется резервное копирование одного диска или тома.
Установка
Существует несколько пакетов, содержащих различные компоненты Bacula. Для установки Bacula введите в терминале:
sudo apt-get install bacula
При установке по умолчанию пакет bacula будет использовать базу данных MySQL для Catalog. Если вы хотите использовать SQLite или PostgreSQL, установите соответственно пакет bacula-director-sqlite3 или bacula-director-pgsql.
В процессе установки у вас спросят данные об администраторе базы данных и владельце базы данных bacula. Администратор базы данных требуется для получения необходимых прав на создание базы данных. Дополнительную информацию смотрите в разделе MySQL.
Настройка
Файлы настройки Bacula форматированы на основе ресурсов, включающих директивы, обрамленные фигурными скобками "{}". Каждый компонент Bacula имеет индивидуальный файл в каталоге /etc/bacula.
Различные компоненты Bacula должны авторизовывать себя друг для друга. Это решается использованием директивы password. Например, пароль в ресурсе Storage файла /etc/bacula/bacula-dir.conf должен соответствовать паролю ресурса Director файла /etc/bacula/bacula-sd.conf.
По умолчанию настраивается задание резервного копирования Client1 для архивирования Bacula Catalog. Если вы планируете использовать сервер для резервного копирования более чем на одном клиенте, вам потребуется изменить имя этого задания на что-то более осмысленное. Для переименования отредактируйте файл /etc/bacula/bacula-dir.conf:
# # Define the main nightly save backup job # By default, this job will back up to disk in Job { Name = "BackupServer" JobDefs = "DefaultJob" Write Bootstrap = "/var/lib/bacula/Client1.bsr" }
Требуется использовать Console для запросов к Director по поводу заданий, но чтобы обычный пользователь мог использовать Console, он должен быть включен в группу bacula. Чтобы добавить пользователя в группу bacula введите следующую команду в терминале:
sudo adduser $username bacula
Резервное копирование локальной системы
This section describes how to backup specified directories on a single host to a local tape drive.
First, the Storage device needs to be configured. Edit /etc/bacula/bacula-sd.conf add:
Device { Name = "Tape Drive" Device Type = tape Media Type = DDS-4 Archive Device = /dev/st0 Hardware end of medium = No; AutomaticMount = yes; # when device opened, read it AlwaysOpen = Yes; RemovableMedia = yes; RandomAccess = no; Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'" }
The example is for a DDS-4 tape drive. Adjust the “Media Type” and “Archive Device” to match your hardware.
You could also uncomment one of the other examples in the file.
After editing /etc/bacula/bacula-sd.conf the Storage daemon will need to be restarted:
sudo /etc/init.d/bacula-sd restart
Now add a Storage resource in /etc/bacula/bacula-dir.conf to use the new Device:
# Definition of "Tape Drive" storage device Storage { Name = TapeDrive # Do not use "localhost" here Address = backupserver # N.B. Use a fully qualified name here SDPort = 9103 Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyjc" Device = "Tape Drive" Media Type = tape }
The Address directive needs to be the Fully Qualified Domain Name (FQDN) of the server. Change backupserver to the actual host name.
Also, make sure the Password directive matches the password string in /etc/bacula/bacula-sd.conf.
Create a new FileSet, which will determine what directories to backup, by adding:
# LocalhostBacup FileSet. FileSet { Name = "LocalhostFiles" Include { Options { signature = MD5 compression=GZIP } File = /etc File = /home } }
This FileSet will backup the /etc and /home directories. The Options resource directives configure the FileSet to create an MD5 signature for each file backed up, and to compress the files using GZIP.
Next, create a new Schedule for the backup job:
# LocalhostBackup Schedule -- Daily. Schedule { Name = "LocalhostDaily" Run = Full daily at 00:01 }
The job will run every day at 00:01 or 12:01 am. There are many other scheduling options available.
Finally create the Job:
# Localhost backup. Job { Name = "LocalhostBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "LocalhostFiles" Schedule = "LocalhostDaily" Storage = TapeDrive Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr" }
The job will do a Full backup every day to the tape drive.
Each tape used will need to have a Label. If the current tape does not have a label Bacula will send an email letting you know. To label a tape using the Console enter the following from a terminal:
bconsole
At the Bacula Console prompt enter:
label
You will then be prompted for the Storage resource:
Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" The defined Storage resources are: 1: File 2: TapeDrive Select Storage resource (1-2):2
Enter the new Volume name:
Enter new Volume name: Sunday Defined Pools: 1: Default 2: Scratch
Replace Sunday with the desired label.
Now, select the Pool:
Select the Pool (1-2): 1 Connecting to Storage daemon TapeDrive at backupserver:9103 ... Sending label command for Volume "Sunday" Slot 0 ...
Congratulations, you have now configured Bacula to backup the localhost to an attached tape drive.