Резервное копирование виртуальных машин VMware ESXi с помощью vSphere. Бэкап виртуальных машин VMware.

1. Резервное копирование виртуальных машин VMware ESXi

Введение

В данном документе представлены различные способы и стратегии резервного копирования VMware ESXi с помощью vSphere и Bacula Enterprise Edition версий 8.0, 8.2 и 8.4. Плагин Bacula Enterprise Edition для резервного копирования виртуальных машин VMware с помощью vSphere дает возможность восстанавливать исходное состояние виртуальной машины, в то время как резервное копирование файлов на уровне гостевой ВМ упрощает защиту данных критически важных приложений. Резервное копирование VMware использует технологию под названием Changed Block Tracking (CBT), гарантируя в целях создания более эффективных резервных копий и уменьшения нагрузки на сеть отправку в текущий поток инкрементальной или дифференциальной резервной копии только тех блоков, которые были изменены после первоначального полного и/или последнего инкрементального и/или дифференциального резервного копирования.

Основные характеристики резервного копирования VMware

  • Онлайн резервное копирование через VADP
  • Создание VSS снапшотов внутри гостевых ОС для приостановки приложений
  • Полное, дифференциальное и инкрементальное резервное копирование ВМ на уровне образа
  • Восстановление полного образа ВМ
  • Восстановление vmdk файлов в альтернативный каталог
  • Доступ к хранилищу VMware, как по TCP/IP, так и через SAN (FC/ISCSI)

 

Обзор резервного копирования VMware

Текущая версия плагина для VMware vSphere поддерживает vSphere версий 6.0, 5.5, 5.1, 5.0, 4.1 (минимум 7 версия виртуального аппаратного обеспечения). В данном документе представлены решения для ПО Bacula Enterprise Edition 8.0 и последующих версий, которые не применимы к более ранним версиям ПО.

 

Глоссарий резервного копирования VMware

В данном документе используются следующие термины, связанные с тем, как сделать бэкап VMware:

  • CBT – технология отслеживания изменённых блоков.
  • Datastore – название используемое VMware для обозначения хранилищ данных.
  • vSphere — представляет собой технологию VMware для виртуализации ОС и выполнения облачных вычислений.
  • VDDK – это набор библиотек C/C++, который позволяет создавать и получать доступ к виртуальным дискам VMware. VDDK используется параллельно с vSphere API для написания ПО для создания резервных копий и восстановления, или схожих приложений.
  • При использовании сервера VMware ESXi файлы виртуальной машины помещаются во внешнюю память большого объёма.
  • NBD – сетевое блочное устройство. vSphere позволяет получать доступ к файлам, размещенным в Datastore с помощью технологии прямого доступа к файлам, доступа через NBD, NBD over SSL или SAN. В случае доступа к файлам через NBD в качестве сетевого протокола используется протокол TCP/IP.
  • SAN. vSphere позволяет получать доступ к файлам в хранилище данных с помощью технологии прямого доступа. SAN может использовать сеть Fibre Chanel (технология резервного копирования без загрузки локальной сети Lan free backup) или технологию ISCSI over TCP/IP.
  • VMware ESX и VMware ESXi – архитектура гипервизора, устанавливаемого на сервер без операционной системы. Меньшая по размеру кодовая база ESXi предполагает меньшую “поверхность для атаки” и меньший размер кода для патча, что позволяет повысить надежность и безопасность системы.
  • VCB – метод консолидированного резервного копирования VM Более ранний VMware API , который, как правило, больше не используется. Плагин VMware не использует технологию VCB.
  • VADP – следующее поколение инфраструктуры защиты данных VMware, реализованное в vSphere 4.0, позволяющее ПО для резервного копирования создавать централизованные, эффективные бэкапы VMware вне хост-машин и без загрузки локальной сети.
  • .vmdk — файловый формат, используемый для виртуальных устройств, разработанных для продуктов VMware.
  • .bvmdk – внутренний файловый формат, используемый плагином Bacula Enterprise для обработки разреженных блоков и дифференциальных/инкрементальных бинарных бэкапов VMware. После конвертации с помощью инструмента vddk файл превращается в «сырой» образ исходного диска, который можно конвертировать в формат vmdk с помощью утилиты qemu-img.
  • В ESX 3.x используется 4 версия виртуального аппаратного обеспечения, в vSphere 4.x – 7 версия, а в vSphere 5 – 8 версия.
  • Отпечаток может быть сгенерирован их ESXi хоста
    openssl x509 -sha1 -in /etc/vmware/ssl/rui.crt \-noout -fingerprint | cut -d ‘=’ -f 2
  • guestfish – оболочка и инструмент командной строки для просмотра и изменения файловой системы ВМ.
  • VM (или ВМ) аббревиатура термина «виртуальная машина».
  • vSphere – это платформа для виртуализации серверов с возможностью согласованного управления виртуальными датацентрами.
  • SELinux — Security-Enhanced Linux (SELinux, Linux с улучшенной безопасностью) — это модуль безопасности ядра Linux, который обеспечивает механизм поддержки политик безопасности контроля доступа, включая полномочное управление доступом (MAC).

1.1 Как сделать бэкап VMware в гостевой ОС

1.1.1 Установка клиента Bacula Client в каждой гостевой ОС

Первая стратегия не предполагает использования плагина Bacula Enterprise Edition для vSphere. Вместо этого на каждую ВМ устанавливается Bacula Enterprise File Daemon, как если бы эти ВМ были обычными физическими серверами. С целью оптимизации потоков ввода/вывода на серверах VMware ESX/ESXi используются задачи Schedule, Priority и Maximum Concurrent Jobs для распределения задач резервного копирования в окне резервного копирования. Поскольку все сервера используют один и тот же набор дисков, выполняя все задачи резервного копирования в одно и то же время, возможно образование узких мест в подсистеме диск/сеть.

резервное копирование vmware

Рисунок 1: Установка bacula-fd на каждую гостевую ВМ

 

Установка Bacula Enterprise File Daemon на каждую ВМ позволяет управлять виртуальными серверами, как если бы они были физическими серверами, а также использовать все функции ПО Bacula Enterprise, такие как:

  • Быстрое восстановление отдельных файлов
  • Вычисление контрольной суммы для отдельных файлов с целью обнаружения вирусов и программ-шпионов
  • Проверка задачи
  • Исключение файла/каталогов (например файлов подкачки и временных файлов)
  • Сжатие на уровне файлов и т.д.

1.1.2 Резервное копирование VMware с помощью плагина Bacula Enterprise Edition для vSphere

В случае стратегии создания бэкапа образа виртуальной машины VMware, плагин Bacula Enterprise Edition для vSphere сохраняет диски Клиента в качестве «сырых» образов в контексте VMware/vSphere. Для того чтобы реализовать данную стратегию не нужно устанавливать Bacula File daemon на каждой гостевой машине.

Плагин Bacula для vSphere свяжется с хостом VMware ESXi для считывания и сохранения содержимого дисков ВМ через NBD или SAN. При непосредственном доступе к образу vmdk, сохраненному в хранилище данных, ПО Bacula не придется прогонять через файловую систему Клиента для открытия/чтения/закрытия файлов. Соответственно ПО будет потреблять меньше ресурсов ESXi инфраструктуры, чем если бы создание бэкапа VMware происходило на каждой гостевой машине. В то же время ПО Bacula также прочитает и сохранит бесполезные данные, например, файлы подкачки и временные интернет-файлы.

резервное копирование vmware vsphere

Рисунок 2: Создание резервной копии по TCP с помощью NBD

 

Если плагин vSphere для создания бэкапа использует метод транспортировки данных через NBD, данные передаются поточно на сервер для хранения резервных копий через порт VMkernel системы ESXi.

Плагин Bacula Enterprise для vSphere также может использовать инфраструктуру сети SAN в целях снижения нагрузки на сервера ESXi. Однако, несмотря на потребление меньшего объема ресурсов на сервере ESXi, данные по-прежнему должны будут считываться с ваших дисков, что может привести к конфликту при попытке одновременной передачи/приема данных.

При использовании блочных дифференциальных методов, таких, которые используются плагином vSphere, необходимо обеспечить доступность всех инкрементальных бэкапов для восстановления. Если в момент восстановления не будет хватать хотя бы одной задачи по созданию бэкапа, плагин Bacula не сможет воссоздать корректный образ. Использование дифференциальных бэкапов позволяет сократить число задач, необходимых для восстановления, тем самым, снижая риски возможных потерь данных. Чтобы не допустить потери важных задач по созданию инкрементальных бэкапов, периоды хранения Volume retention должны быть достаточно большими, чтобы восстановить все данные.

 

1.1.3 Сравнение стратегий резервного копирования VMware

 

Характеристики Внутри гостевой ОС vSphere VADP
Инкрементальный бэкап Да Да
Функция FileSet Да Нет
Бэкап на уровне блоков Нет Да
Поддержка функции Accurate Да Да
Скорость Медленно Быстро
Нагрузка на канал ввода/вывода Высокая Низкая
Резервное копирование без загрузки локальной сети Нет Да

 

Таблица 1. Сравнение стратегий создания резервных копий

Процедура восстановления отдельных файлов из бэкапа машин VMware, созданного с помощью плагина для vSphere, описана в разделе 2 на странице 27.

1.2 Установка

Документация с детальным описанием процесса установки доступна по запросу.

1.2.1 Конфигурирование

Параметр Plugin Directory утилиты File Daemon, хранящийся в /opt/bacula/etc/bacula-fd.conf, должен указывать на то, где установлен плагин vsphere-fd.so. Как правило, по умолчанию плагин Bacula устанавливается в каталог: /opt/bacula/plugins

Утилита File daemon должна иметь прямой доступ к сети vSphere или доступ через SAN. Проверить подключение можно с помощью программы telnet.
Сетевой доступ vSphere к ESX или серверу vCenter необходимо сконфигурировать в /opt/bacula/etc/vsphere_global.conf.

резервное копирование vmware esxi

Рисунок 3. Создание резервной копии через сеть SAN

 

Параметр Обязательный Значение по умолчанию Описание
Раздел общих настроек global      
keep_generation Нет 100 Макс. кол-во бэкапов между двумя полными бэкапами.
profile_all_vm Нет vsphere_all_vm.profile Название внутреннего файла, используемого для хранения информации о профиле ВМ.
root_directory Нет /opt/bacula/working/vsphere Корневой каталог плагина vSphere.
vddk_path Нет /opt/bacula/bin/vddk  
Раздел настроек vsphere      
username Да   Имя пользователя, которому разрешено подключаться к vSphere.
password Да   Пароль для имени пользователя, которому разрешено подключаться к vSphere.
hpassword Нет   Скрытый пароль для имени пользователя, которому разрешено подключаться к vSphere.
timeout Нет 60 Время ожидания подключения[1] к серверу vSphere в секундах.
thumbprint Да[2]   Отпечаток SSL сертификата vSphere сервера.
server Да   Сервер vSphere ESXi, используемый для создания бэкапа.
url Да   Адрес сервера vSphere ESXi или vCenter используемый в целях осуществления вызова с помощью SOAP.
Default_datastore Нет datastore1 Хранилище данных для восстановления, используемое по умолчанию.
default_restore_host Нет   ESX сервер, используемый по умолчанию для восстановление, если в vCenter доступно несколько серверов.
default_ovf Нет   Описание OVF по умолчанию, используемое в случае, если текущее описание OVF не может быть загружено в VMWare[3].
root_directory Нет /opt/bacula/working/vsphere Каталог, используемый для хранение внутренних данных плагина.
datastore_minimum_space Нет   Минимальный размер для хранения данных в хранилище данных. Например, 5ГБ.
datastore_allow_overprovisioning Нет Да Позволяет восстанавливать ВМ с помощью функции Over Provisioning. Если параметру присвоено значение «Нет», при восстановлении необходимо гарантировать, что размер всех дисков соответствует размеру хранилища Datastore.
datastore_refresh_interval Нет 600 Интервал, используемый для обновления статистики хранения данных в Datastore.

Таблица 2. Конфигурирование подключения vSphere с помощью файла vsphere_global.conf

 

Отпечаток можно получить с помощью экрана консоли, нажав F2, а затем авторизовавшись. Отпечаток Thumbprint отобразится в окне View Support Information под SSL Thumbprint (SHA1). Или же вы можете подключиться по ssh:

Использование нескольких серверов vSphere

Вы можете указать несколько серверов vsphere в файле vsphere_global.conf. При использовании данной функции вам необходимо задать параметр server=xxx в командной строке плагина. Также обязательно указать альтернативный каталог на случай, если ваша ВМ будет иметь то же самое значение MoRef.

Примите во внимание тот факт, что дефолтный раздел [vsphere] является обязательным в файле vsphere_global.conf.

 

Параметр Обязательный Значение по умолчанию Описание Пример
host Нет   Имя гостевой ВМ host=srv1
host_include Нет   Образ гостевой ВМ, который необходимо включить host_include=srv3
host_exclude Нет   Образ гостевой ВМ, который необходимо исключить host_exclude=srv[12]
disk_exclude Нет   Список дисков, которые необходимо исключить[4] disk_exclude=0,2,4
keep_cbt Нет   Не пытайтесь активировать CBT keep_cbt
quiesce_host Да   Остановить гостевую ВМ перед тем, как сделать снапшот (попытаться, да, нет) quiesce_host=no
server Нет   Указать сервер vsphere server=vsrv2
Debug Нет   Разрешить отладку debug
abort_on_error Нет   Прекратить выполнение задачи после обнаружения ошибки[5]  
update_timeout Нет   Изменить первоначальное время ожидания обновления  
           

 

Таблица 3. Параметры команд плагина vSphere

 

Примите во внимание тот факт, что команды host_include и host_exclude являются регулярным выражением Java.

Скрыть пароль vSphere

Начиная с версии плагина 8.0.3 вы можете скрывать пароль vSphere в файле vsphere_global.conf. Поле скрытого пароля называется hpassword. Для генерации скрытого пароля можно использовать команду @encode. Примите во внимание тот факт, что, если строка, которую вы хотите зашифровать, содержит выражение “=”, при прописывании команды вы должны использовать формат string= ключевое слово.

Тестирование конфигурации vSphere

Чтобы протестировать работу плагина для vSphere, можно использовать следующую команду (в качестве root-пользователя):

При использовании команды обновления vsphere-ctl должен появиться список всех ВМ, которые заданы на сервере ESXi. Если этого не произошло, пожалуйста, проверьте правильность настройки своих учетных данных в файле vsphere_global.conf.

Команда list позволяет отображать информацию, обнаруженную на ESX-хостах и в хранилищах данных.

Пример использования функции Job

При запуске задач по созданию инкрементального/дифференциального бэкапа необходимо обязательно задавать параметр Accurate.

Примеры использования функции FileSet

В данном разделе представлены различные варианты использования функции FileSet.
Примите во внимание тот факт, что плагин для vsphere не совместим с функцией FileSet, применяемой в отношении разреженных файлов.

Рисунок 4. Бэкап виртуальной машины VMware guest1 на ESXi сервере

 

Тестирование функции FileSet

Вы можете использовать команду estimate для тестирования функции FileSet.

Реализация инкрементального резервного копирования VMware на уровне блоков

Примите во внимание тот факт, что утилита CBT не поддерживается 6-ой и более ранними версиями виртуального аппаратного обеспечения, или когда виртуальный диск подключен к совместно используемой виртуальной шине SCSI.

Чтобы CBT могла определить изменённые сектора диска с момента последнего изменения ID, потребуется соблюсти следующие условия:

  • Версия хоста ESX/ESXi 4.0 и выше.
  • 7 версия (и выше) аппаратного обеспечения ВМ, которой принадлежат диски, изменения которых должны отслеживаться.
  • Операции ввода/вывода данных должны осуществляться через блок элементов памяти ESX/ESXi. NFS поддерживается, как RDM-диски в режиме виртуальной совместимости, но не RDM-диски в режиме физической совместимости. Также используется файловая система VMFS при поддержке SAN, iSCSI, или локального диска.
  • Для ВМ необходимо активировать утилиту CBT (смотрите описание ниже).
  • Хранилище ВМ не должно (постоянно или непостоянно) быть представлено независимым диском, то есть таким, которые не будет затронуты снапшотами.

Чтобы утилита CBT смогла определить сектора диска с помощью полного бэкапа, потребуется соблюсти следующие условия:

  • Виртуальный диск должен быть расположен на VMFS-томе при поддержке SAN, iSCSI, или локального диска.
  • ВМ должна иметь нулевое количество снапшотов (0) при активации CBT для реализации т.н. чистого запуска.

При использовании дисков типа “Thick Provisioned Eager Zeroed”, утилита VMWare CBT отобразит все блоки как использованные во время создания полного бэкапа. В случае ВМ, которые не поддерживают CBT, плагин для vSphere всегда будет выполнять полное резервное копирование виртуальных дисков. Чтобы проверить, была ли активирована утилита CBT для виртуального диска, откройте клиент vSphere, выберите команду powered-off virtual machine without snapshots (отключить ВМ без создания снапшотов).

  • Правой кнопкой мыши кликните по ВМ и выберите пункт редактирования настроек Edit Settings.
  • Перейдите на вкладку Options.
  • Кликните по вкладке General под вкладкой Advanced, а затем по пункту Configuration Parameters. Откроется диалоговое окно конфигурации параметров.
  • Кликните по пункту Add Row.
  • Добавьте параметр ctkEnabled и присвойте ему значение true.
  • Кликните по Add Row, добавьте параметр scsi0:0.ctkEnabled и присвойте ему значение true.

Внимание: строка scsi0:0 в параметре scsi0:0.ctkEnabled указывает на SCSI устройство, назначенное для жесткого диска, добавленного к ВМ. Каждый жесткий диск, добавленный к ВМ, получает свое SCSI устройство, обозначаемое как scsi0:0, scsi0:1, или scsi1:1. 
Во время создания первого полного бэкапа VMware плагин для vSphere постарается автоматически активировать утилиту CBT при выключении ВМ. Чтобы отключить данную функцию введите команду keep_cbt в командной строке плагина.

На ВМ не должно существовать снапшотов в момент активации на ней утилиты CBT. Более подробная информация доступна по ссылке http://kb.vmware.com/kb/1033816.

Проблемы при использовании CBT

Если вы возвращаетесь к снапшоту, более раннему нежели последний инкрементальный бэкап, вы должны создать полный бэкап ВМ перед повторным использованием инкрементальных бэкапов. Данная проблема была решена в vSphere 4.1 и и третьем обновлении vSphere 4.0. Вместо возможного предоставления неполных данных, номер для идентификации изменений, полученный до возврата к прежнему снапшоту, теперь правильно рассматривается в качестве недействительного (http://kb.vmware.com/kb/1021607).

Сжатие размера бэкапа путем сброса CBT

Как только блок будет помечен как «использованный» утилитой VMWare CBT, система будет постоянно создавать бэкап данного конкретного блока при выполнении полного резервного копирования, даже если этот блок будет помечаться как «свободный» гостевой ОС. Через какое-то время может возникнуть ситуация, при которой будет создан большой по размеру полный бэкап VMware с малым размером используемого дискового пространства.

Путем повторного создания диска с помощью VMotion можно сбросить таблицу CBT, чтобы пометить только реально использованные блоки. Чтобы выполнить данную операцию, необходимо сначала очистить диск гостевой ВМ путем записи «нулевых» блоков для покрытия всего свободного пространства. Примите во внимание тот факт, что операция будет задействовать ресурсы, поэтому ее необходимо выполнять вне рабочих часов.

В ОС Windows процедуру можно выполнить с помощью утилиты Microsoft sdelete, доступной по адресу http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx

В ОС Linux можно использовать встроенное средство dd. Примите во внимание тот факт, что вы можете ограничить dd, чтобы не заполнить полностью весь диск.

По завершении операции необходимо остановить гостевую ВМ. Это можно сделать через интерфейс оболочки ESXi следующим образом:

Информацию о расположении диска и конфигурационного файла можно найти следующим образом:

После этого нулевые блоки VMDK файлов должны быть очищены через интерфейс оболочки ESXi следующим образом:

По завершении операции необходимо деактивировать CBT для гостевых дисков, которые вы хотите сжать. Вы также можете отредактировать их через консоль управления vSphere или ВИ.

Затем необходимо включить/отключить гостевую ВМ, чтобы применить изменения в отношении утилиты CBT. Вы можете подождать до тех пор, пока не будет полностью запущен хост.

Теперь вы не должны видеть файлов типа “*-ctk.vmdk” и можете снова включить CBT в файле конфигурации хоста и запустить вашу гостевую ВМ.

Файлы типа “*ctk.vmdk” будут созданы заново. Команда estimate плагина bacula должна отобразить файлы bvmdk меньшего размера.

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

Определение недоступности CBT

Если утилита CBT (отслеживание изменённых блоков) не доступна для диска, файл vsphere-ctl*log может содержать следующую ошибку:

При возникновении данной ошибки, плагин для vSphere будет автоматически создавать полный бэкап образа диска. Чтобы активировать CBT для конкретного диска, смотрите раздел 1.2.1 на странице 14.

Активация доступа через SAN

У вас могут возникнуть сложности с настройкой доступа к сети SAN на хосте. Библиотека VixDiskLib VMWare скомпилирована для версии Redhat 5 64bit. На более поздних ОС, таких как Ubuntu или Redhat 6, необходимо скомпилировать и установить библиотеку 1.95.7. Примите во внимание тот факт, что плагин Bacula Enterprise для vSphere содержит эту библиотеку в пакете bacula-enterprise-vixdisk.

Чтобы использовать технологию перемещения данных по сети SAN, сервер резервного копирования, на котором установлен плагин для vsphere, должен иметь доступ ко всем LUN-блокам, экспортированным на сервер ESX. Такие пакеты, как multipathd, не будут иметь проблем с устройствами с различными подключениями.
Если ваши диски видны как /dev/sda, /dev/sdb, … плагин vSphere откроет каждый диск, чтобы получить универсальный идентификатор UUID и сравнить его с тем, который предоставляет сервер ESX. Например, при использовании iSCSI команда lsscsi отобразит диски следующим образом:

Вы можете убедиться в том, что используется метод передачи данных через SAN, воспользовавшись функцией отладки debug в командной строке плагина и убедиться в том, что файл vddk trace содержится в следующем месте:

Если режим передачи данных через сеть SAN не доступен, плагин для vSphere автоматически переключится к режиму передачи данных через nbd.

Удаление старых снапшотов

В случае, если система VMware содержит снапшоты, которые не были автоматически удалены плагином для vSphere, с помощью плагина vSphere Plugin версии 6.6.3 и выше можно почистить систему, используя следующие команды.

  • Удаление старых снапшотов и предыдущих неудачно сгенерированных снапшотов

vsphere-ctl clean-snapshot —snapshot myhost

  • Удаление старых снапшотов с именем, начинающимся со строки

vsphere-ctl clean-snapshot —snapshot-base pluginTest myhost

  • Удаление всех снапшотов со всеми производными ;возможно быстрее)

vsphere-ctl clean-snapshot —snapshot —snapshot-delete-child myhost

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

Трассировка отладки

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

Файл Компонент Примечание
/opt/bacula/*/ vsphere-ctl-*.log vsphere-ctl Файл создается программой Java vsphere- ctl, которая посылает команды ESXi/vCenter серверу.

/opt/bacula/working/vsphere/*/*/*.log

 

vddk Файл создается программой C++ vddk которая считывает/записывает информацию в VMDK
/opt/bacula/working/*.trace bacula-fd Файл создается программой Bacula File Daemon при активации отладки

Таблица 4. Способы трассировки, используемые плагином для vSphere

Чтобы извлечь файл bvmdk не конвертируя его с помощью vddk во время выполнения процедуры восстановления, вам необходимо задать уровень отладки FileDaemon = 1000. Во время восстановления Bacula может генерировать неверные отчеты о размере файла.

Рабочие файлы

Плагин для vSphere создает специальные файлы в рабочем каталоге. Эти файлы необходимы для работы утилиты CBT VMWare. Чтобы очистить рабочий каталог плагина для vSphere, вы можете воспользоваться командой vsphere-ctl:

В результате будут удалены 30-дневные файлы и каталоги. Данный период должен соответствовать как минимум периоду созданию полного бэкапа плюс несколько дней для безопасности. Во время создания бэкапа, если плагин не сможет найти рабочие файлы, во время создания последнего бэкапа, плагин vSphere создаст полный бэкап всех дисков.

Исключение диска

Чтобы исключить конкретный диск из процедуры можно через консоль vSphere активировать независимый режим, или использовать функцию disk_exclude (смотрите таблицу 1.2.1 на странице 11).
Чтобы найти diskid для того, чтобы использовать его в функции disk_exclude, можно воспользоваться командой estimate listing. 0.bvmdk – это образ diskid 0.

1.3 Процедуры резервного копирования и восстановления VMware vSphere

1.3.1 Резервное копирование

Рисунок 5. Исключение диска из бэкапа

 

1.3.2 Восстановление

ПО Bacula Enterprise позволяет восстанавливать любой файл (bvmdk, ovf, …) на локальных дисках. После этого вы можете локально смонтировать образ с помощью инструмента VMWare vmware-mount tool или qemu-nbd и выполнить восстановление на уровне файлов. При использовании параметра where=/path/to/dir в функции восстановления, плагин автоматически восстановит выбранные файлы в указанное место.

Также возможно скопировать «сырой» образ на любое устройство или смонтировать его и восстановить файлы напрямую.

Восстановление на новой гостевой ВМ

Если вы запускаете процедуру восстановления вашей ВМ с помощью параметра where=/, и выбираете все файлы в каталоге vm, плагин для vSphere постарается восстановить ваши диски на новой ВМ, созданной во время восстановления с имеющимися атрибутами (диски, контроллер, тип CPU, …).

В настоящее время режим расширенной передачи данных через сеть SAN не поддерживается для выполнения восстановления. Плагин для vSphere использует передачу данных через NBD.

ESX хост и хранилище данных, которые будут использоваться для восстановления гостевой ВМ, будут определены автоматически. Однако вы можете изменить местоназначение, выбранное по умолчанию, изменив параметры восстановления плагина через меню bconsole:

Либо вы можете воспользоваться интерфейсом BWeb (смотрите рисунок 6)

Рисунок 6: Выбор хранилища данных datastore, сервера ESXi или имя хоста в момент восстановления

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

Начиная с версии Bacula Enterprise 6.2.4, плагин для vSphere поддерживает создание автоматической топологии сети. Таким образом, если ваш ESX хост не предоставляет правильной конфигурации vSwitch для ВМ, плагин Bacula должен будет повторно создать все настройки сети во время восстановления.

Начиная с версии Bacula Enterprise 8.2.1, плагин для vSphere может проверять наличие доступного объема памяти в хранилище Datastore во время восстановления. Пользователь может запретить увеличение резервной области и зарезервировать минимальный объем памяти в хранилище. Эти два параметра можно настроить в файле vsphere_global.conf и можно перезаписать из меню восстановления.

[vsphere]

password = xxxx

server = 192.168.0.68

url = https://192.168.0.68/sdk

username = root

datastore_minimum_space = 64MB

datastore_refresh_interval = 10

datastore_allow_overprovisioning = false

“Нераспределенный” объем памяти, возвращенный сервером vSphere не всегда является точным. Частоту обновления можно изменить используя метод, описанный в руководстве по ссылке http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2008367

Иногда ПЩ Bacula не удается загрузить OVF файл с описанием гостевой ВМ на сервер vSphere или vCenter. В частности, это обусловлено определенными ограничениями VMware, такими как “вы не можете использовать OVF, содержащий ссылки на смонтированный CDROM”… Плагин для vSphere использует обходные пути для решения подобных проблем, но он не решает все проблемы. Если у вас возникают подобные сложности, вы можете использовать параметр default_ovf в файле vsphere_global.conf[6]. Как правило, необходимо сконфигурировать параметр default_ovf таким образом, чтобы он ссылался на существующий простой шаблон OVF. В процессе восстановления этот шаблон будет использован автоматически, и вам нужно будет сконфигурировать ВМ позже, указав такие значения, как номер CPU, объем RAM, и т.д.

В ОС Windows в некоторых случаях после фактического завершения процесса восстановления, возможно, потребуется выполнить дополнительные задачи. Например, если восстановленная система не будет грузиться, возможно, потребуется воспользоваться средствами восстановления Windows для отладки системы. Для серверов с установленной службой Active Directory, возможно, потребуется изучить руководства Microsoft для того, чтобы добиться согласованного состояния баз данных AD и синхронизировать с другими серверами AD. Если инсталляция затрагивает динамические диски, вы должны импортировать из в только что восстановленную систему после перезагрузки. Вы можете осуществить импорт с помощью диспетчера дисков или с помощью функции “diskpart”, выбрав один из динамических дисков и введя команду «import».

Восстановление без плагина для vSphere

Если вы пытаетесь восстановить диски в File Daemon, в котором не установлен плагин Bacula Enterprise для vSphere, вам придется конвертировать файлы bvmdk в raw файлы с помощью команды vddk из командной строки:

Формат bvmdk используется плагином для vSphere Plugin, чтобы гарантировать целостность данных и эффективность обработки разреженной информации утилитой CBT.

1.4 Приостановка гостевой ВМ

Чтобы правильно приостановить работу гостевой ВМ, необходимо установить и обновить на ВМ Linux/Windows Virtual Machine инструменты VMware Tools.

Команда плагина quiesce_host=Try/yes/no позволяет контролировать процедуру остановки гостевых ВМ с помощью vSphere перед захватом снапшота. По умолчанию используется значение try. В данном режиме плагин попытается остановить гостевую ВМ при создании снапшота, и, если создание снапшота закончится неудачно, плагин попытается повторно создать снапшот, не останавливая гостевую ВМ. Первая попытка будет занесена в журнал задач в качестве ошибки.

Более подробную информацию о конкретном сообщении об ошибке вы найдете в журнале консоли vSphere.

Warning message from ESXi: the guest OS has reported an error during quescing. Error code was: 2 the error message was: custom quiesce script failed. (Сообщение об ошибке от ESXi: гостевая ОС сообщила об ошибке в момент остановки. Код ошибки 2: ошибка скрипта остановки)

Или

An error occurred while saving the snapshot: Failed to quiesce the virtual Machine (Во время сохранения снапшота возникла ошибка: Невозможно остановить ВМ)

1.4.1 Linux

Путем создания специального скрипта в /usr/sbin/pre-freeze-script, вы сможете остановить свою систему автоматически при создании снапшота с помощью vSphere. vSphere будет пытаться исполнить скрипт /usr/sbin/post-thaw-script в случае, если он будет присутствовать в гостевой ОС.

1.4.2 Windows VSS

Плагин усиливает защиту Windows , создавая перед резервным копированием снапшоты на базе VSS для остановки приложений, активируемых VSS.

Скрипты pre-freeze и post-thaw для VSS. Начиная с версий ESX/ESXi 3.5 U2 и выше, программа VMware Tools сначала ищет скрипты по алфавиту в C:/Program Files/VMware/VMware Tools/backupScripts.d, вызывая их с аргументом freeze, а после в обратном алфавитном порядке вызывает с аргументом thaw (или freezeFail в случае неудачной остановки).

1.5 Поддерживаемые платформы

Плагин для VSphere поддерживает следующие продукты на VMware платформе:

  • ESX/ESXi версий: 6.0, 5.5, 5.1, 5.0, 4.1

В настоящее время мы тестируем корректную работу плагина для VSphere со следующими продуктами VMware платформе:

  • vCenter Server версий 6.0, 5.5, 5.1, 5.0, 4.1 управляющие ESX/ESXi 4.1 и более поздними версиями
  • VirtualCenter версий 2.5, управляющий ESX/ESXi 4.1

Для осуществления манипуляций с файлами и снапшотами плагин для VSphere использует vStorage API. Это расширение требует наличия валидной несвободной лицензии VMWare.

  • Плагин VSphere был протестирован (и поддерживается) следующими платформами на базе Linux: RHEL 6, 7 (Red Hat Enterprise Linux) 64bit
SLES 11 (SUSE Linux Enterprise Server) 64bit

1.6 Ограничения

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

2 Обзор процедуры восстановления единичного файла VMware

В данном разделе представлена информация о том, как использовать функцию восстановления одного файла VMware с помощью Bacula Enterprise Edition и плагина для vSphere.

Краткое описание функций

Инструмент восстановления одного файла Bacula Enterprise Edition позволяет использовать следующие функции:

  • Консольный интерфейс
  • Интерфейс Bweb Management Suite
  • Поддержка создания полного/дифференциального/инкрементального бэкапов
  • Поддержка Windows 2003 по 2012
  • Поддержка Linux (ext3, ext4, btrfs, lvm, xfs)
  • Поддержка ESX 5.x и 6

2.1 Установка

Документация, подробно описывающая процедуру установки, доступна по запросу.

2.2 Скрипты восстановления

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

2.2.1 Через интерфейс текстовой консоли

Плагин для восстановления одного файла (VMware single file restore) позволяет использовать простую программную консоль, обеспечивающую доступ к файлам внутри ВМ. Процесс восстановления одного файла начинается с монтажа бэкапов ВМ:

Сначала правильно выберите клиент

Затем, выберите задачу, которую хотите восстановить.

Затем выберите нужную ВМ.

Теперь выберите местоположение гостевой файловой системы (локально или через SMB)

На данном этапе, файловая система ВМ монтируется локально (в примере выше файлы доступны по адресу /opt/bacula/working/vmware/5. Как в случае со стандартной файловой системой, можно найти каталоги и скопировать файлы (через cp, scp, ftp) из другого сеанса работы с терминалом, используя “root” Unix и аккаунты “bacula”. Если вам необходимо использовать другой аккаунт Unix для работы с файлами, используйте функцию “-o allow_other” при запуске скрипта mount-vmware.

Чтобы очистить сессию, просто нажмите “Enter” в сеансе работы с терминалом, в котором был запущен скрипт mount-vmware.

Начиная с Bacula Enterprise 8.4.8 можно ограничивать список задач Job list с помощью следующих командных строк:

  • -s=<days> ограничить список задач последними ХХХ днями
  • -l=<number> ограничить список задач последними введёнными числами
  • -f=<filter> указать расширенный фильтр исходя из имени задачи и/или имени FileSet

2.2.2 Восстановление VMware из интерфейса Bweb Management Suite

Функция восстановления одного файла VMware single file restore может быть реализована с помощью Bweb Management Suite. Данная утилита является мастером восстановления, позволяющим легко и просто восстанавливать файлы из гостевой ВМ. Для начала необходимо выбрать клиент, на котором выполнялась задача по созданию бэкапа с помощью vSphere (смотрите рисунок 7).

Рисунок 7. Выбор Клиента

После того, как будет выбран Клиент, администратор должен выбрать задачу Job (Restore Point- точку восстановления) для восстановления. (смотрите рисунок 8 на другой странице).
Если выбранная задача Job является корректной задачей vSphere, т.е. может быть исполнена, на третьем этапе отобразится список виртуальных машин, включенных в FileSet (смотрите рисунок 9 на следующей странице).

На данном этапе ПО Bacula должно создать виртуальный образ выбранной ВМ. Необходимо восстановить пару небольших файлов из каждой задачи Job, которые составляют выбранную точку восстановления Restore Point. После завершения процедуры ПО Bacula необходимо смонтировать диск выбранной ВМ в системе. Эти шаги, как правило, выполняются быстро, однако, затрачиваемое время во многом зависит от используемой конфигурации. Создаются и на период данного этапа сохраняются индексы, чтобы ускорить выполнение последующих запросов на восстановление.

После того, как диск будет смонтирован, в диспетчере файлов отобразятся файлы выбранной ВМ. В нем вы сможете выбрать файлы или каталоги для восстановления. (смотрите рисунок 10 на странице 31). Затем администратор может создать ZIP или TAR архив. Архив будет создан автоматически и сохранен в /opt/bacula/working. Будет создана ссылка для безопасного скачивания архива по HTTP. Администратор сможет предоставить эту ссылку конечному пользователю.

Каждый раз выбирая файлы администратор сможет выбрать метод восстановления файла в сжатом виде в формате tar или zip. (смотрите рисунок 11 на странице 32).
После восстановления важно завершить сессию для того, чтобы высвободить ресурсы, занятые под восстановление.

Рисунок 8. Выбор точки восстановления

Рисунок 9. Выбор ВМ

Рисунок 10. Выбор файлов

Рисунок 11. Доступ к файлу

 

2.3 Примечания

2.3.1 Каталог кэша

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

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

2.4 Ограничения

  • Функция восстановления единичны файлов VMware использует интерфейс Bacula BVFS для отображения списка файлов и каталогов. В случае MySQL; несмотря на ограничения MySQL, связанные с индексами в столбцах TEXT, процедура не оказывает существенного влияния на производительность MySQL. Тем не менее, в целях получения лучшего результата мы рекомендуем использовать PostgreSQL.
  • Производительность функции по восстановление единичного файла может варьироваться в зависимости от различных файлов. Например, ПО Bacula придется считывать больше данных, если том Volume создавался при выполнении большого количества параллельных задач.
  • Storage Daemon,в котором установлена утилита для восстановления единичного файла, должна иметь CPU с расширениями VT-x/EPT. Если эти расширения недоступны, производительность снизится ( с 20 с до 10 мин в случае нашего эксперимента).

 

[1] Доступно начиная с версии 8.2.9

[2] Необходимо для vSphere 6.0

[3] Доступно начиная с версии 6.2.3-2

[4] Доступно начиная с версии 8.4.8

[5] Доступно начиная с версии 8.2.5

[6] Доступно начиная с версии 6.2.3-2