АРХИВАЦИЯ ВИРТУАЛЬНЫХ МАШИН HYPER-V

Архивация виртуальных машин Hyper-V крайне важна. Все, кто сталкивался с отказом жесткого диска, это прекрасно понимают. В среде админов популярна шутка, что админы делятся на 3 категории — тех, кто делает бекапы, тех, кто не делает и тех, кто уже делает. Программные ошибки — BSOD’ы, повреждение таблицы разделов — практически всегда можно вылечить, если знать как лечить и действовать аккуратно, а вот выхода из строя диска боятся все. Для восстановления потребуется время, нервы, диск-донор и круглая сумма денег. Это для физической машины.

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

Итак задача — архивировать виртуальные машины, работающие в гипервизоре Hyper-V.

Если физическую машину можно бекапить только изнутри, с помощью программ, либо же агентов-сервисов — не суть важно, а важно то, что в случае падения придется грузиться в специальную среду восстановления с носителя, то виртуальную машину можно бекапить как изнутри, так и из хостовой ОС. Бекап из хостовой ОС мне видится более предпочтительным, так как процесс архивации/восстановления более унифицирован и не зависит ни от типа виртуальной ОС, ни от ее состояния.

Поиск решения

По этой причине сразу отказался от идеи архивации виртуальных Windows-машин изнутри с помощью wbadmin. Acronis естественно тоже не рассматривается по причине дороговизны. Очень большие надежды возлагал я на Veem Back Free Edition. Расскажу подробнее: надежды эти появились в связи с хвалебными отзывами в интернете, первое удивление постигло меня когда выяснилось, что дистрибутив весит более гигабайта. Поставил вечером на закачку, утром пришел на работу — все скачалось. Дальше интереснее, звонит sales-менеджер из Veem’а и разговор течет в понятном русле, попутно интересуюсь у него почему такой большой размер дистрибутива. Выяснилось, что делая бесплатную версию, замечательные разработчики Veem’а просто взяли и заблокировали у полнофункционального ПО часть кода, который разблокируется в случае введения платной лицензии. Ну а для бесплатного использования — бесплатная лицензия. Получить бесплатную лицензию не удалось. Она так и не пришла на мой e-mail. На этом сказке про Veem конец.

От танцев с Power Shell и самописных скриптов отказался тоже. Ведь по сути что надо? Ужать vhd-шник не выключая виртуальную машину и все. Должно быть что-то совсем простое — понимал это и не ошибся.

После недолгих поисков нашёл. Утилита называется HV Backup, архив весит менее мегабайта (бесплатному Veem’у — привет!).

Домашняя страница проекта HV Backup: //hypervbackup.codeplex.com/

Там есть полное описание параметров запуска HVBackup.exe и примеры по использованию. Стандартный скрипт архивации:

set BCKPATH=»\\backup\f$\SVM0″
pushd %BCKPATH% && forfiles.exe -m *.zip -d -20 -c «cmd /c del @path»
popd
HVBackup.exe -a -o %BCKPATH% 1> log_out.txt 2> log_err.txt
Параметр -a означает, что будут архивированы все VM на данном сервере Hyper-V или же можно указать машины явно:

HVBackup.exe -l «VM1,VM2″… — список (list)
VM1, VM2 — названия виртуальных машин, как они называются в Hyper-V. Также можно указать файл со списком VM:

HVBackup.exe -f list.txt … — файл (file)
В файле list.txt каждое название VM — с новой строки и файл нужно положить в папку с HVBackup.exe.

Затем сохраняем скрипт с расширением .cmd и создаём в Планировщике Windows новое задание с необходимым расписанием и запуском данного .cmd файла.

Архивация

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

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

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

На создание архива Windows-машины весом 43GB ушло 50 минут. Архив создавался на внешнем USB-диске. Специально проверил скорость диска — 30Mib/s.

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

Жмет в zip, что хорошо. Архив получился 25GB.

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

Добавление от 18.03.2017

Не так давно делал ещё задания по архивации машин Hyper-V, HV Backup отлично отработал без включения теневых копий на томе. Для всех машин и в начальном, и в последующих случаях Backup для Integration Services был включен:

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

Тем не менее, если возникает такой глюк, то известно как с ним бороться.

Добавить комментарий