Перенос виртуальной машины hyper v на vmware
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Конвертируем виртуальные машины VMWare в Hyper-V и обратно.
Работая с виртуализацией периодически возникает потребность в переносе виртуальных машин с одного типа гипервизора на другой. Так как каждая система виртуализации работает со своими форматами, то просто так перенести машину не удастся, потребуется преобразовать ее в формат нужного гипервизора. Сегодня мы расскажем, как это сделать для двух наиболее популярных систем виртуализации VMWare и Hyper-V.
Рассмотрим процесс на реальном примере. Один наш клиент приобрел коробочную версию «Мегаплан», который разработчики распространяют весьма оригинальным способом: в виде образа виртуальной машины формата Open Virtualization Format (OVF), который поддерживают VMWare и VirtualBox. Собственно, внутри виртуалки содержится Ubuntu 12.04 с настроенным веб-сервером, СУБД и прочими компонентами необходимыми для работы «Мегаплана», который представляет собой обычное веб-приложение. При этом лицензионное соглашение запрещает доступ к гостевой ОС.
Оставим за кадром лицензионную политику и удивимся только тому, что продавая, причем недешево, серверное ПО уровня предприятия, разработчики полностью игнорируют серьезные гипервизоры вообще, предлагая воспользоваться настольными гипервизорами второго типа.
Для первоначального развертывания воспользуемся любым продуктом 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, при этом указанные там параметры не догма, руководствуйтесь здравым смыслом и собственной оценкой необходимых ресурсов.
Не забудьте проверить и настроить специфичные для вашего гипервизора параметры, например, действия при запуске или завершении работы хоста. После чего можем запускать нашу виртуальную машину. Если все сделано правильно, то проблем не будет.
Что можно сделать еще? Если вы используете Hyper-V 3.0 и старше (доступны начиная с Windows Server 2012) то имеет смысл еще раз преобразовать виртуальный диск в новый формат VHDX. Для этого выключите виртуальную машину, перейдите в настройки диска и нажмите кнопку Правка.
В появившемся мастере выберите Преобразовать, укажите формат (VHDX) и тип (расширяемый) диска, а также его имя и расположение:
После нажатия на кнопку Готово начнется процесс преобразования диска, что может занять продолжительное время и потребовать дисковых ресурсов, поэтому лучше всего выполнять это действие в нерабочее время.
По окончании преобразования еще раз заходим в свойства жесткого диска и выбираем там VHDX образ, подтверждаем изменения и запускаем виртуальную машину. Убедившись, что все работает нормально, старый VHD диск можно удалить.
Конвертация Hyper-V виртуальных машин в VMWare производится аналогичным образом. Конвертируем виртуальный диск в VMDK, если использовался диск формата VHDX, то предварительно его следует преобразовать в VHD средствами Hyper-V аналогично тому как мы делали выше. Затем создаем в VMWare виртуальную машину для используемой гостевой системы с идентичными параметрами и в настройках диска указываем использовать сконвертитрованый нами VMDK диск. После запуска виртуальной машины не забываем установить пакет VMWare Tools необходимый для полноценной работы гостевой системы.
Конвертация виртуальных машин. Путь туда и обратно.
Опубликовано:
18 декабря 2017 в 08:14
Виртуальная машина, VMware, Hyper-V, VirtualBox. Знакомые вещи, не так ли?
А теперь представьте ситуацию: вы или ваша организация использует, к примеру, Hyper-V. Ваш партнер хочет передать вам на тестирование или для ознакомления какое-то решение, установленное и настроенное на виртуальной машине. Но так случилось, что партнер использует VMware. У вас возникает вопрос: как переделать виртуальную машину? А можно ли это вообще? Об этом и пойдет речь дальше.
Что же представляет из себя виртуальная машина? Вне зависимости от гипервизора, виртуальная машина состоит из двух частей: виртуальной машины (файла или набора файлов с описанием конфигурации, параметров запуска и другой служебной информации) и виртуального жесткого диска. Именно виртуальный жесткий диск в большинстве случаев и надо конвертировать. Именно на нем установлена операционная система и весь набор программного обеспечения.
А теперь важное лирическое отступление. После установки виртуальной машины гипервизор, в большинстве случаев, предлагает установить пакет программного обеспечения. Этот пакет повышает производительность виртуальной машины и ее управляемость. Так же он может содержать набор драйверов, оптимизированных для работы в виртуальной среде. Процесс конвертации подразумевает смену гипервизора. Поэтому все пакеты программного обеспечения, поставляемые гипервизором, с которого планируется переход, необходимо удалить. Сделать это лучше заранее, до конвертации.
Конвертация из VMware в Hyper-V
На момент написания этой статьи третья версия этой утилиты – последняя версия, доступная для скачивания. Подробное описание утилиты можно найти в библиотеке TechNet. Скачать утилиту можно в центре загрузки Microosoft.
Сторонние производители программного обеспечения не остались в стороне. Выпускаемые ими продукты превосходят средства, предлагаемые компанией Microsoft, как в скорости конвертации, так и в удобстве использования.
Для примера рассмотрим два программных продукта: StarWind V2V Converter и 5nine V2V Easy Converter.
StarWind V2V Converter позволяет конвертировать виртуальные жесткие диски форматов: vmdk (формат виртуальных жестких дисков VMware), vhd и vhdx (формат виртуальных жестких дисков Hyper-V) и формат img для поддержки продукта StarWind Virtual SAN™. Интерфейс программы и процесс использования предельно просты. Имеется визард, который проведет вас по всему процессу конвертации. Одной из особенностей работы программы является возможность после конвертации включить Windows Repair Mode. Это позволит системе автоматически адаптироваться к внесенным изменениям со стороны гипервизора. Так же стоит отметить что конвертация происходит в любом направлении.
5nine V2V Easy Converter отличается принципом работы. Он позволяет выполнять почти «живую» миграцию. Интерфейс так же прост и не должен вызывать затруднений. Для начала работы необходимо указать параметры подключения к серверу VMware. После подключения будет представлен список виртуальных машин, доступных для переноса. На следующем шаге необходимо указать параметры подключения к серверу Hyper-V, выделить на нем ресурсы переносимой виртуальной машине и начать процесс переноса. Этот программный продукт не позволит вам конвертировать непосредственно сам виртуальный жесткий диск, он позволит мигрировать виртуальную машину из одного гипервизора в другой.
Конвертация из Hyper-V в VMware
Для конвертации виртуальной машины из Hyper-V в VMware можно использовать уже рассмотренный в этой статье программный продукт StarWind V2V Converter. Но это не единственное решение. Как и у компании Microsoft, у VMware есть свой конвертер. Имя ему VMware vCenter Converter Standalone.
Это поистине многофункциональны продукт. Одна только инструкция к нему занимает 102 страницы печатного текста. Но не стоит отчаиваться! Для начинающих администраторов имеется простой и функциональный визард.
Конвертация из VirtualBox в VMware или в Hyper-V
Конвертация из VMware или Hyper-V в VirtualBox
Встроенный в VirtualBox конвертер позволяет преобразовывать виртуальные жесткие диски в обеих направлениях, а экспортировать виртуальные машины в формат OVA умеет не только VirtualBox, но и VMware. Поэтому процесс переноса или конвертации диаметрально противоположен процессу, описанному в предыдущем абзаце.
Вместо заключения
Изначально статья планировалась мной в большей степени как практическая. По мере написания я решил, что вся практическая часть легко ищется в интернете по ключевым словам. Поэтому статья приобрела в большей степени теоретический характер. В ней описаны не все способы и методы переноса виртуальных машин из одного гипервизора в другой. Я постарался описать самые популярные, доступные и реализуемые без обращения к командной строке.
С Hyper-V на VMware и обратно: конвертация виртуальных дисков
Периодически я слышу от практикующих инженеров странное: VMDK, VHD и VHDX – абсолютно разные форматы виртуальных дисков, чуть ли не закрытые, а конвертировать из одного в другое – долго и больно. Сегодня наглядно покажу, что это не так, разберу, как эти форматы соотносятся друг с другом и как делать быструю конвертацию при миграции с Hyper-V на VMware и обратно.
Немного теории. C точки зрения свойств, виртуальные диски делятся на два типа:
Форматы дисков
RAW – «сырой» образ любого диска. Это обычный контейнер, который не содержит никаких специфических заголовков и футеров и представляет образ диска «как есть». Если мы откроем такой образ HEX-редактором, то сразу увидим заголовки GPT/MBR и/или файловой системы. Точно такой же образ получается через команду dd в Linux. RAW в этом плане абсолютно честен с нами.
Начало файла RAW.
Конец файла RAW.
VMDK. VMware ESXi – обыкновенный RAW, где геометрия диска описывается в обычном текстовом файле-описателе (дескрипторе). Именно его имя мы видим в vSphere Console, когда подключаем виртуальный диск к виртуальной машине или просматриваем содержимое каталога на Datastore. VMware ESXi ничего не делает с образом. Совсем. Диск покоится себе и расширяется по мере необходимости. В лучших традициях VMware формат описателя очень простой:
И он не только простой, но и функциональный: достаточно сделать пометки в файле-описателе, чтобы расширить виртуальный диск до каких угодно поддерживаемых значений. Это позволяет заполнить диски нулями или пометить его как тонкий, без необходимости держать информацию о геометрии в заголовках диска.
Ниже представлены некоторые стандартные значения всех разделов дескриптора:
Раздел | Параметр | Описание | Значение |
Header (# Disk DescriptorFile) | version | Задает номер версии дескриптора. Обычно не меняется. | 1 (по умолчанию) |
CID | Content ID. Случайный 32-битный идентификатор диска, участвующий в построении дерева снапшотов. Является ParentCID для дочерних дельта-дисков. | Случайное 32-битное значение, генерируемое на момент создания. | |
parentCID | CID родительского диска. Если родительского диска нет, то выставляется флаг CID_NOPARENT (ffffffff). | Ffffffff (CID_NOPARENT) CID родительского диска. | |
createType | Указатель на тип диска, описываемого в дескрипторе (это вполне может быть и физический диск, и разностные диски, и даже массив дисков VMDK). Для ESXi набор свойств ограничен. | Для ESXi – vmfs (в случае виртуального диска) или vmfsRawDeviceMap и vmfsPassthroughRawDeviceMap (в случае RDM). | |
isNativeSnapshot | Помечает, какими средствами будет делаться снапшот: VMkernel или средствами СХД (VAAI). | no (VMkernel), yes (VAAI) | |
Extents (# Extent description) | Раздел содержит путь к диску, тип доступа и размер. В формате: . | ||
Access | Тип доступа к диску. | RW (чтение/запись) RO (только чтение) NOACCESS (доступ запрещен). | |
Size | Размер диска. | Указывается количество логических секторов виртуального диска. Вычисляется по формуле: / Подробнее о расчетах геометрии диска здесь. | |
Type of extent | Указатель на режим работы диска. | Может принимать значение FLAT, SPARSE, ZERO, VMFS, VMFSSPARSE, VMFSRDM, VMFSRAW. | |
Filename | Путь к файлу VMDK. | ||
Offset | Используется, если необходимо указать смещение начала данных гостевой ОС. Для виртуальных дисков, как правило, равно 0 (или не указывается). Для RDM может быть ненулевым. | Смещение в байтах относительно начала диска до начала блока данных. | |
Disk Database (# The Disk Data Base) | Описывает геометрию виртуального диска. | ||
ddb.adapterType | Тип виртуального SCSI-адаптера ВМ. | Поддерживаются только 3 типа: ide, buslogic, lsilogic. |
Причем адаптер VMware Paravirtual всегда помечается как lsilogic.
ddb.geometry.heads = «255»
ddb.geometry.sectors = «63»
0 или отсутствует – толстый диск
Описание всех значений можно посмотреть в спецификации формата: 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 Мб вперед и дописав в это место заголовок.
По этому же принципу работает утилита vhdxtool.exe. Однако при этом преобразовании мы не получим красивую картинку в виде 4 Мбайт заголовка и RAW. Диск будет виден и даже будет корректно работать как VHDX, но будет и много «мусора» из нулей, появившихся из-за манипуляций со смещениями (offsets). Диск будет не оптимизирован. ВМ с таким диском рекомендуется смигрировать на другой том или оптимизировать через командлеты Convert-VHD или Optimize-VHD. Если этого не сделать, диск будет занимать больше места, чем должен, и, возможно, медленнее работать.
Однако в сценариях миграции с VMware на Hyper-V эта утилита незаменима, так как позволяет провести преобразование на месте, без необходимости побайтового считывания исходного диска и создания рядом копии. Все шероховатости будут сглажены при первом же Storage Live Migration.
Вывод: толстые диски форматов VMDK, VHD, VHDX на деле мало чем отличаются друг от друга. В их основе RAW c различными добавками. Тем же HEX-редактором или функциями ОС для работы с файловой системой мы можем за пару секунд превратить 10 Тб VMDK или VHDХ в диск целевого гипервизора.
Давайте на практике посмотрим, как VMware Exsi справится с VHD.
Футер отрезался.
Тот же самый фокус работает и для RAW, созданных через dd. И даже в обратном направлении. Таким образом вы видите, что VMware ESXi принимает диски с футерами или RAW, созданные сторонними средствами.
Если не хочется фокусов, то можно воспользоваться инструментами ниже.
Подведем итоги. Различные форматы толстых виртуальных дисков не такие уж разные. В основе всего RAW с различными “добавками”.
Конвертация форматов виртуальных дисков — это не страшно, и, как я показал, иногда можно обходиться даже без нее.
Основной профит всего этого — сокращение времени миграции с Hyper-V на VMware и обратно и времени простоя ВМ при миграции. В DataLine мы такое практикуем с простоем ВМ менее 30 минут. Рекорд же — 40 секунд простоя ВМ при миграции между гипервизорами.
Только помните, что при миграции между разными гипервизорами одной конвертации недостаточно. Как минимум нужно предварительно поставить компоненты интеграции целевого гипервизора, удалить или отключить запуск компонентов исходного гипервизора, удалить виртуальные устройства исходного гипервизора и т.д. Но это уже совсем другая история, о которой я тоже могу рассказать.
Конвертация Hyper-V в VMware
Процесс установки powershell достаточно прост, для этого откройте консоль модуля с правами администратора:
В случае если вы используете версию Windows 8.1 или Server 2012 R2 введите следующую команду:
Add-WindowsFeature RSAT-Hyper-V-Tools –IncludeAllSubFeature
Если это Windows 10:
После этого вам потребуется дать свое подтверждение на смену политики по умолчанию:
Чтобы приступить к конвертации корректно мы должны подготовить виртуальную машину:
Обратите внимание, что для старых ОС семейства Windows, например Server 2003, необходимо проверить, что драйвер SCSI инициализирован. Данная проблема актуальна для всех виртуальных машин первого поколения. Это можно проверить следующим образом: если установленная на диск операционная система подключена к шине-контроллеру IDE (других дисков нет, либо они так же подключены к этому же контроллеру), подключите хотя бы один диск через контроллер SCSI к этой ВМ и проверьте, что он инициализирован.
Требования к файлам для виртуализации (ovf/ova):
Если ваша ВМ работает не на том же компьютере, на котором вы будете делать конвертацию, то выполните подключение к вашему серверу Hyper-V.
Выключите вашу виртуальную машину, после чего зайдите в меню ВМ и экспортируйте ее, выбрав директорию для хранения:
Скрипт для конвертации Hyper-V вы можете скачать с нашего репозитория.
Запустим PowerShell с правами администратора. После чего откройте папку converter, которая содержит все необходимое.
Процесс будет осуществлять скрипт Convert-VM.ps1
— OVAPath— путь к папке, в которую будет сконвертирована виртуальная машина в формате OVA (так же папка может быть создана автоматически).
В зависимости от объема файлов вашей ВМ выполнения процессов конвертации может занять продолжительное время. После того, как вы дождетесь завершения скрипт укажет путь к OVA файлу.
Возможность создания OVA из файла ВМ
Даже имея только файл виртуального диска вы можете превратить его в шаблон OVA вы можете воспользоваться другими параметрами для скрипта:
Convert-VM.ps1 –VHDPath –OVAPath [–CPU ] [–Memory ] [ ]
OVAPath – путь к папке в которой находится OVA файл виртуальной машины;
VHDPath – путь к вашему файлу виртуального диска в формате vhd или vhdx.
Memory – память виртуальной машины в мегабайтах, 1024 по умолчанию;
CPU – количество процессоров виртуальной машины, от одного процессора.
После выполнения всех действия скрипт также укажет вам путь к OVA-файлу
Стоит отметить, что есть и другие способы конвертации, но мы рассмотрели более логичный и понятный. Мы с радостью поможем вам с любыми вопросами. Ждем ваши обращения в нашу службу технической поддержки.