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

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

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

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

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

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

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

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

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

Попробовал на работе таки бесплатный Veem, поскольку он там использовался ещё до меня, но только сломался и требовалось починить. Починил: теперь уже версия 9.5 и дистрибутив весит 2,1Gb. Устанавливался Veem более часа (!), никакой лицензии для бесплатного использования не нужно, поле для лицензии остаётся пустым. Может и в первый раз не нужна была какая-либо лицензия для бесплатной версии, просто не разобрался - скорее всего.

Ну что сказать.. Много всяких всяких функций, они в бесплатной версии никак не заблокированы, просто не работают. Из плюсов - жмёт хорошо и быстро. Восстановление также проходит быстро и хорошо. Вобщем, меняю отношение к Veem с негативного на умеренно-позитивное. Кому не лень запускать архивацию каждый раз руками - Welcome! 🙂

HV Backup

От танцев с 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. Степень сжатия гораздо меньше, чем у Acronis и Veem.

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

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

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

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

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

Архивация виртуальных машин Hyper-V: 2 комментария

  1. Не нашел у вас скрипт о котором тут говорится, не могли бы вы его выложить или прислать по почте. Буду признателен.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *