Архивация виртуальных машин на ESXi

VMWare
По мере прибавления количества виртуальных машин на сервере виртуализации ESXi начинаешь потихоньку задумываться о резервных копиях — мало ли что? Делать ручками — не есть хорошо да и времени надо много, а хочется автоматизации. Почитав интернет нашел приятный в общем-то и бесплатный скрипт — ghettoVCB — написанная энтузиастами на скриптах perl. Бегло почитав описание — понял, то что доктор прописал. Приступим:

1. Нам нужен доступ по ssh на сервер — включаем если он не включен (читать здесь например)

2. Для удобства заливки на сервер данных ставим себе программу WinSCP либо плагин к FAR — netbox или его аналоги

3. Скачиваем по ссылке выше скрипт ghettoVCB на локальную машину и распаковываем в одноименную папку (мне так было удобнее)

4. Создаем командные файл для скрипта архивации:
#!/bin/sh
/vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/datastore1/ghettoVCB/vmlist -g /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.conf  -l /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB-backup-$(date +\%s).log
— я разместил скрипты на datastore1, после перехода на версию 5.0 файлы из корневой подпапки /ghettoVCB стали пропадать вместе с папкой, разбираться в чем дело не стал, просто перенес.

5. Создаем список машин в vmlist этой же папке, которые будем архивировать (по одной машине на строку, солюдая регистры именования — VasYA-pc и vasya-pc будут совершенно разные машины с точки зрения пространства имен linux!!!!!):
srv-area1
srv-dc2
srv-relay


6. Взяв за основу конфигурационный файл-пример ghettoVCB-vm_backup_configuration_template, создаем свой, я для удобства назвал его ghettoVCB.conf с примерно таким содержимым:
VM_BACKUP_VOLUME=/vmfs/volumes/datastore1/NFS
DISK_BACKUP_FORMAT=2gbsparse
VM_BACKUP_ROTATION_COUNT=1
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
SNAPSHOT_TIMEOUT=15
ENABLE_COMPRESSION=0
ADAPTER_FORMAT=lsilogic
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=0
SNAPSHOT_TIMEOUT=5

Все параметры очень хорошо документированы — гугл/яндекс в помощь, поясню пару основных на мой взгляд:
VM_BACKUP_VOLUME= — задает каталог для архивации на сервере (я кладу рядом с виртуальными машинами в подкаталог NFS, отсюда у меня забирает по заданному расписанию другой сервер)
DISK_BACKUP_FORMAT= — задает формат бэкапа машины (самый быстрый THIN, я использую 2gbsparse, чтобы меньше загружать сетку разбиение на блоки по 2Gb)
VM_BACKUP_ROTATION_COUNT= — количество хранимых резервных копий, у меня — 1, кстати будьте внимательны — при архивации старая резервная копия не удаляется пока не будет создана новая — может не хватить места!!!!

7. Заливаем по SCP результаты наших трудов на сервер (у меня /vmfs/volumes/datastore1/ghettoVCB)

8. Заходим на сервер по ssh, преходим в папку /vmfs/volumes/datastore1/ghettoVCB и делаем наши скрипты архивации исполняемым:
chmod +x *.sh
Все бы хорошо, но скрипт сам по себе не запуститься, а нам надо что бы все было автоматизировано, поэтому сделаем еще несколько телодвижений:
cd /var/spool/cron/crontabs
chmod +w root
vi root 

добавляем строку запуска скрипта архивации, нам надо чтобы архивация происходила каждый день в 18-00 (ESXi не имеет привязки к временным зонам и для России время на консоли будет UTP-0 — т.е. на 4 часа меньше привычного нам!!!):
-
0 14  *  *  * /vmfs/volumes/datastore1/ghettoVCB/backup.sh
— для нас же работа скрипта реально начнется в 18-00.
Вернем на место атрибуты файла root
chmod -w root


9. Теперь надо перезапустить crond:
kill $(cat /var/run/crond.pid)
crond


Ну вот собственно и все, если вы сделали все правильно — то все заработает.

ЗЫ: Советую бекапы хранить отдельно, например на другой сетевой ресурс или как у меня — другой сервер забирает копии к себе.

4 комментария

avatar
Кстати ESXi очень хорошо дружит по NFS с системой FreeNAS
avatar
Я вот тоже, кстати, не понял зачем сложности со сбором бекапов сторонними серверами, когда к ESXi можно примонтировать NFS и складывать сразу туда.
avatar
Речь не о сложностях, причины могут быть разными: нет NFS ресурса, временные костыли (и такое бывает), на и сетевой NFS медленоват, лучше когда железо притянуто по FC
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.