Как из vhdx сделать виртуальную машину hyper v
Конвертируем виртуальные машины VMWare в Hyper-V и обратно.
Работая с виртуализацией периодически возникает потребность в переносе виртуальных машин с одного типа гипервизора на другой. Так как каждая система виртуализации работает со своими форматами, то просто так перенести машину не удастся, потребуется преобразовать ее в формат нужного гипервизора. Сегодня мы расскажем, как это сделать для двух наиболее популярных систем виртуализации VMWare и Hyper-V.
Любая виртуальная машина, вне зависимости от платформы, состоит из двух основных частей: собственно, виртуальной машины - текстового или XML-файла с описанием ее конфигурации и виртуального жесткого диска. Переносить саму виртуальную машину не имеет никакого смысла, мы же не переносим железо, если нам надо запустить систему на другом ПК, достаточно перенести виртуальный диск.
Форматы виртуальных дисков у разных гипервизоров также различны, однако это не представляет сложности - достаточно использовать специализированное ПО для конвертации. Единственная тонкость - гостевая ОС должна поддерживаться обоими типами гипервизора. В противном случае придется предпринимать дополнительные меры для обеспечения нормальной работы, однако эта тема выходит за рамки данной статьи.
Рассмотрим процесс на реальном примере. Один наш клиент приобрел коробочную версию "Мегаплан", который разработчики распространяют весьма оригинальным способом: в виде образа виртуальной машины формата Open Virtualization Format (OVF), который поддерживают VMWare и VirtualBox. Собственно, внутри виртуалки содержится Ubuntu 12.04 с настроенным веб-сервером, СУБД и прочими компонентами необходимыми для работы "Мегаплана", который представляет собой обычное веб-приложение. При этом лицензионное соглашение запрещает доступ к гостевой ОС.
Оставим за кадром лицензионную политику и удивимся только тому, что продавая, причем недешево, серверное ПО уровня предприятия, разработчики полностью игнорируют серьезные гипервизоры вообще, предлагая воспользоваться настольными гипервизорами второго типа.
Если с VMWare это не составляет особых проблем, OVF импортируют все ее продукты "из коробки", то владельцам Hyper-V повезло меньше, импорт OVF возможен только через модуль к System Center - Virtual Machine Manager. Поэтому придется идти другим путем - конвертацией виртуальной машины формата VMWare.
Для первоначального развертывания воспользуемся любым продуктом VMWare, с помощью которого произведем импорт OVF файла в виртуальную машину. Затем, не запуская ее, внимательно изучим настройки, особенно в той части, которые касаются выделяемых ресурсов и сети.
Если виртуальная машина уже работала на платформе VMWare (как чаще всего и бывает), то удаляем из нее VMWare Tools и выключаем машину.
Теперь можно приступать к конвертации виртуального диска. Для этого воспользуемся бесплатной утилитой StarWind V2V Converter. Ее интерфейс и использование предельно просты. Выберем исходный виртуальный диск (файл с расширением vmdk).
Как видим, это расширяемый диск размером 97,7 ГБ, теперь выберем необходимый формат, для Hyper-V это формат MS Virtual PC. Нам доступны два варианта диска: расширяемый (growable) и pre-allocated, когда место выделяется на диске сразу. Нас интересует первый вариант.
По окончании конвертации в папке с виртуальной машиной появится второй файл виртуального диска в формате Hyper-V.
Его следует скопировать отсюда и разместить в хранилище виртуальных дисков Hyper-V.
Теперь создадим новую виртуальную машину Hyper-V первого поколения и в опциях выбора жесткого диска укажем на сконвертированный файл.
После создания перейдем к настройкам и выделим ресурсы согласно тем требованиям, которые были в настройках машины в VMWare, при этом указанные там параметры не догма, руководствуйтесь здравым смыслом и собственной оценкой необходимых ресурсов.
В появившемся мастере выберите Преобразовать, укажите формат (VHDX) и тип (расширяемый) диска, а также его имя и расположение:
После нажатия на кнопку Готово начнется процесс преобразования диска, что может занять продолжительное время и потребовать дисковых ресурсов, поэтому лучше всего выполнять это действие в нерабочее время.
По окончании преобразования еще раз заходим в свойства жесткого диска и выбираем там VHDX образ, подтверждаем изменения и запускаем виртуальную машину. Убедившись, что все работает нормально, старый VHD диск можно удалить.
Конвертация Hyper-V виртуальных машин в VMWare производится аналогичным образом. Конвертируем виртуальный диск в VMDK, если использовался диск формата VHDX, то предварительно его следует преобразовать в VHD средствами Hyper-V аналогично тому как мы делали выше. Затем создаем в VMWare виртуальную машину для используемой гостевой системы с идентичными параметрами и в настройках диска указываем использовать сконвертитрованый нами VMDK диск. После запуска виртуальной машины не забываем установить пакет VMWare Tools необходимый для полноценной работы гостевой системы.
Периодически я слышу от практикующих инженеров странное: VMDK, VHD и VHDX – абсолютно разные форматы виртуальных дисков, чуть ли не закрытые, а конвертировать из одного в другое – долго и больно. Сегодня наглядно покажу, что это не так, разберу, как эти форматы соотносятся друг с другом и как делать быструю конвертацию при миграции с Hyper-V на VMware и обратно.
Немного теории. C точки зрения свойств, виртуальные диски делятся на два типа:
- тонкие (thin disk, dynamic disk) и
- толстые (thick disk, fixed disk). Все остальное — разностные, thick provisioned lazy- zeroed – лишь вариации на тему.
Форматы дисков
Начало файла RAW.
Конец файла RAW.
VMDK. VMware ESXi – обыкновенный RAW, где геометрия диска описывается в обычном текстовом файле-описателе (дескрипторе). Именно его имя мы видим в vSphere Console, когда подключаем виртуальный диск к виртуальной машине или просматриваем содержимое каталога на Datastore. VMware ESXi ничего не делает с образом. Совсем. Диск покоится себе и расширяется по мере необходимости. В лучших традициях VMware формат описателя очень простой:
И он не только простой, но и функциональный: достаточно сделать пометки в файле-описателе, чтобы расширить виртуальный диск до каких угодно поддерживаемых значений. Это позволяет заполнить диски нулями или пометить его как тонкий, без необходимости держать информацию о геометрии в заголовках диска.
Ниже представлены некоторые стандартные значения всех разделов дескриптора:
Описание всех значений можно посмотреть в спецификации формата: VMware Virtual Disk Format 1.1
VHD. Толстый VHD – тот же самый RAW, но с 512-байтным футером, где описывается геометрия диска. Какого-то отдельного файла-описателя у виртуальной машины Microsoft Hyper-V нет. Описание геометрии диска занимает 4 байта. Собственно, отсюда ограничение на размер диска в 2 Тб.
Футер. Последние 512 байт диска.
Самое интересное, что если создать файл-описатель и подсунуть в ESXi VHD-диск с футером, то гипервизор VMware проигнорирует этот футер и примет VHD как родной.
При Storage vMotion с конвертацией диска в тонкий он просто отрежет этот футер, и на выходе мы получим тот же RAW без нулей в конце. А при конвертации в толстый диск – честный RAW. Это я и собираюсь продемонстрировать чуть позже.
VHDX. Вся информация о геометрии диска хранится в первых 4096 Кбайтах виртуального диска – в области заголовка.
Общая схема толстого диска VHDX.
Что представляет из себя эта область? В ней содержатся две копии заголовков со своими логами, BAT и область метаданных общие.
Логическая структура заголовка диска.
В единицу времени только одна копия заголовка активна. Это обеспечивает определенный уровень отказоустойчивости заголовка в случае незапланированных прерываний операций чтения/записи. После каждой операции I/O копия реплицируется, и происходит переключение на нее.
Макет области заголовка.
Для конвертации VHDX в RAW нам всего-то нужно отрезать первые 4096 KB.
Начало данных на 5 МБ.
Внимательный читатель, конечно же, скажет: ок, Женька, а слабо RAW конвертнуть в VHDX? На что я отвечу: зависит от файловой системы и от того, насколько она позволяет записывать данные в начало файла. Вручную на файловой системе NTFS это можно сделать, сместив в MFT начало файла на 4 Мб вперед и дописав в это место заголовок.
Однако в сценариях миграции с VMware на Hyper-V эта утилита незаменима, так как позволяет провести преобразование на месте, без необходимости побайтового считывания исходного диска и создания рядом копии. Все шероховатости будут сглажены при первом же Storage Live Migration.
Вывод: толстые диски форматов VMDK, VHD, VHDX на деле мало чем отличаются друг от друга. В их основе RAW c различными добавками. Тем же HEX-редактором или функциями ОС для работы с файловой системой мы можем за пару секунд превратить 10 Тб VMDK или VHDХ в диск целевого гипервизора.
Давайте на практике посмотрим, как VMware Exsi справится с VHD.
-
В качестве примера я создал образ Windows Server с помощью Convert-WindowsImage с инъекцией драйверов VMware и параметрами:
- OS Version: Windows Server 2019 Standard,
- Disk Type: Fixed,
- Disk Layout: GPT,
- Disk Size: 30GB.
Если не хочется фокусов, то можно воспользоваться инструментами ниже.
Исходный формат | Целевой формат | Инструменты | Пример команды |
VHD | VHDX | vhdxtool.exe | vhdxtool upgrade -f .vhd |
VMDK (RAW) | VHD | vhdtool.exe | vhdtool /convert .vmdk |
VMDK (RAW) | VHDX | vhdtool.exe vhdxtool.exe | vhdtool /convert .vmdk |
Подведем итоги. Различные форматы толстых виртуальных дисков не такие уж разные. В основе всего RAW с различными “добавками”.
Конвертация форматов виртуальных дисков — это не страшно, и, как я показал, иногда можно обходиться даже без нее.
Основной профит всего этого — сокращение времени миграции с Hyper-V на VMware и обратно и времени простоя ВМ при миграции. В DataLine мы такое практикуем с простоем ВМ менее 30 минут. Рекорд же — 40 секунд простоя ВМ при миграции между гипервизорами.
Только помните, что при миграции между разными гипервизорами одной конвертации недостаточно. Как минимум нужно предварительно поставить компоненты интеграции целевого гипервизора, удалить или отключить запуск компонентов исходного гипервизора, удалить виртуальные устройства исходного гипервизора и т.д. Но это уже совсем другая история, о которой я тоже могу рассказать.
Советы и хитрости
Если вы хотите использовать или перенести виртуальные машины VirtualBox на Hyper-V на серверах Windows 10 или Windows, следуйте этому руководству. Мы не можем обсуждать методы прямого экспорта или импорта, поскольку оба продукта работают на разных платформах. Нам нужно преобразовать жесткий диск виртуальной машины из VirtualBox, а затем подключить к Hyper-V.
В качестве альтернативного метода мы можем использовать любые инструменты P2V для прямого преобразования виртуальной машины VirtualBox в Hyper-V (учитывая, что виртуальная машина VirtualBox работает на физическом оборудовании). Но в этом руководстве мы преобразуем файл VDI в VHD для выполнения этой задачи.
Microsoft Hyper-V не поддерживает тип файла VDI (файл жесткого диска VirtualBox), поэтому его следует преобразовать в VHD (формат виртуального диска MS) или VHDX. Здесь я собираюсь показать, как преобразовать рабочую виртуальную машину Windows из VirtualBox в VHD и подключить к Hyper-V.
Для этого преобразования нам не нужно какое-либо стороннее программное обеспечение, поскольку встроенная команда VirtualBox хорошо справится с этой задачей.
Шаги по преобразованию VDI в VHD (VirtualBox в Hyper-V)
Примечание. Перед началом миграции рекомендуется удалить гостевые дополнения VirtualBox с виртуальной машины. Это может вызвать проблемы на платформе Hyper-V.
Снимки VirtualBox хранят отдельные файлы VDI для каждой машины. Поэтому, если вы конвертируете исходный базовый файл VDI, вы не получите последнее состояние виртуальной машины. Кроме того, вы не можете конвертировать файлы снимков VDI отдельно. Поэтому рекомендуется удалить снимки, которые объединят текущее состояние машины с единственным исходным файлом на диске.
Мы можем конвертировать двумя способами:
- Использование диспетчера VirtualBox Media
- С помощью инструмента командной строки.
VDI в VHD с помощью VirtualBox Media Manager
1) Щелкните Файл в VirtualBox и откройте Диспетчер виртуальных носителей.
Очевидно, что виртуальную машину следует выключить, прежде чем продолжить.
2) Выберите соответствующий диск, подключенный к виртуальной машине, которую вы хотите перенести. Щелкните Копировать.
3) В следующем варианте копирования диска выберите формат файла VHD в качестве вывода.
4) Следующий экран дает возможность сделать диск динамическим или фиксированным. Если вы знакомы с платформой виртуализации, вы должны знать о них. Для тестирования и уменьшения использования диска вы можете попробовать динамически выделяемые диски. Для производства и использования с высокой степенью использования диска всегда используйте вариант с фиксированным диском.
5) Выберите путь к файлу VHD и начните копирование. Он начнет копирование / клонирование выбранного файла VDI в формат диска VHD.
Теперь у вас есть файл VHD, преобразованный из VDI с помощью экранов графического интерфейса.
Преобразование VDI в VHD в командной строке (инструмент VirtualBox)
1) После выполнения предварительных условий (таких как удаление гостевых дополнений, удаление снимков и выключение виртуальной машины) выполните следующую команду из места установки VirtualBox.
vboxmanage clonehd WinXP.vdi F: \ winxp.vhd —format VHD
WinXP.vdi — Рабочий жесткий диск ВМ
F: \ winxp.vhd — Место назначения и имя файла VHD
Приведенная выше команда вернула следующую ошибку.
2) Это связано с тем, что он подключен к одной виртуальной машине и указан в диспетчере виртуальных носителей. Освободите и удалите диск из диспетчера виртуальных носителей ( Примечание. Не удаляйте файл VDI с физического жесткого диска).
VDI в VHD, затем VHDX
Если вам нужен последний и рекомендуемый формат файла Hyper-V, например VHDX, вы можете преобразовать VHD в VHDX с помощью дисковой утилиты Hyper-V.
Шаги просты, и вы можете обратиться к этому руководству.
Итак, в основном вам нужно преобразовать VDI в VHD с помощью инструментов VirtualBox, а затем с VHD в VHDX с помощью инструмента диска Hyper-V.
1) Подключите диск к виртуальной машине Hyper-V
Помните, как упоминалось ранее, это не способ экспорта-импорта. Мы только что преобразовали диск в VHD, совместимый с Microsoft Hyper-V.
а) Создайте новую виртуальную машину в Hyper-V. Настройте конфигурацию оборудования по своему усмотрению, но вместо создания нового виртуального жесткого диска вы должны присоединить (просмотреть) преобразованный VHD или VHDX к конфигурации виртуальной машины.
2) Включите виртуальную машину. Поскольку аппаратная платформа (VirtualBox на Hyper-V ) изменена для операционной системы, она может устанавливать дополнительные драйверы и инструменты для своей платформы. При необходимости перезапустите виртуальную машину. Обязательно установите гостевые дополнения Hyper-V, чтобы получить лучшую производительность и возможности.
Вот снимок экрана, на котором одни и те же виртуальные машины работают с обоими программами виртуализации рабочего стола.
Преобразование этой рабочей машины (2 ГБ VDI) в Virtual PC не заняло 5 минут. Некоторые блоги и форумы упоминали о стороннем программном обеспечении для преобразования VDI в VHD, но это можно легко сделать с помощью команды VirtualBox, как показано здесь. Надеюсь, это руководство будет вам полезно.
Хочу поделиться своим опытом переноса. Нужно было перенести Windows 2008 Enterprise в среду Hyper-V.
Сначала предполагал использовать утилиту Disk2vhd, но потом был установлен Acronis Backup Advanced и я воспользовался его встроенной возможностью при создании бекапа конвертировать бекап в виртуальную машину. Для этого достаточно при настройке свойств задания резервного копирования для пункта "Преобразование в виртуальную машину" выбрать Преобразовать, затем выбрать тип машины и месторасположение, где будут созданы файлы.
Не всегда импорт возможен. Так при импорте между хостами Hyper-V 2008/2008 R2 проблем нет, но если переносить с хоста Hyper-V 2008/2008 R2 на хост Hyper-V 20012 R2 и выше - непосредственно при самом импорте не будет найдено доступных машин для импорта. Решение такое:
Между Hyper-V 2012 R2/2016 и обратно ещё пока импортировать VM не пробовал.
Проблемы
но это ничего не дало. Далее при просмотре Диспетчера устройств обнаружилось, что устройство шина VMBus с восклицательным знаком, а состояние устройства - "Не найдены свободные ресурсы, которые устройство может использовать". Помогла эта статья MS. После выполнения указанных в статье действий и перезагрузки, сразу заработала мышь, появилась виртуальная сетевая карта и виртуальный видеоадаптер.
Дальше - нет доступа к сети, искал, искал, нашёл - криво создался виртуальный коммутатор (в Hyper-V 2008 R2, куда осуществлялся перенос, он называется Виртуальная сеть ), оказывается и такое бывает ?
Следующая трабла - не подключается сеанс RDP с других машин. Нашёл - в Конфигурации служб терминалов, в свойствах подключения (имя по умолчанию TCP-RDP), на вкладке Сетевой адаптер - пусто, и сразу выпрыгивает ошибка - "Средству настройки узла сеансов не удалось получить свойства этого подключения. Подключение удалено или его внутреннее состояние повреждено", выбрать новый адаптер при этом нельзя, удалить подключение тоже нельзя - ошибка. Удалось удалить через реестр по адресу:
Отсюда понятно, что перед конвертацией сервера в виртуальную машину эту настройку нужно снять с конкретного сетевого адаптера и выставить настройку - "Все сетевые адаптеры настроены для этого протокола":
Ну и последний пункт переноса - удаление лишних теперь программ и драйверов.
Выводы
- Для Windows 2008 в msconfig отметить чекбокс "Определить HAL";
- Если это сервер RDP, то в Конфигурации служб терминалов выставить "Все сетевые адаптеры настроены для этого протокола".
При соблюдении этих условий перенос пройдем максимально гладко.
Следующим этапом планирую опробовать для архивирования виртуальных машин прекрасный по отзывам Veem Backup Free Edition.
Читайте, как восстановить виртуальную машину Hyper-V которая удалена или содержимое диска виртуальной машины Hyper-V. Какие встроенные инструменты виртуальной машины или сторонние программы использовать для её восстановления. Программы для создания виртуальных машин предназначены для создания на одном компьютере, кроме основной операционной системы, ещё одной или нескольких виртуальных машин с собственными независимыми операционными системами и дисками, место под которое выделяется на основном диске компьютера.
Сторонних программ для виртуализации существует много, но самыми популярными среди пользователей являются VMware Workstation и Oracle VirtualBox. Для возможности виртуализации собственных операционных систем компанией Microsoft был также разработан инструмент – Windows Virtual PC. Но, в Windows 10 уже представлено приложение виртуализации нового поколения – Диспетчер Hyper-V.
Hyper-V
Диспетчер Hyper-V удобен в работе, но его единственным недостатком есть возможность создания виртуальных машин только с операционными системами Windows.
Поддержка виртуальных машин с помощью инструмента Hyper-V доступна в версиях Windows 10 Pro и Enterprise. По умолчанию она не активирована и для её использования, инструмент необходимо активировать и подключить.
Перейдите в Панель управления / Программы и компоненты / Включение или отключение компонентов Windows
В открывшемся окне компонентов Windows найдите пункт Hyper-V, поставьте галочки возле каждого подпункта и нажмите OK
Системные файлы виртуальной машины Hyper-V
В отличии от других менеджеров виртуальных машин, Hyper-V не сохраняет все файлы виртуальной машины (системные файлы и файл виртуального диска) в одну папку. Они хранятся в разных местах:
диск виртуальной машины Hyper-V по умолчанию сохраняется приложением в папку:
C:\Users\Public\Documents\Hyper-V\Virtual hard disks
Другие файлы виртуальной машины, включая конфигурационные файлы и снэпшоты, в папку:
C:\ProgramData\Microsoft\Windows\Hyper-V
Эти папки задаются инструментом по умолчанию, но при желании расположение данных папок можно изменить.
Следует отметить, что основными файлами, отвечающими за конфигурацию и данные виртуальной машины, и таким образом за её работоспособность, есть:
- *.vhdx – файл диска виртуальной машины. Имеет название, которое было присвоено виртуальной машине при её создании. Место расположения по умолчанию:
C:\Users\Public\Documents\Hyper-V\Virtual hard disks - *.vmcx – файл параметров конфигурации виртуальной машины. Место расположения по умолчанию:
C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
В случае восстановления именно этих файлов, возможно восстановить работоспособную виртуальную машину, включая все файлы из её диска.
Как восстановить виртуальную машину Hyper-V, которая удалена
Функция Экспорта/Импорта виртуальной машины
На случай, если пользователь использует виртуальную машину Hyper-V для работы с важными данными или она имеет для него ценность по другим причинам, компанией Microsoft предусмотрена возможность создания резервной копии виртуальной машины. Для этого предназначены функции Экспорта и Импорта виртуальной машины с помощью Диспетчера Hyper-V.
Чтобы экспортировать виртуальную машину:
Папка с экспортированной копией виртуальной машины будет иметь следующий вид
Причём:
Snapshots – папка с файлами снимков виртуальной машины (в случае, если они создавались);
Virtual Hard Disks – папка с файлами дисков виртуальной машины;
Virtual Machines – папка с файлами конфигурации виртуальной машины.
Чтобы импортировать виртуальную машину:
Импортируйте виртуальную машину следуя пунктам мастера
Восстановление виртуальной машины с Hetman Partition Recovery
Если по каким-то причинам из компьютера пользователя или другого носителя информации удалена или утеряна виртуальная машина, которую есть необходимость вернуть, то сделать это можно восстановив файлы диска и конфигурации виртуальной машины, после чего импортировать их в Hyper-V используя функцию Импорта виртуальных машин.
Запустите Hetman Partition Recovery и просканируйте с её помощью диск на котором хранились файлы виртуальной машины
Перейдите с помощью программы в папки хранения файлов дисков и конфигурации виртуальной машины и восстановите их
Импортируйте только что восстановленную виртуальную машину в Hyper-V и запустите её.
Как восстановить содержимое диска виртуальной машины Hyper-V
Как мы уже оговаривали, все файлы, которые сохраняются на дисках виртуальной машины, располагаются в .vhdx файлах виртуального диска. Программа для восстановления данных жесткого диска Hetman Partition Recovery имеет функцию монтирования виртуальных дисков и восстановления данных из них.
Если по каким-то причинам ваша виртуальная машина потеряла работоспособность, а на её дисках хранились важные файлы – их можно восстановить. Для этого:
Запустите Hetman Partition Recovery и смонтируйте диск виртуальной машины (eсли их несколько, можете смонтировать все)
Просканируйте диск с помощью программы кликнув на нём в менеджере дисков
В результате анализа программа отобразит дерево каталогов сканируемого диска. Найдите и восстановите необходимые файлы.
Как восстановить файл диска виртуальной машины Hyper-V, из самой виртуальной машины
В результате проведённых экспериментов было обнаружено, что файлы, которые удалены или утеряны внутри виртуальной машины восстановлению не подлежат.
Автор: Vladimir Mareev, Технический писатель
Владимир Мареев - автор и переводчик технических текстов в компании Hetman Software. Имеет тринадцатилетний опыт в области разработки программного обеспечения для восстановления данных, который помогает ему создавать понятные статьи для блога компании. Спектр публикаций довольно широк и не ограничивается только лишь темой программирования. Статьи включают также разнообразные обзоры новинок рынка компьютерных устройств, популярных операционных систем, руководства по использованию распространенных и специфических программ, примеры решений возникающих системных или аппаратных проблем и многие другие виды публикаций. Подробнее
Читайте также: