Как сделать резервную копию сервера CentOS 7 с помощью Bacula

Вступление

Из этого туториала Вы узнаете, как настроить Bacula для создания резервных копий удаленного хоста CentOS 7 через сетевое соединение. Это включает в себя установку и настройку программного обеспечения Bacula Client на удаленном хосте и внесение некоторых дополнений в конфигурацию существующего сервера Bacula (описано в предварительных условиях).

Если вы пытаетесь создать резервные копии хостов Ubuntu 14.04, перейдите по этой ссылке: https://www.digitalocean.com/community/tutorials/how-to-back-up-an-ubuntu-14-04-server-with Как создать резервную копию сервера Ubuntu 14.04 с помощью Bacula.

Предпосылки

В этом руководстве предполагается, что у вас есть сервер, на котором запущены компоненты сервера Bacula, как описано в этой ссылке: https://www.digitalocean.com/community/tutorials/how-to-install-bacula-server-on-centos-7 [ Как установить сервер Bacula на CentOS 7].

Мы также предполагаем, что вы используете частные сетевые интерфейсы для резервного копирования данных между сервером и клиентом. Мы будем ссылаться на частное полное доменное имя серверов (полные доменные имена, которые указывают на частные IP-адреса). Если вы используете IP-адреса, просто подставьте информацию о соединении, где это необходимо.

В оставшейся части этого руководства мы будем называть сервер Bacula «BaculaServer», «сервер Bacula» или «сервер резервного копирования». Мы будем называть удаленный хост, для которого выполняется резервное копирование, «ClientHost», «Client Host» или «Client».

Давайте начнем с внесения некоторых быстрых изменений в конфигурацию сервера Bacula.

Организация конфигурации Bacula Director (сервер)

На вашем * Bacula Server * выполните этот раздел один раз.

При настройке сервера Bacula вы, возможно, заметили, что файлы конфигурации слишком длинные. Мы попытаемся немного организовать конфигурацию Bacula Director, чтобы он использовал отдельные файлы для добавления новой конфигурации, например задания, наборы файлов и пулы.

Давайте создадим каталог, который поможет организовать файлы конфигурации Bacula:

sudo mkdir /etc/bacula/conf.d

Затем откройте файл конфигурации Bacula Director:

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

В конце файла добавьте эту строку:

bacula-dir.conf - Добавить в конец файла

@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;"

Сохранить и выйти. Эта строка заставляет Директора искать в каталоге + / etc / bacula / conf.d + дополнительные файлы конфигурации для добавления. То есть любой добавленный туда файл + .conf + будет загружен как часть конфигурации.

Добавить RemoteFile Pool

Мы хотим добавить дополнительный пул к нашей конфигурации Bacula Director, который мы будем использовать для настройки наших удаленных заданий резервного копирования.

Откройте файл + conf.d / pools.conf +:

sudo vi /etc/bacula/conf.d/pools.conf

Добавьте следующий ресурс Pool:

conf.d / pools.conf - Добавить ресурс пула

Pool {
 Name = RemoteFile
 Pool Type = Backup
 Label Format = Remote-
 Recycle = yes                       # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 365 days         # one year
   Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
 Maximum Volumes = 100               # Limit number of Volumes in Pool
}

Сохранить и выйти. Это определяет пул «RemoteFile», который мы будем использовать в задании резервного копирования, которое мы создадим позже. Не стесняйтесь изменять любые параметры в соответствии со своими потребностями.

Нам пока не нужно перезапускать Bacula Director, но давайте проверим, что в его конфигурации нет ошибок:

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

Если ошибок нет, вы готовы перейти к настройке Bacula Client.

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

Выполните этот раздел на любом * клиентском хосте *, который вы добавляете в настройки Bacula.

Затем установите пакет + bacula-client +:

sudo yum install bacula-client

Это устанавливает Bacula File Daemon (FD), который часто называют «клиентом Bacula».

Настроить клиент

Перед настройкой клиентского File Daemon вам нужно найти следующую информацию, которая будет использоваться в оставшейся части этого урока:

  • * Имя хоста клиента: *: В нашем примере будет использоваться «ClientHost»

  • * Полное доменное имя клиента: * Мы будем называть его «client_private_FQDN», которое может выглядеть как «+ clienthost.private.example.com +».

  • * Bacula Server hostname: * В нашем примере будет использоваться «BackupServer»

Ваша фактическая настройка будет отличаться от примера, поэтому обязательно делайте замены там, где это необходимо.

Нам нужно будет установить пароль, который позволит Bacula Director подключаться, в конфигурации File Daemon. Давайте создадим случайный пароль сейчас (или вы можете пропустить этот шаг и создать свой собственный пароль):

date +%s | sha256sum | base64 | head -c 33 ; echo

Вы захотите скопировать вывод, так как вы будете использовать его на следующем шаге.

Откройте конфигурацию File Daemon:

sudo vi /etc/bacula/bacula-fd.conf

Нам нужно изменить несколько пунктов и сохранить некоторую информацию, которая нам понадобится для конфигурации нашего сервера.

Начните с поиска ресурса Director с именем «ClientHost-dir». Поскольку директор Bacula, которым мы хотим управлять этим клиентом, расположен на сервере Bacula, измените параметр «Name» на имя хоста вашего резервного сервера, а затем «-dir». Также замените существующий пароль тем, который вы сгенерировали на предыдущем шаге. Это должно выглядеть примерно так после обновления:

bacula-fd.conf - обновить имя и пароль директора

Director {
 Name = -dir
 Password = ""
}

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

Далее нам нужно настроить один параметр в ресурсе FileDaemon. Мы изменим параметр + FDAddress +, чтобы он соответствовал частному FQDN нашего клиентского компьютера. Параметр + Name + уже должен быть правильно заполнен именем демона файла клиента. Ресурс должен выглядеть примерно так (заменить фактическое полное доменное имя или IP-адрес):

bacula-fd.conf - обновить имя и добавить адрес FDA

FileDaemon {                          # this is me
 Name = -fd
 FDAddress =
 FDport = 9102                  # where we listen for the director
 WorkingDirectory = /var/spool/bacula
 Pid Directory = /var/run
 Maximum Concurrent Jobs = 20
}

Нам также нужно настроить этот демон для передачи его сообщений журнала на сервер резервного копирования. Найдите ресурс Messages и измените параметр + Director +, чтобы он соответствовал имени хоста вашего сервера резервного копирования с суффиксом «-dir». Это должно выглядеть примерно так:

bacula-fd.conf - директор по обновлению

Messages {
 Name = Standard
 director =  -dir = all, !skipped, !restored
}

Сохраните файл и выйдите. Ваш File Daemon (Bacula Client) теперь настроен на прослушивание соединений через частную сеть.

Убедитесь, что ваш файл конфигурации имеет правильный синтаксис с помощью следующей команды:

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

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

sudo systemctl restart bacula-fd

Затем выполните следующую команду, чтобы автоматически запустить Bacula File Daemon при загрузке:

sudo systemctl enable bacula-fd

Давайте создадим каталог, в который Bacula Server сможет восстановить файлы. Создайте структуру файлов и заблокируйте разрешения и владельца для безопасности с помощью следующих команд:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Клиентский компьютер теперь настроен правильно. Далее мы настроим сервер резервного копирования для возможности подключения к клиенту Bacula.

Добавить наборы файлов (сервер)

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

Если вы следовали обязательному руководству по настройке компонентов сервера Bacula, у вас уже есть набор файлов с именем «Полный набор». Если вы хотите запускать задания резервного копирования, которые включают почти каждый файл на ваших клиентах резервного копирования, вы можете использовать этот набор файлов в своих заданиях. Однако вы можете обнаружить, что вы часто не хотите или не должны иметь резервные копии всего на сервере, и что подмножества данных будет достаточно.

Более избирательный выбор файлов, включенных в набор файлов, уменьшит объем дискового пространства и время, необходимое вашему серверу резервного копирования для запуска задания резервного копирования. Это также может упростить восстановление, поскольку вам не нужно просеивать «Полный набор», чтобы найти, какие файлы вы хотите восстановить.

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

На вашем * сервере Bacula * откройте файл с именем + filesets.conf + в каталоге конфигурации Bacula Director, который мы создали ранее:

sudo vi /etc/bacula/conf.d/filesets.conf

Создайте ресурс FileSet для каждого конкретного набора файлов, который вы хотите использовать в заданиях резервного копирования. В этом примере мы создадим FileSet, который включает только каталоги home и т.д .:

filesets.conf - Добавить Home и т.д. FileSet

FileSet {
 Name = ""
 Include {
   Options {
     signature = MD5
     compression = GZIP
   }


 }
 Exclude {

 }
}

В этом файле происходит много всего, но следует помнить несколько деталей:

  • Имя набора файлов должно быть уникальным

  • Включите любые файлы или разделы, резервные копии которых вы хотите

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

Вы можете создать несколько наборов файлов, если хотите. Сохраните и выйдите, когда закончите.

Теперь мы готовы создать задание резервного копирования, которое будет использовать наш новый набор файлов.

Добавить клиента и задание резервного копирования на сервер Bacula

Теперь мы готовы добавить нашего клиента на сервер Bacula. Для этого мы должны настроить Bacula Director на новые ресурсы для клиентов и заданий.

Откройте файл + conf.d / clients.conf +:

sudo vi /etc/bacula/conf.d/clients.conf

Добавить клиентский ресурс

Ресурс клиента настраивает директора на информацию, необходимую для подключения к хосту клиента. Это включает имя, адрес и пароль Файлового Демона Клиента.

Вставьте это определение ресурса клиента в файл. Обязательно укажите имя клиента, частное полное доменное имя и пароль (из + bacula-fd.conf +) клиента, где выделено:

conf.d / clients.conf - добавить ресурс клиента

Client {
 Name = -fd
 Address =
 FDPort = 9102
 Catalog = MyCatalog
 Password = ""          # password for Remote FileDaemon
 File Retention = 30 days            # 30 days
 Job Retention = 6 months            # six months
 AutoPrune = yes                     # Prune expired Jobs/Files
}

Вам нужно сделать это только один раз для каждого Клиента.

Создать задание резервного копирования:

Задание резервного копирования, которое должно иметь уникальное имя, определяет детали того, какой клиент и какие данные должны быть зарезервированы.

Затем вставьте это задание резервного копирования в файл, заменив выделенный текст на имя хоста клиента:

conf.d / clients.conf - Добавить ресурс задания резервного копирования

Job {
 Name = "Backup"
 JobDefs = "DefaultJob"
 Client = -fd
 Pool = RemoteFile
 FileSet="Home and Etc"
}

Это создает задание резервного копирования с именем «BackupClientHost», которое будет выполнять резервное копирование домашних и других каталогов клиентского хоста, как определено в FileSet «Home and Etc». Он будет использовать настройки, указанные в ресурсах «DefaultJob» JobDefs и «RemoteFile», которые определены в основном файле + bacula-dir.conf +. По умолчанию задания, в которых указано + JobDefs =" DefaultJob "+, будут выполняться еженедельно.

Сохраните и выйдите, когда закончите.

Проверить конфигурацию директора

Давайте проверим, что в вашем файле конфигурации Director нет синтаксических ошибок:

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

Если вы вернетесь к приглашению оболочки, в файлах конфигурации вашего Bacula Director нет синтаксических ошибок.

Перезагрузите Bacula Director

Чтобы изменения, внесенные вами, вступили в силу, перезапустите Bacula Director:

sudo systemctl restart bacula-dir

Теперь ваш клиент или удаленный хост настроен на резервное копирование сервером Bacula.

Тестовое соединение с клиентом

Мы должны убедиться, что директор Bacula может подключиться к клиенту Bacula.

На сервере Bacula введите консоль Bacula:

sudo bconsole
status client
Select Client resource: ClientHost-fdThe defined Client resources are:
    1: BackupServer-fd
    2: ClientHost-fd
Select Client (File daemon) resource (1-2):

Статус Файлового Демона Клиента должен немедленно вернуться. Если это не так и возникает ошибка соединения, значит, что-то не так с конфигурацией сервера Bacula или файлового демона клиента.

Тестовое задание резервного копирования

Давайте запустим задание резервного копирования, чтобы убедиться, что оно работает.

На сервере * Bacula *, все еще находясь в консоли, используйте эту команду:

run

Вам будет предложено выбрать, какое задание запустить. Выберите тот, который мы создали ранее, например, “4. BackupClientHost»:

Select Job resource: BackupClientHostThe defined Job resources are:
    1: BackupLocalFiles
    2: BackupCatalog
    3: RestoreLocalFiles
    4: BackupClientHost
Select Job resource (1-4):

При появлении запроса на подтверждение введите «да»:

Confirmation prompt:
OK to run? (yes/mod/no):

Проверьте сообщения и статус

После выполнения задания Bacula сообщит вам, что у вас есть сообщения. Сообщения выводятся в результате выполнения заданий.

Проверьте сообщения, набрав:

messages

В сообщениях должно быть указано: «Предварительная запись полной резервной копии не найдена» и задание резервного копирования запущено. Если есть какие-либо ошибки, что-то не так, и они должны дать вам подсказку, почему задание не запустилось.

Еще один способ увидеть статус работы - это проверить статус директора. Для этого введите эту команду в командной строке bconsole:

status director

Если все работает правильно, вы должны увидеть, что ваша работа выполняется или завершена со статусом «ОК».

Выполнить восстановление

При первой установке нового клиента Bacula вы должны проверить, что восстановление работает правильно.

Если вы хотите выполнить восстановление, используйте команду + restore + на консоли Bacula:

restore all

Появится меню выбора с множеством различных параметров, которые используются для определения того, из какого набора резервных копий необходимо восстановить. Поскольку у нас есть только одна резервная копия, давайте выберем вариант «Выбрать самую последнюю резервную копию» 5:

Select item (1-13):5

Затем вы должны указать, какой клиент восстанавливать. Мы хотим восстановить удаленный хост, который мы только что настроили, например, «CLIENTHOST-ФД»:

Select the Client: ClientHost-fdDefined Clients:
    1: BackupServer-fd
    2: ClientHost-fd
Select the Client (1-2):

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

Поскольку мы указали, что хотим «восстановить все», каждый резервный файл уже помечен для восстановления. Отмеченные файлы обозначаются начальным символом + * +.

Если вы хотите отрегулировать свой выбор, вы можете перемещаться и перечислять файлы с помощью команд «ls» и «cd», помечать файлы для восстановления как «mark», а снимать пометки с «unmark». Полный список команд можно получить, набрав «help» в консоли.

Когда вы закончите делать выбор восстановления, наберите:

done

Подтвердите, что вы хотите запустить задание восстановления:

OK to run? (yes/mod/no):yes

Проверьте сообщения и статус

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

Проверьте сообщения, набрав:

messages

Должно появиться сообщение о том, что задание восстановления запущено или было завершено со статусом «Восстановить ОК». Если есть какие-либо ошибки, что-то не так, и они должны дать вам подсказку, почему задание не запустилось.

Опять же, проверка статуса Директора - отличный способ увидеть состояние задания восстановления:

status director

Когда вы закончите восстановление, введите + exit +, чтобы покинуть консоль Bacula:

exit

Если все работает правильно, ваши восстановленные файлы будут на вашем клиентском хосте, в каталоге + / bacula / restore +. Если вы просто тестировали процесс восстановления, вам следует удалить содержимое этого каталога.

Заключение

Теперь у вас есть сервер Bacula, который выполняет резервное копирование файлов с удаленного клиента Bacula. Обязательно проверяйте и пересматривайте свою конфигурацию, пока не убедитесь, что вы создаете резервные копии правильных наборов файлов в соответствии с вашими потребностями. Если вы пытаетесь создать резервные копии хостов Ubuntu 14.04, перейдите по этой ссылке: https://www.digitalocean.com/community/tutorials/how-to-back-up-an-ubuntu-14-04-server-with- Как создать резервную копию сервера Ubuntu 14.04 с помощью Bacula.

Следующее, что вы должны сделать, это повторить соответствующие разделы этого руководства для любых дополнительных серверов CentOS 7, для которых вы хотите выполнить резервное копирование.

Related