Бесплатный backup (резервное копирование) виртуальных машин на базе VMware ESXi. Программа для резервного копирования виртуальных машин VMware Vmware workstation как сделать копию виртуальной машины

Если у вас есть желание детальнее разобраться в процессах настройки и обеспечения комплексной безопасности локальной и сетевой инфраструктуры, построенной на базе ОС Linux, рекомендую познакомиться с в OTUS. Курс не для новичков, для поступления нужно пройти.

Если вы еще не настроили бесплатный гипервизор hyper-v, рекомендую познакомиться с моим материалом на эту тему — . Если у вас он уже настроен и встал вопрос о том, как быстро, удобно и бесплатно его забэкапить, то я рекомендую воспользоваться бесплатной утилитой HV Backup .

HVBackup описание утилиты для hyper-v

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

Утилита работает на всех версиях операционной системы, начиная с Windows Server 2008 и далее, как в графическом режиме, так и Server Core установках. Утилита поддерживает в том числе и бесплатную редакцию гипервизора Hyper-V Server.

HVBackup поддерживает app consistent и crash consistent бэкапы hyper-v, используя VSS, встроенный в систему. Существует множество коммерческих решений, основанных на таком же способе бэкапа виртуальных машин, но среди бесплатных мне известен только этот продукт.

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

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

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

Системные требования:
.Net Framework 3.5

Установка.Net Framework 3.5 в командной строке

Чтобы установить.Net Framework 3.5 необходимо выполнить следующие команды в Powershell.

Windows Server или Hyper-V Server 2012:

Install-WindowsFeature NET-Framework-Core

Windows Server 2008 или 2008 R2 (не core):

Ocsetup NetFx3

Windows Server (core) или Hyper-V Server 2008 / 2008 R2:

Ocsetup NetFx3-ServerCore

HVBackup пример использования

Выполнить полный VSS backup всех виртуальных машин хоста:

HVBackup -a -o d:\vm-backup

Выполнить полный VSS backup списка виртуальных машин (необходимо использовать кавычки, если имена машин содержат пробелы). Бэкап выполняется на удаленный сервер:

HVBackup -l "VM1,VM2" -o \\backup-server\wm-backup

Сделать полный бэкап виртуальных машин, список которых содержится в текстовом файле (каждая ВМ в отдельной строке):

HVBackup -f list.txt -o d:\wm-backup

Скрипт для автоматического бэкапа

Если вы хотите запланировать автоматическое выполнение резервного копирования, то удобнее всего сделать простой bat файл для этих целей и запланировать его исполнение. Создадим backup-all.cmd следующего содержания:

Set BCKPATH="\\backup-server\wm-backup" rem net use %BCKPATH% /user: Pushd %BCKPATH% && forfiles.exe -m *.zip -d -7 -c "cmd /c del @path" popd HVBackup.exe -a -o %BCKPATH% 1> log_out.txt 2> log_err.txt

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

Теперь создадим запланированное задание на сервере для периодического выполнения резервного копирования созданным ранее скриптом:

Schtasks.exe /create /tn HVBackup /tr c:\backup-all.cmd /sc DAILY /ru /rp /st 01:00:00

Если необходимо удалить задание:

Schtasks.exe /delete /tn HVBackup /f

Немедленное выполнение задания:

Schtasks.exe /run /tn HVBackup

Параметры командной строки HVBackup

Использование: HVBackup.exe

-b, —backup
Выполнить backup (по-умолчанию).
-r, —restore
Выполнить восстановление.
-f, —file
Текстовый файл, содержащий список виртуальных машин по одной в каждой строке.
-l, —list
Список виртуальных машин для бэкапа.
-a, —all
Резервное копирование всех виртуальных машин на сервере.
-n, —name
Если указано, то делается бэкап только перечисленных виртуальных машин.
-g, guid
Если указано, то делается бэкап перечисленных виртуальных машин по GUID.
-o, —output
Обязательный параметр. Конечная папка для архивов. Может быть в виде локального или сетевого пути.
—outputformat
Формат имени архива виртуальной машины. {0} имя машины, {1} GUID машины и {2} текущая дата и время. По-умолчанию: «{0}_{2:yyyyMMddHHmmss}.zip»
-s, —singlevss
Сделать один snapshot для всех виртуальных машин.
—help
Вывести справку по командам:

Заключение

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

Есть хорошая возможность совместить HVBackup и . Например, делать архивы локально на сервере с hyper-v, монтировать к linux серверу папку и с помощью rsync забирать zip файлы с виртуальными машинами. Либо сразу делать резервное копирование на линуксовую самбу, к примеру. По приведенной выше ссылки есть пример на эту тему.

Онлайн курс Безопасность Linux

Если у вас есть желание детальнее разобраться в процессах настройки и обеспечения безопасности локальной и сетевой инфраструктуры, построенной на базе ОС Linux, рекомендую познакомиться с онлайн-курсом «Безопасность Linux» в OTUS. Обучение длится 3 месяца, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Программа курса разработана в виде серии практических воркшопов и ориентирована на подготовленных слушателей, уже обладающих знаниями и опытом в администрировании Linux. Чему научитесь:
  • Применять лучшие мировые практики и стандарты ИБ (Debian, RedHat, MitRE);
  • Использовать средства для обнаружения и эксплуатации уязвимостей в ОС Linux;
  • Устанавливать и конфигурировать сетевые системы обнаружения и предотвращения атак;
  • Работать с системами мониторинга и контейнеризации на базе Docker;
Проверьте себя на вступительном тесте и смотрите детальнее программу по.

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 для распределения задач резервного копирования в окне резервного копирования. Поскольку все сервера используют один и тот же набор дисков, выполняя все задачи резервного копирования в одно и то же время, возможно образование узких мест в подсистеме диск/сеть.

Рисунок 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 также прочитает и сохранит бесполезные данные, например, файлы подкачки и временные интернет-файлы.

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

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

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

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

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

Таблица 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.

Рисунок 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 Время ожидания подключения к серверу vSphere в секундах.
thumbprint Да Отпечаток SSL сертификата vSphere сервера.
server Да Сервер vSphere ESXi, используемый для создания бэкапа.
url Да Адрес сервера vSphere ESXi или vCenter используемый в целях осуществления вызова с помощью SOAP.
Default_datastore Нет datastore1 Хранилище данных для восстановления, используемое по умолчанию.
default_restore_host Нет ESX сервер, используемый по умолчанию для восстановление, если в vCenter доступно несколько серверов.
default_ovf Нет Описание OVF по умолчанию, используемое в случае, если текущее описание OVF не может быть загружено в VMWare .
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_global.conf.

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

Если вы возвращаетесь к снапшоту, более раннему нежели последний инкрементальный бэкап, вы должны создать полный бэкап ВМ перед повторным использованием инкрементальных бэкапов. Данная проблема была решена в 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 использует различные технологии и сторонние библиотеки. В результате, система широко использует функцию трассировки. Пользователь сможет воспользоваться помощью следующих файлов:

Таблица 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 и можно перезаписать из меню восстановления.

server = 192.168.0.68

url = https://192.168.0.68/sdk

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 . Как правило, необходимо сконфигурировать параметр 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= ограничить список задач последними ХХХ днями
  • -l= ограничить список задач последними введёнными числами
  • -f= указать расширенный фильтр исходя из имени задачи и/или имени 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.

Рассмотрим и сравним два способа резервного копирования виртуальных машин VMware.

Исходные данные

Тестовый стенд представляет собой два гипервизора ESXi на сервере Fujitsu Primergy BX2560 M2 подключённые по SAN (два порта по 8 Gbit/s) и LAN (два порта по 10 Gbit/s). Версия ESXi и VSCA 6.5. Для ESXi диски презентованы системой хранения данных Fujitsu ETERNUS DX8700 S2. В качестве системы хранения бэкапа используем EMC Data Domain 6300, подключенный по SAN (четыре порта по 8 Gbit/s). Для выполнения backup, в целях экономии времени, воспользуемся готовым инструментом Backup Exec, сервер управления системы установлен на физическом сервере HP ProLiant BL460c Gen8 и так же имеет подключение к сети по SAN и LAN двумя портами.

Для тестирования создано три виртуальных машины: VM1 (146Gb), VM2 (157GB) и VM3 (284Gb). Процедура тестирования будет выглядеть следующим образом: выполним три раза FULL Backup каждой системы, после этого вычислим среднюю скорость резервного копирования(Gb/min) для каждого способа.

Система Backup Exec имеет четыре способа получения доступа к данным виртуальной машины, для физического сервера это SAN, LAN (NBD), NBDSSL и четвертый, если сервер Backup Exec установлен на виртуальной машине, HotAdd. Протестируем вариант, когда Backup Exec установлен на отдельном физическом сервере, сравним плюсы и минусы выполнения бэкапа по SAN и LAN.

Настройка Backup Exec достаточно проста и состоит из следующих шагов:

  1. Выбрать существующее или создать новое задание на выполнение бэкапа виртуальных машин
  2. Открыть свойства этого задания
  3. Перейти на вкладку Virtual Machines > подраздел VMware
  4. Отметить нужный нам способ подключения (допустимо активировать сразу все четыре способа и выставить их очередность использования)


СПОСОБ ПЕРВЫЙ: РЕЗЕРВНОЕ КОПИРОВАНИЕ ВИРТУАЛЬНЫХ МАШИН ПО SAN


Для того, чтобы Backup Server мог выполнить бэкап виртуальных машинESXi по SAN, ему необходимо в первую очередь презентовать те же LUN (-ы), которые были презентованы ESXi. В этом случае Backup Server, используя vStorage API, запрашивает информацию у vCenter, в каком LUN находится VMDK виртуальной машины, делает моментальный снимок (snapshot) диска и забирает его по SAN.

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

СПОСОБ ВТОРОЙ: РЕЗЕРВНОЕ КОПИРОВАНИЕ ВИРТУАЛЬНЫХ МАШИН ПО LAN (NBD)


В этом режиме Backup Server запрашивает у vCenter сведенья о том на каком ESXi находится нужная нам виртуальна машина, делается моментальный снимок и выполняет его передачу по локальной сети с ESXi сервера на Backup Server.

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

ВЫВОДЫ, ПЛЮСЫ И МИНУСЫ

Если строить с нуля современную инфраструктуру используя сетевое оборудование с пропускной способностью 10 Gbit/s, то применение бэкапа в режиме подключения к данным по локальной сети (NBD) скорее всего, по затратам и времени окажется более эффективно. В случае, когда сеть между ESXi и Backup Host составляет 1 Gbit/s, а необходимое оборудование для подключения по SAN уже есть, то первый способ будет более эффективный и быстрый.

Основной плюс выполнения бэкапа по SAN заключаются в том, что передача данных не загружает локальную сеть и выполняется на достаточно высокой скорости, но в случае 10 Gbit/s сети это уже не является столь явным преимуществом, поскольку даже при сравнительно больших объемах информации окно резервного копирования занимает не значительное время.

Основной плюс выполнения бэкапа по LAN, это возможность использования более дешевого оборудования в качестве системы хранения данных. И как показал тест, построение современной сети на 10 Gbit/s оборудовании обеспечит более быстрый бэкап, чем 8 Gbit/s SAN.

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

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

Используемая в статье информация взята из официальных источников.

Для организации системы автоматического резервного копирования виртуальных машин, запущенных на сервере VMWare ESXi мы воспользуемся бесплатной утилитой MKSBackup , скачать которую можно (на момент написания статьи последняя доступная версия MKSBackup 1.0.4 от 24.01. 2013). Данная утилита является своеобразным фронтэндом, который интегрируется с различными скриптами резервного копирования, в том числе GhettoVCB (скрипт резервного копирования ВМ, написанный на perl и поддерживаемый энтузиастами). GhettoVCB позволяет в онлайн режиме создавать резервные копии запущенных виртуальных машин. Резервная копия ВМ создается путем создания ее снимка (снапшота).

Важно . GhettoVCB не работает с виртуальными машинами, имеющих собственные снимки. Для выполнения бэкапа виртуальной машины все снапшоты должны быть удалены (например, через Snapshot Manager).

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

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

Установка скрипта резервного копирования MKSBackup

Настройка параметров резервного копирования виртуальных машин

Следующий этап – настройка параметров резервного копирования виртуальных машин, запущенных на сервере ESXi. Настройка проводится путем редактирования конфигурационного файла mksbackup.ini (по умолчанию находится в папке C:\Magik).

Откройте файл mksbackup.ini в любом текстовом редакторе. По своей структуре файл представляет собой несколько секций, имя каждой секции заключено в квадратные скобки.
Секция:

В данной секции можно задать параметры оповещения по электронной почте. Нам это не интересно, поэтому оставим

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

Program=ghettovcb host=10.10.1.89 port=22 login=root password=LI&f3ccc23 local=C:\magik\vmware global_conf=ghettoVCB.conf vm_list=vm1_https winXPtest destination=C:\magik\${vm} scp_bin="D:\Install\Putty\pscp.exe" -scp -r

Подробнее остановимся на параметрах задания:

program – программа резервного копирования, оставляем ghettovcb

host – имя/ip хоста ESXi, на котором запущены виртуальные машины

port – порт для доступа (по умолчанию 22 порт – протокол SSH)

login – имя пользователя с правами доступа к серверу ESXi (по умолчанию это root, но с целью безопасности лучше завести на сервере ESXi отдельного пользователя)

password – пароль пользователя

local – локальная директория, в которой хранится скрипт резервного копирования и его конфигурация

global_conf – файл с настройками скрипта ghettoVCB

vm_list – список виртуальных машин, для которых необходимо создать резервную копию. Если нужно забэкапить все виртуальные машины, этот параметр нужно оставить пустым. Если нужно исключить некоторые виртуалки, воспользуйтесь параметром vm_exclude.

destination – параметр позволяет указать тип выполняемой операции. Это может быть

  • backup – выполнить простое резервное копирование (место назначения указывать не нужно)
  • copy – выполнить резервное копирование и скопировать полученные файлы в указанный каталог
  • move — выполнить резервное копирование и переместить полученные файлы в указанный каталог

Остановимся на варианте move, как на более оптимальном. В этом случае на хосте ESXi создадутся локальные резервные копии виртуальных машин, которые затем будут перенесены на компьютер, запустивший скрипт.

mon-sun – предполагается, что скрипт может выполняться ежедневно (оставим так, так как периодичность запуска резервного копирования зададим через планировщик Windows).

Кроме того, укажем каталог, в который будут перемещаться резервные копии ВМ (C:\magik). Параметр ${vm} указывает, что для каждой виртуальной машины будет создан отдельный каталог с ее именем, куда и будут складываться фалы виртуальной машины.

Примечание . Подробное описание конфигурационных настроек скрипта и его синтаксиса приведено на сайте разработчика.

scp_bin – путь к утилите scp

Важно . Убедитесь, что на сервере ESXi включен демон SSH.

VM_BACKUP_VOLUME=/vmfs/volumes/msa2000/backup VM_BACKUP_ROTATION_COUNT=3

VM_BACKUP_VOLUME – каталог на сервере ESXi, в котором будут сохранятся копии виртуальных машин (естественно, что на VMFS разделе должно быть достаточно свободного места)

VM_BACKUP_ROTATION_COUNT – количество хранимых локальных копий (в нашем примере будут хранится 3 последние резервные копии)

Осталось с помощью утилиты plink (также входит в состав поставки Putty) сохранить ключ хоста в локальном кеше ssh. Например, так:

PLINK.EXE [email protected] ls /

Запуск резервного копирования виртуальных машин на хосте VMWare ESXi

Протестируем работу скрипта резервного копирования. Для это нужно открыть командную строку с правами администратора и выполнить команду:

C:\Magik\MKSBackup\mksbackup.exe -v -c C:\Magik\mksbackup.ini backup VMWARE_FROM_WINDOWS

Где ключ –v показывает, что нужно отображать подробную информацию, -c путь к файлу настроек mksbackup.ini, backup – означает что нужно запустить резервное копирование, в конце указывается имя задания из файла mksbackup.ini (в нашем примере задание VMWARE_FROM_WINDOWS).

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

Процесс резервного копирования можно отследить по появлению событий создания/ удаления снапшотов в консоли VMware vSphere.

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

После выполнения тестового копирования можно перейти к автоматизации процесса создания резервных копий. Для этого создадим новое задание планировщика Windows.

Создадим, задание с именем «Backup ESXi», которое выполняется по пятницам и запускает команду: C:\Magik\MKSBackup\mksbackup.exe -v -c C:\Magik\mksbackup.ini backup VMWARE_FROM_WINDOWS

В настройках задания не забудьте указать, что его нужно запускать с правами администратора (опция «Run with highest privileges»).

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

Недостатки данного данного метода резервного копирования виртуальных машин:

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

Указанные недостатки компенсируется его бесплатностью, но для крупных решений предпочтительно использовать коммерческие продукты резервного копирования, например Veeam или HP DataProtector.

Добрый день уважаемые читатели, не так давно, мы с вами разбирали процесс клонирования виртуальных машин Hyper-V , сегодня же мы с вами разберем, его главное конкурента, а именно гипервизор ESXI, в котором мы так же произведем клонирование виртуальной машины VMware . Сам процесс не сложный, но может у начинающих системных администраторов вызывать ряд вопросов, на которые я отвечу в этой статье.

Принцип клонирования

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

  • Копирование файлов виртуальной машины (в выключенном состоянии), из минусов, нужно заново ее создавать в инвентории и подсовывать существующие диске.
  • С помощью VMware vCenter Converter Standalon e, это вариант когда нет vCenter Server. Там принцип простой, вы устанавливаете его в виртуальную машину и делаете его клон, как будто это физическая машину, все подробно описано, по ссылке выше.
  • Средствами резервного копирования виртуальных машин "Veeam Backup Replication"
  • С помощью vCenter Cerver.

Ниже опишу первый метод и последний, остальные уже имеют свои подробные статьи.

Копирование файлов VM

Находим нужный ESXI хост, выбираем нужный вам дисковый массив (Datastore) и щелкаем по нему правым кликом мыши, из контекстного меню выбирает "Browse Datastore".

Выбираем нужную папку и из контекстного меню пункт "Copy", далее с помощью встроенного проводника, перемещаем ее в нужное местоположение, можно назвать это таким клонированием виртуальной машины VMware, для бедных.

Далее, на новом месте, открываете папку и щелкаете правым кликом по файлу с расширением *.vmtx, это конфигурационный файл. По сути на этом все. Лично я, чтобы получить доступ к файловой системе ESXI использую WinSCP , либо вы еще можете воспользоваться функциями OVA шаблона .

Если в копируемой VM присутствую snapshot’ы их нужно или удалить перед копированием или скопировать вместе с другими файлами, иначе во время загрузки новой VM будет ошибка с сообщением о невозможности подгрузить файлы с snapshot’ами.

Копирование VM с помощью vCenter

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

На первом окне мастера вас спросят выбрать локацию (Datacenter)

Указываем хост назначения, если он подходит, вы увидите сообщение "Validation succeded"

Если же нет, то вы увидите сообщения:

  • Device CD/DVD drive 1 used backing - исправимая вещь, вам говорят, чтобы вы отмантировали ISO в виртуалке.
  • Network interface "имя адаптера" uses network "другое имя" - типа такой сети на хосте назначения нет, то же ничего страшного, пере воткнете в другой после клонирования.

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

На последнем шаге, вас спросят, хотите ли вы применить кастомные настройки к клону. Customise - это дополнительная настройка, позволяющая задать огромное количество установок. Выбрав пункт "Do not customise" вы закончите процесс мастера клонирования.