Vhd в vmdk время конвертирования. Преобразование виртуальных жестких дисков VHD и VHDX средствами Hyper-V и программой StarWind V2V Converter. Ключи командной строки

Сегодня хотим поведать о том, как конвертировать образы дисков виртуальных машин из одного формата в другой. Допустим у нас есть виртуальная машина, развернутая в среде виртуализации VMware, а мы хотим импортировать её в среду Hyper-V. Или же вендор выпускает дистрибутивы только для Hyper-V, а нам обязательно нужно развернуть машину в VMware, потому что у нас вся сеть на нем. Если ты столкнулся с такой проблемой, то обязательно дочитай эту статью и ты найдёшь решение.

Процесс

Существует несколько форматов образов виртуальных жёстких дисков, которые поддерживаются разными средами виртуализации. Рассмотрим некоторые из них:

  • VMDK (Virtual Machine DisK) - формат образа виртуального жёсткого диска для виртуальных машин, разработанный VMware
  • VHD (Virtual Hard Disk) - формат файла, использующийся для хранения образов операционных систем, разработанный компанией Connectix, которая позднее была куплена Microsoft и теперь используется для образов Hyper-V. VHDX тоже самое, только все пространство на диске должно быть задано сразу.
  • VDI (Virtual Disk Images) - формат образа жёсткого диска гостевых виртуальных машин VirtualBox.

Если ты используешь VirtualBox - поздравляю, ты можешь взять любой из имеющихся форматов и создать виртуальную машину.

Но так уж получилось, что форматы VHD и VMDK несовместимы между собой. Поэтому, чтобы можно было использовать VMDK в Hyper-V, а VHD в VMware, их сначала нужно переконвертировать.

Итак, допустим у нас есть виртуальная машина VMware с образом жёсткого диска LOCAL-VM-disk1.vmdk , который находится в папке C:\VMDKs . Для того, чтобы перенести его в Hyper-V, создадим папку, куда будет отправлен наш сконвертированный файл VHD – C:\VHDs . После этого, скачаем специальную программу от Microsoft - Microsoft Virtual Machine Converter 3.0, она доступна по ссылке https://www.microsoft.com/en-us/download/details.aspx?id=42497 .

После нажатия на кнопку Download , нам предложат скачать 2 файла – саму программу и описание команд. Установите программу.


Прежде чем продолжить, убедитесь, что версия PowerShell, которая у вас установлена 3 или выше. Проверить это можно если ввести команду $PSVersiontable


Если версия ниже 3 – обновите PowerShell, если 3 или выше, то продолжаем. Для начала, необходимо указать путь до скрипта конвертера, для этого вводим команду:

Import-Module ‘C:\Program Files\Microsoft Virtual Machine Converter\MvmcCMdlet.psd1’

Расположение скрипта может отличаться от C:\Program Files\Microsoft Virtual Machine Converter\, всё зависит от того, какой путь был указан при установке программы

Команда должна выполниться без каких-либо ошибок. Если ошибки всё же появились – проверьте расположение скрипта и правильность ввода. Ну или пишите вывод ошибки в комментарии – мы постараемся помочь:)

Теперь можно приступать к конвертированию. Для этого введите следующую команду:

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\VMDKs\LOCAL-VM-disk1.vmdk”-DestinationLiteralPath “C:\VHDS\” -VhdType DynamicHardDisk -VhdFormat vhd

  • C:\VMDKs\LOCAL-VM-disk1.vmdk - Путь к конвертируемому образу формата VMDK
  • C:\VHDS\ - Папка, куда будет помещен сконвертированный образ формата VHD

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

Многие пользователи, занимающиеся тестированием различных платформ виртуализации, особенно в крупных организациях, сталкиваются со следующей проблемой. Используются виртуальные машины на платформах различных вендоров (VMware vSphere и Microsoft Hyper-V, например), а потом эти тестовые машины сами собой входят в производственную среду. Потом компания принимает решение использовать одну платформу в рамках предприятия — и встает проблема конвертации виртуальных машин VMware в формат Hyper-V или наоборот.

Сделать это можно с помощью продуктов от самих этих вендоров, но они не всегда удобны, просты в обращении и бесплатны. А вот у компании StarWind есть полностью бесплатный продукт для преобразования виртуальных дисков между форматами VMDK и VHD — StarWind V2V Converter . Работать с данной программой просто и удобно, а главное быстро. Данный продукт не вносит изменений в исходный образ, а также осуществляет надежное поблочное копирование в целевой образ виртуального диска.

Конвертация файла из vmdk в vhd

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

Для конвертации виртуального диска скачиваем и устанавливаем программу StarWind V2V Converter себе на компьютер.

Запускаем программу StarWind V2V Converter.

Выбираем исходный виртуальный диск (файл с расширением vmdk).

Как видим, это расширяемый (growable) диск размером 17 ГБ.

Теперь выберем необходимый нам формат для Hyper-V:

Нас интересуют два варианта диска: расширяемый (growable) и pre-allocated, когда место выделяется на диске сразу. Выбираем вариант Microsoft VHD growable image .

Если все ОК, то нажимаем «Next» и программа запускает процесс конвертации.

Как сконвертировать VHD в VHDX

VHDX — это новый формат виртуальных жестких дисков, появившийся в Windows Server 2012. Диски формата VHDX обладают рядом преимуществ, и сегодня я опишу несколько способов сконвертировать диск из формата VHD в VHDX.

Для начала несколько слов о преимуществах нового формата:

В формате VHDX можно создавать диски размером до 64ТБ, против максимум 2ТБ у VHD;
VHDX поддерживает работу с 4КБ секторами. Это позволяет хранить VHDX-файлы на дисках большого размера (больше 2ТБ), использующих Advanced Format (разбиение на физические сектора размером 4КБ);
Формат VHDX является журналируемым. Все изменения в метаданных сначала записываются в зону журнала, а уже потом в саму таблицу метаданных. Если во время изменения таблицы произойдет сбой записи, то в журнале остаются незавершенные транзакции, которые позволят завершить изменения в таблице и вернуть целостность файлу. Это делает формат VHDX более отказоустойчивым и предотвращает потерю данных в случае отключения питания;
Поддерживаются пользовательские метаданные. В формате VHDX имеется специальный пользовательский раздел, в котором можно хранить данные о содержимом виртуального диска, например информацию об установленной операционной системе и приложениях. Пользовательский раздел позволяет хранить любые описательные метаданные;
Формат VHDX поддерживает операции unmap и позволяет динамически высвобождать неиспользуемое пространство после удаления данных внутри виртуального диска. Это позволяет более эффективно использовать дисковое пространство на устройстве хранения.

Если вы хотите получить все эти преимущества, то есть возможность сконвертировать уже существующие виртуальные диски из VHD в VHDX. Сделать это можно из графической оснастки Hyper-V Manager или из консоли PowerShell. Но перед тем, как приступить к конвертации, напомню, что:

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

Конвертирование в VHDX с помощью Hyper-V Manager

Открываем оснастку Hyper-V Manager и в поле «Actions» выбираем пункт «Edit Disk».

Запускается мастер редактирования VHD.

Указываем расположение VHD, который будем конвертировать.

Выбираем операцию «Convert».

Затем выбираем требуемый формат диска. Как видите, конвертировать диски можно как из VHD в VHDX, так и наоборот.

Указываем тип диска — фиксированный или динамический.

И задаем имя и расположение нового диска VHDX.

В завершение просматриваем суммарную информацию и жмем «Finish», запуская процесс преобразования. Процесс может занять некоторое время, зависящее от типа диска и объема данных на нем.

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

Конвертирование в VHDX с помощью PowerShell

Для конвертации с помощью PowerShell воспользуемся такой командой:

Convert-VHD -Path ″E:\Hyper-V\Shared.vhd″ -VHDType Fixed -DestinationPath ″E:\Hyper-V\NewShared.vhdx″ -DeleteSource

Эта команда создаст новый VHDX-диск фиксированного типа, а ключ -DeleteSource удалит исходный файл.

Конвертация возможна в обе стороны, для обратной конвертации воспользуйтесь командой:

Convert-VHD -Path ″E:\Hyper-V\Shared.vhdx″ -VHDType Fixed -DestinationPath ″E:\Hyper-V\NewShared.vhd″ -DeleteSource

В завершение напомню, что разместить внутри VHDX-файла можно любую ОС, но подключить этот файл получится только в ОС не ниже Windows Server 2012\Windows 8. В более ранних операционных системах формат VHDX не поддерживается.

Задачу конвертирования можно выполнить несколькими способами:

VMware Converter

Можно сконвертировать :

  • "живую" включенную машину
  • машину из инфраструктуры (сферы)
  • Hyper -V Server
  • несколько других форматов

К сожалению "голый" (оффлайн ) VHD из конвертера сконвертировать не удалось, так как сам VHD был из среды Hyper -V, пришлось временно "поднять" машину, указав в качестве диска мой VHD, в настройках конвертера необходимо выбрать данный Hyper -V сервер, после подключения к нему, из списка машин выбрать требуемую (машина подлежащая конвертации должна быть выключена), в качестве получателя может выбрано несколько вариантов:

  • Инфраструктура (сфера)
  • Workstantion \ VMware virtual machine

Так же можно выбрать в какую версию конвертировать :

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

По завершению работы мастера, в списке задач будет отображено состояние \ статус новой задачи.

В принципе интерфейс довольно интуитивен и разобраться в функционале довольно просто.

StarWind V2V

Здесь все значительно проще:

  • после установки и запуска данного ПО, открывается мастер, где предлагается выбрать VHD файл
  • далее необходимо указать формат образа, в зависимости от требований:

  • далее выбрать тип диска - IDE \ SCSI
  • указать путь назначения
  • состояние процесса будет отображаться посредством строки индикации и статусом задачи

Встроенную в Hyper-V функцию преобразования дисков тяжело назвать полноценным конвертером. Все, что может штатный гипервизор Microsoft делать с виртуальными жесткими дисками собственного формата VHD и VHDX – это преобразовывать эти форматы один в другой, а также менять динамический тип на фиксированный и наоборот.

Механизм конвертирования виртуальных дисков в форматы других гипервизоров, как это, например, предусматривается в программе VirtualBox, в составе Hyper-V отсутствует.

Ниже рассмотрим, как происходит процесс преобразования VHD- и VHDX-дисков с установленными гостевыми ОС в другой тип и формат. Преобразовывать диски будем с помощью штатных возможностей Hyper-V в составе Windows 10 и сторонней бесплатной программкой StarWind V2V Converter.

  • Зачем преобразовываются виртуальные жесткие диски
  • Преобразование дисков VHD и VHDX из динамического типа в фиксированный и наоборот средствами Hyper-V
  • Преобразование VHDX в VHD и, наоборот, VHD в VHDX средствами Hyper-V
  • Преобразование VHDX в VMDK программой StarWind V2V Converter
  • на сайте разработчика, предварительно заполнив анкету для регистрации аккаунта StarWind. Ссылка на скачивание инсталлятора приходит на почту, указанную в регистрационных данных.

    С форматом виртуальных жестких дисков VMDK работает не только «родной» гипервизор VMware, но и VirtualBox. Процесса конвертирования дисков VHDX в диски VMDK все равно не избежать, если виртуальную машину Hyper-V нужно запустить на VMware или VirtualBox. Но и в преобразовании формата VHD, поддерживаемого и VMware, и VirtualBox, есть свои выгоды – диски VMDK более экономно расходуют дисковое пространство физического компьютера, нежели диски VHD.

    StarWind V2V Converter может преобразовывать диски VHD и VHDX в диски VMDK. И наоборот – диски VMDK в диски VHD и VHDX. Для дисков VHD и VMDK при конвертировании можно выбрать иной, нежели имеющийся тип – динамический или фиксированный. Рассмотрим работу программы на примере преобразования диска VHDX в диск VMDK.

    Запускаем StarWind V2V Converter и сразу жмем «Далее».

    Указываем путь исходного файла VHDX. Жмем «Next».

    Выбираем формат и тип диска VMDK. В нашем случае выбран первый вариант – VMware growable image. Это динамический тип диска. Второй вариант — VMware pre-allocated image – это тип диска фиксированный. Жмем «Next».

    В качестве контроллера VMware при создании виртуальных машин рекомендуется выбрать SCSI, его и выберем. Жмем «Next».