Резервное копирование Xen с помощью Bacula Enterprise. Бэкап XenServer

Надежное и быстрое решение для резервного копирования и восстановления XenServer от Citrix.

Введение в резервное копирование XenServer

ПО Bacula нативно запускается на платформе гипервизора Xen. В данном документе показаны способы конфигурирования Bacula Enterprise Edition для создания бэкапов виртуальных машин XenServer.

Гипервизор Xen позволяет использовать интерфейс командной строки. Различные дополнительные возможности программы позволяют пользователю управлять виртуальными машинами, запущенными в среде Xen. Интерфейс командной строки, среди прочего, позволяет создавать, удалять, клонировать, запускать, останавливать и создавать снапшоты виртуальных машин.

Используя возможности командной строки Xen, пользователи могут создавать задачи Bacula Job с помощью ресурса «RunScript», а также простые скрипты оболочки, которые запускаются до выполнения задачи по созданию бэкапов. Скрипт создает снапшоты ВМ Xen, а затем экспортирует их в файлы *.xva, из которых потом будет создана резервная копия ВМ с помощью Bacula Enterprise Edition.

Установка Bacula File Daemon (FD)

Citrix XenServer 7.0 основан на CentOS 7. Для установки системы с помощью yum вам необходимо будет создать файл репозиториев в /etc/yum.repos.d/

где:

  • @@customer@@ относится к строке индивидуальной области. Вы найдете ее в приветственном пакете.
  • @@bee-version@@ должен быть заменен версией Bacula Enterprise Edition, приобретенной пользователем (8.x.y, 6.x.y)

Пользователь также должен присвоить значение 1 параметру CentOS-Base.repo в том же каталоге, чтобы при необходимости извлечь зависимости. Если пользователю необходимо установить пакет bacula-enterprise-client для выбранной версии @@bee-version@@, библиотеки будут установлены как зависимости. Сконфигурируйте файл /opt/bacula/etc/bacula-fd.conf таким образом, чтобы служба Bacula Director смогла получить к нему доступ и инициировать задачи.

Пример ресурса Job

Задача по созданию резервной копии, которая создаст бэкап Xen и экспортирует Xen VM, является стандартной задачей «Type=Backup» в Bacula. Для простоты мы извлекли несколько обязательных директив (таких как Pool, Level, Schedule и т.д.) из ресурса JobDefs под названием «Defaults»:

Обратите внимание на ресурс RunScript в определении задачи. Он подготовит хост XenServer к экспорту снапшотов ВМ во временный каталог (например, /tmp). Скрипт сконфигурирован для запуска до выполнения задачи по созданию бэкапа. Скрипт будет запущен на целевой системе (сервере Xen). Задача будет прервана в случае неуспешного выполнения скрипта, а результатом неудачного выполнения независимо от причины будет являться ненулевой код выхода.

В строке «Command=» будет указано, что пользователь сохранил скрипт в каталоге Bacula /opt/bacula/scripts/. Скрипт будет использовать список ВМ для создания бэкапа в качестве параметров командной строки, либо будет использован параметр «—all» для создания и экспорта снапшотов всех ВМ, найденных на Xenserver. Более подробное описание скрипта приведено в разделе 5.

Пример ресурса Fileset

Пример ресурса FileSet, который использовался в определении задачи, приведен ниже:

Пожалуйста, примите во внимание тот факт, что мы не задавали сжатие в блоке Options{}. В случае файлов образов VM данная опция является бесполезной.

Скрипт для дампа виртуальной машины

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

  • exportdir: Путь к каталогу, в который гипервизор должен экспортировать снапшоты ВМ. Путь к этому каталогу должен совпадать с путем, указанным в ресурсе FileSet «XenVMs» в Bacula Director.
  • keepdays: Количество дней, которое экспортированные ВМ будут храниться в ’exportdir’. Если задать значение, равное «0», скрипт не будет удалять экспортированные образы ВМ.

Строки, которые находятся ниже определения переменных, не требуют изменений.

Скрипт «считает» список виртуальных (аргументы командной строки заданные в  RunScript Command= line, из которой вызывается скрипт) и создаст снапшоты всех ВМ. Затем он экспортирует созданные снапшоты в файлы *.xva в каталоге exportdir и удалит (временные) снапшоты. После этого ПО Bacula создаст бэкапы экспортированных виртуальных машин.

Примите во внимание тот факт, что *.xva файлы могут занимать большой объем памяти, а вам, возможно, потребуется хранить эти файлы длительное время. Если переменной keepdays присвоить значение, отличное от «0» (используется по умолчанию), скрипт удалит экспортированные образы ВМ старше указанного времени.

Ниже приведен пример скрипта. Если вы хотите использовать данный скрипт, не копируйте его из данного документа. Скачайте его с сайта: http://www.baculasystems.com/ml/xenbackup.sh




Предупреждения и ограничения бэкапа XenServer

Скрипт дампа не применим к виртуальным машинам с пробелами в названиях. Файлы XVA занимают большой объем памяти на жестком диске. Пожалуйста, убедитесь том, что вам доступен необходимый объем памяти.