Установка Bacula Часть №2.

До завершения базовой настройки Director Daemon осталось совсем немного. Секция Pool определяет набор носителей информации и параметры, определяющие то, как SD будет их обрабатывать. Каждый Pool взаимодействует с устройством хранения данных, и поэтому необходимо создать столько же пулов, сколько определено устройств хранения. Фактически если для каждого File Daemon вы определяете отдельное устройство, то для каждого FD необходимо определить и Pool. Рассмотрим перечень наиболее значимых параметров.
Параметр Name определяет уникальное имя пула.
Параметр Pool Type определяет тип, и для резервных копий должен быть установлен в значение Backup.
Параметр Maximum Volume Jobs рекомендуется установить в значение 1. Это будет означать, что в рамках одного носителя данных могут быть размещены резервные данные, полученные в ходе выполнения только одного задания. Носитель данных – это устройство, на которое непосредственно записываются данные (оптические диски, магнитные ленты). Если размер созданной резервной копии много меньше размера носителя, то имеет смысл сохранить на него и другие копии, которые будут создаваться в будущем. Но если мы говорим о файлах, то желательно придерживаться правила «один файл – одна копия», т.е. в одном файле Bacula должны храниться резервные данные, которые были сформированы в рамках выполнения одного задания. Для каждого последующего будут создаваться новые файлы.
Volume Retention – время, по прошествии которого данные о резервной копии, хранящейся на носителе, будут удалены из каталога. Для обеспечения работоспособности Bacula необходимо помнить о том, что информация обо всех зарезервированных файлах хранится в базе данных, по записи на каждый файл. Если вы резервируете тысячи файлов, то очень скоро база данных станет огромной, что может затруднить работу Bacula. Поэтому очень важно своевременно очищать базу от устаревшей информации. При этом сам носитель информации не будет очищен автоматически. Он будет промаркирован как устаревший, но вы всегда сможете использовать его для восстановления данных в ручном режиме.
Maximum Volumes – максимальное количество носителей (в нашем случае файлов), доступных в данном пуле.
Параметр Recycle указывает на необходимость повторного использования носителей, помеченных как устаревшие. При этом реальная перезапись носителя произойдёт лишь в случае, когда свободных носителей не останется. Свободные носители определяются из параметра Maximum Volumes.
Параметр AutoPrune указывает на то, необходимо ли производить удаление устаревших записей из Bacula Catalog автоматически после завершения выполнения очередного задания.
Параметр Label Format определяет префикс, который будет использован Bacula для маркирования носителей информации, в нашем случае – для именования файлов.
Параметр Storage указывает на имя устройства хранения данных, указанного в параметре Name секции Storage файла bacula-dir.conf.
Pool {
    Name = example-pool
    Pool Type = Backup
    AutoPrune = yes
    Recycle = yes
    Volume Retention = 1 months
    Maximum Volume Jobs = 1
    Maximum Volumes = 32
    Storage = Dir-ExampleStorage
    Label Format = "volumeExample-"
}


Одна из интересных секций – FileSet, она позволяет предопределить несколько наборов резервируемых файлов. Например, один набор для Windows, другой – для Linux или один для серверов, а другой – для рабочих станций. Основные параметры здесь следующие.
Параметр Name определяет уникальное имя набора.
Секция Include содержит пути к резервируемым файлам/каталогам, а Exclude – пути к файлам и каталогам, которые необходимо исключить из списка резервируемых. В секции Include возможна секция Options, в которой определяются параметры резервирования.
Параметр signature указывает алгоритм вычисления контрольных сумм файлов.
Параметр compression указывает алгоритм компрессии файлов.
Параметр recurse указывает на необходимость рекурсивного резервирования, включая подкаталоги и файлы.
FileSet {
    Name = "example-set"
    Include {
        Options {
           signature = MD5
           compression= GZIP
           recurse = yes
        }
    File = /etc
    File = /var
    }
    Exclude {
        File = /var/tmp
    }
}


Теперь на время отложим Director Daemon и перейдём к настройке File Daemon на рабочей станции client.example.com. Для этого сначала установим программный продукт:
# yum -y install bacula-client


Для настройки используется файл /etc/bacula/bacula-fd, в котором для базовой настройки достаточно лишь определить параметры секции Director, где указывается пароль, который будет использовать DD при подключении к FD, а также секции FileDaemon, где указываются настройки FD. Все остальные секции Director, найденные в файле, закомментируйте, они пока не понадобятся.
Director {
  Name = example-director
  Password = "client-password"
}

В секции FileDaemon нас, на данном этапе, интересует только параметр Name, в котором указывается уникальное имя File Daemon:
FileDaemon {
  Name = example-client
  FDport = 9102
  WorkingDirectory = /var/spool/bacula
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}

Ну, а теперь вернёмся к серверу Director Daemon, где в конфигурации укажем параметры нашего единственного Агента. Хочется надеяться, что значения всех параметров вам уже ясны.
Client {
    Name = example-client
    Address = client.example.com
    FDPort = 9102
    Catalog = example-catalog
    Password = "client-password"
}

Ну, а теперь финальный аккорд. Всё, что мы настраивали на протяжении этих страниц, мы свяжем воедино с помощью секции Job, в которой мы даём задание планировщику по выполнению резервирования данных. Здесь мы уже не будем описывать все параметры, отметив лишь основные.
Параметр Type указывает на тип задания. Типов существует несколько, и к ним мы еще вернемся в продолжение цикла. Здесь же достаточно указать Backup.
Параметр Schedule указывает на предопределённое расписание, согласно которому будет выполняться резервирование данных. Все расписания определены здесь же, в файле bacula-dir.conf. Пример расписания WeeklyCycle приведён ниже, комментировать в нём нечего.
Параметр Write Bootstrap указывает путь к файлу, в который будет записываться информация, с помощью которой данные могут быть восстановлены из резервной копии без наличия подключения к Bacula Catalog. Вместо %n будет подставлено значение параметра Name:
Schedule {
  Name = "WeeklyCycle"
  Run = Full sun at 20:05
  Run = Incremental mon-sat at 23:05
}

Job {
    Name = "example-backup"
    Type = Backup
    Client = example-client
    FileSet="example-set"
    Schedule = "WeeklyCycle"
    Messages = Standard
    Pool = example-pool
    Write Bootstrap = "/var/spool/bacula/%n.bsr"
    Priority = 1
}

Последний штрих – закомментируйте все остальные секции: Job, JobDefs, Client и Console, на данном этапе они нам не понадобятся. Также убедитесь, что в netfilter определены правила, разрешающие прохождение трафика Bacula. Как вы понимаете, трафик будет идти по тем портам, что указаны в конфигурационных файлах каждого из компонентов Bacula.
Теперь запустим все компоненты соответствующими командами, данными на соответствующих серверах:
# service bacula-dir start
	# service bacula-fd start
	# service bacula-sd start


Первый запуск
Настало время запуска создания нашей первой резервной копии файлов компьютера client.example.com. Для этого необходимо настроить доступ к DD со стороны Bacula Console в файле /etc/bacula/bconsole.conf сервера
dir.example.com:
Director {
  Name = example-director
  DIRport = 9101
  address = localhost
  Password = "console-password"
}


Запускаем Bacula Console и оказываемся в командном интерпретаторе, где команда help выдаст список и краткое описание всех возможных команд. Нас интересует команда принудительного запуска задания – run. После того как вы дадите эту команду, Bacula, основываясь на том, что в конфигурации определена всего одна секция Job, автоматически предложит выполнить именно это задание. Подтвердите выполнение и запустите процедуру резервирования файлов компьютера.
После запуска вам будет периодически выдаваться предупреждение о том, что появились новые сообщения. Для их просмотра используйте команду messages. Отследить статус запущенного задания вы можете командой:
status client example-client

Если в поле Status для вашего задания стоит значение OK, то радуйтесь: вы только что создали свою первую резервную копию с помощью Bacula.
  • 0
  • 01 декабря 2011, 17:24
  • admin

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Яндекс.Метрика