В windows backup нет hyper v
Хочу поделиться с вами простым и быстрым способом бесплатно бэкапить виртуальные машины, работающие под гипервизором hyper-v с помощью утилиты hvbackup. Если в режиме работы полноценного сервера с графическим интерфейсом это может быть не очень актуально, так как присутствует штатное средство для бэкапа, но если вы используете бесплатную версию Hyper-V Server, вопрос становится очень актуальным.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .Если вы еще не настроили бесплатный гипервизор hyper-v, рекомендую познакомиться с моим материалом на эту тему - Установка и настройка Windows Hyper-V Server 2019. Если у вас он уже настроен и встал вопрос о том, как быстро, удобно и бесплатно его забэкапить, то я рекомендую воспользоваться бесплатной утилитой 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 в своей инфраструктуре, что гарантирует высокое качество работы и своевременные исправления или изменения.
Принцип работы этой утилиты достаточно прост. Программа создает в указанном каталоге отдельный zip архив для каждой виртуальной машины, который включает в себя всю информацию, относящуюся к ней.
Windows Server или Hyper-V Server 2012:
Windows Server 2008 или 2008 R2 (не core):
Windows Server (core) или Hyper-V Server 2008 / 2008 R2:
HVBackup пример использования
Выполнить полный VSS backup всех виртуальных машин хоста:
Выполнить полный VSS backup списка виртуальных машин (необходимо использовать кавычки, если имена машин содержат пробелы). Бэкап выполняется на удаленный сервер:
Сделать полный бэкап виртуальных машин, список которых содержится в текстовом файле (каждая ВМ в отдельной строке):
Скрипт для автоматического бэкапа
Если вы хотите запланировать автоматическое выполнение резервного копирования, то удобнее всего сделать простой bat файл для этих целей и запланировать его исполнение. Создадим backup-all.cmd следующего содержания:
Этот скрипт перед выполнением бэкапа всех виртуальных машин будет удалять zip файлы старше 7-ми дней в указанной директории. Пути и параметры вы можете подредактировать под свои нужды.
Теперь создадим запланированное задание на сервере для периодического выполнения резервного копирования созданным ранее скриптом:
Если необходимо удалить задание:
Немедленное выполнение задания:
Параметры командной строки HVBackup
-b, --backup
Выполнить backup (по-умолчанию).
-r, --restore
Выполнить восстановление.
-f, --file
Текстовый файл, содержащий список виртуальных машин по одной в каждой строке.
-l, --list
Список виртуальных машин для бэкапа.
-a, --all
Резервное копирование всех виртуальных машин на сервере.
-n, --name
Если указано, то делается бэкап только перечисленных виртуальных машин.
-g, guid
Если указано, то делается бэкап перечисленных виртуальных машин по GUID.
-o, --output
Обязательный параметр. Конечная папка для архивов. Может быть в виде локального или сетевого пути.
--outputformat
Формат имени архива виртуальной машины. имя машины, GUID машины и текущая дата и время. По-умолчанию: "_.zip"
-s, --singlevss
Сделать один snapshot для всех виртуальных машин.
--help
Вывести справку по командам:
Заключение
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!На этом все. Единственное замечание - я не тестировал падение производительности во время выполнения бэкапа. На глаз я не заметил никаких тормозов в работе виртуальных машин. Но они у меня все ненагруженные были. Время выполнения бэкапа каждой машины значительное. Но, конечно, оно зависит от множества факторов.
Есть хорошая возможность совместить HVBackup и бэкап серверов с rsync. Например, делать архивы локально на сервере с hyper-v, монтировать к linux серверу папку и с помощью rsync забирать zip файлы с виртуальными машинами. Либо сразу делать резервное копирование на линуксовую самбу, к примеру. По приведенной выше ссылки есть пример на эту тему.
Онлайн курсы по Mikrotik
- Знания, ориентированные на практику;
- Реальные ситуации и задачи;
- Лучшее из международных программ.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Автор Zerox
36 комментариев
Проблемка!( Программа не видит виртуальные машины! Если в конфиге указать -а, то запускается, не вижу виртуалки, до свидания! Если реально указать лист с названиями! Ворнинг. Виртуальная машина не найдена! Что с эти делать? Сталкивался кто?
А как на Core установить пакет Visual C++ для Visual Studio?
По ходу никак. Значит теперь этот вариант не для core
А почему никак? Я давно не использовал эту штуку, поэтому не могу подсказать.
при попытке запуска файла в повершеле (теперь он называется HyperVBackup.exe) сервер пишет следующее
"HyperVBackup : Имя "HyperVBackup" не распознано как имя командлета, функции, файла сценария или
выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пу
ти, после чего повторите попытку."
Попробуй запустить не в powershell, а в обычном cmd и используй имя файла с .exe - HyperVBackup.exe.
+ Получилось. Теперь все как у всех :) те же ошибки и предупреждения. Читаем дальше
Как правильно установить программу? Я скачал архив с программой, распаковал на сервере c hyper v. Netframework 35 уже был установлен. Запускаю exe-шник с программой, после этого мелькнул экран с командной строкой и закрылся.
Так у меня вся статья на тему того, как пользоваться программой. Вы ее читали, или сразу комментировать пошли?
Статью я читал, но ни где написано что делать со скачанным архивом hvbackup. Ну да ладно проехали, сам разобрался. Другой вопрос, возникает ошибка при создании бэкапа:
C:\Windows\system32>C:\HyperVBackup.v3\HyperVbackup.exe -l "Virt2" -o E:\WBADMIN\
HyperVBackup 3
Copyright (C) 2012 Cloudbase Solutions SRL
Copyright (C) 2016/2017 Coliseo Software SRL
[2020-07-22 13:32:11.1244] Info: HyperVBackup started at 22.07.2020 13:32:11
В чем может быть проблема?
Судя по всему Visual C++ redist package не хватает.
Добрый день! Можно ли восстанавливать бэкап на другом сервере с Hyper-V? Если можно напишите полную команду восстановления машины или пример восстановления
Можно. Я сейчас точно не помню, в каком формате на выходе бэкап у HVBackup, но вроде бы получается то же самое, что если бы вы сделали экспорт виртуальной машины. Соответственно, на другом сервере вам надо сделать импорт виртуальной машины из распакованного бэкапа от HVBackup. Если это не сработает, то можете просто на новом сервере создать виртуальную машину и указать для нее диск из архива HVBackup.
На windows server 2016 core выдавало ошибку о том что отсутствует библиотека AlphaVSS.x64.dll или связанные с ней зависимости, чтобы решить проблему необходимо поставить пакет Visual C++ для Visual Studio 2015. Удачи!
Пользуюсь благодаря вашей статье HVBackup'ером уже более двух лет. Очень доволен, вначале бекапил виртуалки на Hyper-V 2008 , сейчас развернул виртуалки на Hyper-V 2012, думал что прога не справится, мол старая версия, но всё хорошо. На 2012 все бекапит )))
Да, как простой и бесплатный вариант он неплох. Хотя мне кажется, лучше взять бесплатную редакцию Veeam. Я перестал использовать HVBackup, потому что он очень долго выполняет бэкап. Уж не знаю, почему так получается.
Потому, что он етиегомать использует только одно ядро!! у меня на 24х-ядерном сервере бекап выполняется на 15 часов дольше, чем на i5. И как заставить его использоваться остальныя ядра - я так и не понял.
точнее вот, нашлось:
mt Enable multi-threaded compression (only for 7zip
format)
надо будет испробовать
Спасибо большое. На сайте разработчика что-то для внутреннего пользования.
А экзэшник я тоже искал и. не нашёл.
Попробую юзать.
Ещё раз спасибо большое за статью и за быстрый отклик
Спасибо, что отозвались.
В статье Вы пишите Создадим backup-all.cmd,
а в нем HVBackup.exe.
Чувствую, что вопрос мой очень глупый, но
всё же просветите плиз.
Буду очень благодарен
Моя ошибка в предыдущем комментарии. Давно не настраивал hyper-v. Сейчас посмотрел на своих серверах, там действительно .exe файл. Я почему-то подумал, что это был скрипт. Раньше в архиве был экзешник, а сейчас с сайта разработчиков я вообще не пойму, что скачивается. Похоже, что не скомпилированные источники. Попробую разобраться, если что, выложу ту версию, что есть у меня сейчас.
Хочу поделиться с вами опытом о том, что у меня отняло море времени — о бэкапах виртуальных машин и обычных компьютеров. Как сделать дешево и красиво.
Пожалуй, начну с того, что если вы хотите бэкапы на VMWare, то готовьтесь платить. Бесплатный VMWare — это бесплатно до тех, пока речь не идет о миграциях, бэкапах и тому подобное. На этом месте можно начать бесконечный холивар, но без моего участия. Мои повествования будут только о Hyper-V на Windows Server 2012R2. Хотя часть статьи можно применить и к VMWare, но, вероятно, будут подводные камни.
Бэкапить на Hyper-V мы можем бесплатно, а точнее, теми средствами Windows, за которые мы уже заплатили, приобретая лицензии Windows Server. Для удобства работы с нашими бэкапами (к тому же за это мы тоже заплатили) будем использовать WDS и дедупликацию (может и групповые политики).
1. Бэкап изнутри виртуальных машин
1.1. Бэкап сегодняшнего дня
Насколько мы знаем, любой Windows умеет делать бэкап. Причем, любые настройки бэкапа Windows через интерфейс сводятся, в конечном счете, к фоновому использованию утилиты wbadmin. А что, собственно, умеет wbadmin? А умеет она делать как бэкап образа с системным разделом, так и бэкап отдельных папок. В данной части статьи нас интересует только бэкап образ (системного раздела). Остальное — это специфичные данные виртуальных машин и бэкапить нужно отдельно. Отсюда вывод: Не храните на системном разделе виртуальных машин (и на обычных компьютерах тоже) никакой ценной информации и баз данных, отдельных приложений. MS SQL Server / MS Exchange / «Сервер приложений 1С» и другое ставим только на не системные разделы или на отдельные диски.
Итак, что же нужно, чтобы бэкап отработал? А нужна всего лишь одна команда:
На самом деле, для этой команды нужны особые права, но о них позже. Сейчас важно понять одну вещь. Данная команда делает не просто бэкап. Она делает инкрементальный бэкап. Причем, для серверных и настольных (клиентских) Windows бэкапы формируются разные. И разница заключается в том, что для серверных ОС у нас получатся снимки каждого бэкапа, а вот для настольных — снимок останется всегда только последний. Спросите, а что это за такой инкрементальный бэкап? А «инкрементальный» он остается, потому что бэкапим мы не весь образ, а только изменившуюся часть со времени последнего бэкапа (а значит и меньше трафика и быстрее создается бэкап).
Те, кто сталкивался с аналогичной ситуацией заметят, что бэкап всегда будет «инкрементальный» (полный). Так как бэкап происходит в нашем случае на сетевой диск. То есть для серверной Windows снимки остаются тоже только последние.
Позже, выявил, что нет никакой разницы в работе wbadmin на серверной и клиентской ОС. Разве, что разница есть в интерфейсе. wbadmin производит инкрементальный бэкап (кроме первого бэкапа), если указан жесткий диск в ключе -backupTarget (команда использует ключ по умолчанию -vssСopy). Или производит полный бэкап, если добавить ключ -vssFull.
1.2. Бэкап с историей предыдущих снимков
На данный момент, мы сделали бэкап образов виртуальных машин. Но это же у нас бэкап снимков только сегодняшнего дня. Завтра он будет совершенно другой… Но что будет, если бэкапить бэкапы? Да и ещё по-настоящему инкрементально. Так и поступим.
Но мне было этого недостаточно и я сделал так:
Скрипт подключает виртуальный диск из сети. После бэкапа подобный же скрипт отключает диск. ОС помнит, что у диска определена буква E. Но не дай бог подсунуть чужой диск с той же буквой E, бэкап отработает уже по полной (не инкрементально и на чужой диск). Имейте это в виду и используйте, букву, ближе к концу алфавита (X, Y, Z)…
Замечу сразу, если бэкап сегодняшний будет производиться параллельно с бэкапом с историей, то получим в итоге бэкап, который невозможно поднять.
Чтобы достать бэкап предыдущих дней можно воспользоваться интерфейсом (GUI) сервера, на котором производятся бэкапы с историей. Более того, все запуски команды wbadmin в консоли Windows знает и помнит. Служба восстановления даст возможность вам выбрать нужный архив в бэкапах с историей.
2. Бэкап файлов vhdx виртуальных машин
Производится легко и непринужденно:
Но с некоторыми особенностями. Эта команда должна выполняться в PowerShell и с предварительным получением списка виртуальных машин в переменную. За подробным примером обращаемся в Google.
Бэкап виртуальных машин в Windows Server 2012 R2 идет с помощью моментальных снимков Hyper-V. Также замечу, что происходят приостановка работы виртуальных машин, если на них ядро Linux или отсутствуют Hyper-V драйвера. Я лично отказался бэкапить виртуальные машины таким способом. Причина в том, что на Windows Server 2012 (не R2) требовалось останавливать виртуальные машины до бекапа. Да и сейчас на Windows Server 2012 R2 приостановки Linux меня не устраивают, когда есть первый неплохой способ бэкапа. (в комментариях к данной статье есть замечание). После очередного обновления в Windows Server 2012 R2 бэкап любых виртуальных машин проходит без приостановок. ОС Linux также можно бэкапить «изнутри» с помощь Dump (CentOS, Ubuntu), но это отдельная тема с puppet'ами и другим ПО в моем случае.
3. Восстановление бэкапа и WDS
А теперь, по-моему мнению, самая полезная часть этой статьи про бэкапы.
WDS — это Windows Deployment Services (службы развертывания Windows) и часть функционала Windows Server 2012R2. Раньше эта служба называлась RIS, но я с ней не сталкивался. Вообщем, суть WDS проста. Прописались в DHCP (автоматически для DHCP Windows Server) в виде отдельных параметров и далее загружаем на компьютер по сети (такая настройка BIOS компьютера для загрузки по сети) через TFTP загрузчик WDS. Далее загрузчик WDS позволяет выбрать из доступных на ней образов «загрузчиков» Windows. Загрузчики бывают разные — это и образы загрузчиков установщика, и PE, и RE образы. Для загрузчика установщика ещё нужны образы самих Windows в WDS, но это в случае, если нужно установить Windows по сети. Нас интересуют RE образы, которые позволяют поднять машину из бэкапа.
Как и что работает в WDS подробно объяснять не буду. Но вот важные заметки:
- Если у вас загрузчик RE загружается на Hyper-V виртуальной машине по сети, но не работает клавиатура в ней. Поздравляю, ваш RE образ для WinXP или древнее и не знает о существовании Hyper-V драйверов.
- Если у вас система начинает восстанавливать бэкап, но останавливается. Удалите все разделы на жестком (на котором восстанавливается бэкап) и попробуйте заново. Только не забывайте, что бэкап может быть битый и после удаления всех разделов на жестком у вас может ничего не остаться от старой информации.
- Если бэкап с загрузкой UEFI, а вы хотите восстановить на комп без UEFI, то не стоит тратить время. Скорее всего развернуть бэкап не получится.
- Бэкап с загрузкой UEFI и разделами GPT можно восстанавливать на машины с другим процессором / материнкой, а вот с разделами MBR формата и с загрузкой обычного BIOS на другой машине развернуть вряд ли получится. Ну у меня точно не получалось.
- Если бэкап пытаться развернуть на диск с меньшим объемом, то сделать это не получится. Даже если диск в бэкапе был почти пуст. В этом случае помогает восстановление на виртуальную машину с динамическим диском. Далее уменьшение этого диска и создание нового бэкапа. Но такое можно только с загрузчиком UEFI в бэкапе (почему, читаем предыдущий пункт).
- Стоит перед восстановлением бэкапа отключить лишние диски, чтобы не затереть информацию на них.
4. Особенности дедупликации
Можно дедуплицировать работающие виртуальные машины. Можно дедуплицировать бэкапы сегодняшнего дня и можно дедуплицировать бэкапы с историей. Все это дает большой положительный плюс к объему жестких дисков (как для HDD, так и SSD). Но не стоит забывать о некоторых вещах:
- Если дедупликация будет работать с дисками с объемом более чем 1 ТБ, то оптимизатор дедупликации будет использовать очень много памяти.
- Если дедупликация будет работать с сжатыми данными, но с объемом сжатого более чем 10 ТБ, то длительность работы оптимизатора дедупликации будет слишком большим. Такое может получиться, если просто копировать данные ежедневно на дедуплицированный диск в разные папки.
- Бэкапы на HDD хранить можно и даже нужно, а вот рабочие виртуальные машины хранить на HDD в количестве больше 5-10 не стоит. К дедупликации это относиться с той лишь стороны, что дедупликация таких рабочих виртуальных машин сведет производительность HDD в ноль.
5. Групповые политики
Вот тут можно долго и по-разному реализовывать установку скрипта бэкапа с помощью GPO. Но хотелось бы обратить внимание на важные моменты:
Резервного копирования виртуальных машин (ВМ) на Hyper-V без затрат на покупку лицензий предполагает использование Windows Server Backup. Windows Server Backup является встроенной компонентой системы, имеет как графический интерфейс, так и командную утилиту wbadmin.
Начиная с Windows Server 2012 (Hyper-V Server 2012) можно выбирать необходимые для резервного копирования ВМ, до 2012 нельзя было создавать резервные копии отдельных ВМ – копировались все вместе.
Или через PowerShell:
После установки можно создать резервную копию ВМ с разными настройками:
Про параметры и синтаксис wbadmin:
Создаем задание на резервную копию ВМ по расписанию через консоль Windows Server Backup.
Восстановление через утилиту или консоль:
восстановит из резервной копии созданный 20/09/2019 в 6:00 с диска F:
При все своей простоте и надежности бесплатное решение не может не обладать недостатками. Данное решение может устроить небольшие компании с 1-3 хостами и небольшим количеством ВМ. При росте количества ВМ и хостов становится сложно управлять резервным копированием.
Архивация виртуальных машин Hyper-V крайне важна. Все, кто сталкивался с отказом жесткого диска, это прекрасно понимают. В среде админов популярна шутка, что админы делятся на 3 категории - тех, кто делает бекапы, тех, кто не делает и тех, кто уже делает.
Программные ошибки - BSOD'ы, повреждение таблицы разделов - практически всегда можно вылечить, если знать как лечить и действовать аккуратно, а вот выхода из строя диска боятся все. Для восстановления потребуется время, нервы, диск-донор и круглая сумма денег. Это для физической машины.
Ну а повредить виртуальную машину еще проще - ведь это операционная система внутри файловой системы, которая сама внутри файла, который внутри другой файловой системы, которая в свою очередь внутри жесткого диска. Гораздо больше уровней для возникновения ошибки. Необходимость в архивации стало быть тоже значительно выше, чем у физической машины. RAID конечно же здесь помогает, но RAID сам по себе довольно-таки сложная штука и требует обслуживания и повышенного внимания. То есть использование RAID повышает надёжность, но не отменяет необходимость архивации. Кроме того был и остаюсь противником софтовых BIOS-RAID, интегрированных в материнскую плату.
Итак задача - архивировать виртуальные машины, работающие в гипервизоре Hyper-V.
Если физическую машину можно бекапить только изнутри, с помощью программ, либо же агентов-сервисов - не суть важно, а важно то, что в случае падения придется грузиться в специальную среду восстановления с носителя, то виртуальную машину можно бекапить как изнутри, так и из хостовой ОС. Бекап из хостовой ОС мне видится более предпочтительным, так как процесс архивации/восстановления более унифицирован и не зависит ни от типа виртуальной ОС, ни от ее состояния.
Поиск решения
Очень большие надежды возлагал я на 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'у - привет!).
Там есть полное описание параметров запуска HVBackup.exe и примеры по использованию. Стандартный скрипт архивации:
Параметр -a означает, что будут архивированы все VM на данном сервере Hyper-V или же можно указать машины явно:
VM1, VM2 - названия виртуальных машин, как они называются в Hyper-V. Также можно указать файл со списком VM:
В файле list.txt каждое название VM - с новой строки и файл нужно положить в папку с HVBackup.exe.
Затем сохраняем скрипт с расширением .cmd и создаём в Планировщике Windows новое задание с необходимым расписанием и запуском данного .cmd файла.
Архивация
По применению утилиты можно прочесть в первоисточнике, хотел лишь добавить свои впечатления. Запустил для проверки архивацию машины из командной строки и получил ошибку теневого копирования:
Оказывается для нормальной работы нужно чтобы на томе, где находятся виртуальные машины, были включены теневые копии. Не очень понятно, ведь сходный по функционалу wbadmin, работающий тоже через VSS, не требует чтобы теневые копии загрузочного раздела были включены. Ну да ладно, быстро разобрался и хорошо.
На создание архива Windows-машины весом 43GB ушло 50 минут. Архив создавался на внешнем USB-диске. Специально проверил скорость диска - 30Mib/s.
Жмет в zip, что хорошо. Архив получился 25GB. Степень сжатия гораздо меньше, чем у Acronis и Veem.
В общем и целом приемлемые показатели. Конечно нет и десятой доли функционала как у Veem'а, но дело свое утилита выполняет. Осталось накидать скрипт, выкладывать не буду, он такой же как в соседней заметке про архивацию физической машины и создать задание в планировщике.
Добавление от 18.03.2017
Не так давно делал ещё задания по архивации машин Hyper-V, HV Backup отлично отработал без включения теневых копий на томе. Для всех машин и в начальном, и в последующих случаях Backup для Integration Services был включен:
Читайте также: