Для организации системы автоматического резервного копирования виртуальных машин, запущенных на сервере VMWare ESXi мы воспользуемся бесплатной утилитой MKSBackup, скачать которую можно тут (на момент написания статьи последняя доступная версия MKSBackup 1.0.4 от 24.01. 2013). Данная утилита является своеобразным фронтэндом, который интегрируется с различными скриптами резервного копирования, в том числе GhettoVCB (скрипт резервного копирования ВМ, написанный на perl и поддерживаемый энтузиастами). GhettoVCB позволяет в онлайн режиме создавать резервные копии запущенных виртуальных машин. Резервная копия ВМ создается путем создания ее снимка (снапшота).
MKSBackup одно из немногих средств резервного копирования, позволяющих выполнять онлайн бэкап виртуальных машин. MKSBackup можно использовать для бэкапа виртуальных машин, запущенных как на коммерческих редакция VMware ESXi , так и на бесплатном VMware Hypervisor. Утилита разработана на Python и является кроссплатформенной. Утилита MKSBackup не имеет графического интерфейса, работает через командную строку, и настраивается через конфигурационные файлы.
Естественно, удобство и управляемость решения для организации бэкапа виртуальных машин VMWare на базе MKSBackup, ниже чем у коммерческих продуктов, но во много компенсируется его бесплатностью, простотой настройки и скоростью развертывания.
Содержание:
Установка скрипта резервного копирования MKSBackup
- Скачайте и распакуйте архив с MKSBackup.
- Запустите файл mksbackup.exe. Ооткроется простой консольный мастер установки. В процессе установки нужно будет указать каталог, в который устанавливается скрипт (по умолчанию C:\Magik), нужно ли устанавливать скрипт ghettoVCB (да, нужно), название задания резервного копирования (можно пока не задавать) и пароль пользователя, из-под которого будет запускаться задание резервного копирования (пока можно не задавать)
Настройка параметров резервного копирования виртуальных машин
Следующий этап – настройка параметров резервного копирования виртуальных машин, запущенных на сервере ESXi. Настройка проводится путем редактирования конфигурационного файла mksbackup.ini (по умолчанию находится в папке C:\Magik).
Откройте файл mksbackup.ini в любом текстовом редакторе. По своей структуре файл представляет собой несколько секций, имя каждой секции заключено в квадратные скобки.
[DEFAULT]
В данной секции можно задать параметры оповещения по электронной почте. Нам это не интересно, поэтому оставим
mail=no
Следующая секция [VMWARE_FROM_WINDOWS]. Эта секция представляет собой задание резервного копирование и описывает различные параметры, обеспечивающие запуск бэкапа виртуальных машин в среде Windows. В нашем примере задание выглядит так:
[VMWARE_FROM_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
Далее необходимо внести ряд изменений в файл ghettoVCB.conf (в нашем примере он находится в каталоге C:\magik\vmware). Нас интересуют следующие параметры
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»).
Недостатки данного данного метода резервного копирования виртуальных машин:
- довольно низкая скорость создания резервных копий
- большое количество свободного места, необходимое для хранения бэкапов ВМ
Указанные недостатки компенсируется его бесплатностью, но для крупных решений предпочтительно использовать коммерческие продукты резервного копирования , например Veeam или HP DataProtector.