-
Что такое форматы VMDK и RAW?
-
Как конвертировать VMDK в RAW с помощью QEMU-img?
-
Как упростить миграцию виртуальных машин с помощью Vinchin Backup & Recovery?
-
Часто задаваемые вопросы о конвертации VMDK в RAW
-
Заключение
Сегодня компании всё чаще используют виртуальную инфраструктуру для размещения бизнес-систем, поскольку виртуализация помогает снизить затраты и обеспечивает гибкость инфраструктуры. На рынке существует множество решений для виртуализации, и каждое из них имеет свои особенности.
Что такое форматы VMDK и RAW?
VMware является одним из наиболее популярных поставщиков решений для виртуализации. Компания предлагает такие продукты, как vSphere, Workstation и Fusion, предназначенные как для корпоративных пользователей, так и для отдельных специалистов.
Виртуальная машина работает как физический сервер, однако фактически представляет собой набор файлов, расположенных в хранилище данных. Файлы VMDK (Virtual Machine Disk) используются в качестве виртуальных жёстких дисков и содержат операционную систему, приложения и другие данные виртуальной машины. Поэтому при переносе виртуальной машины на другой хост файлы VMDK являются одним из ключевых компонентов миграции.
KVM (Kernel-based Virtual Machine) — ещё одна популярная технология виртуализации, которая часто используется совместно с QEMU. В отличие от VMware, KVM является открытым решением. Виртуальные диски в среде KVM могут храниться в различных форматах, наиболее распространёнными из которых являются RAW и QCOW2.
Образ RAW обеспечивает высокую производительность, практически сопоставимую с производительностью физического жёсткого диска. Ещё одно преимущество RAW заключается в том, что его относительно легко конвертировать в другие форматы образов.
Некоторые платформы виртуализации позволяют напрямую импортировать диски других форматов. Например, для импорта VMDK в XenServer может использоваться XenConvert. То есть для переноса виртуального диска между различными платформами всё равно может потребоваться инструмент V2V-конвертации.
В среде KVM большинство операций выполняется с помощью командной строки. Поэтому напрямую подключить VMDK-диск к виртуальной машине KVM обычно нельзя. Перед импортом в KVM виртуальный диск VMDK необходимо преобразовать в формат RAW или QCOW2.
Как конвертировать VMDK в RAW с помощью QEMU-img?
Производители платформ виртуализации нередко предлагают собственные инструменты для конвертации виртуальных дисков, которые позволяют переносить виртуальные машины из одной среды в другую. Среди таких решений можно отметить VMware vCenter Converter Standalone и Microsoft Virtual Machine Converter.
Кроме специализированных инструментов существует мощная утилита QEMU-img, поддерживающая множество форматов виртуальных дисков, включая RAW, QCOW2, QED, VDI, VMDK и VHD.
При необходимости с её помощью также можно конвертировать VMDK в QCOW2.
Установка QEMU-img
Чтобы преобразовать VMDK, сначала необходимо установить QEMU-img. После этого все операции можно выполнить с помощью командной строки.
В Windows процесс установки достаточно прост: запустите установочный пакет и следуйте инструкциям мастера установки.
В Linux команда установки зависит от используемого дистрибутива.
Ubuntu/Debian:
apt install qemu-img
CentOS/Red Hat/Oracle:
yum install qemu-img
SUSE/OpenSUSE:
zypper install qemu-img
После установки QEMU-img рекомендуется проверить, что утилита корректно установлена.
Для Windows:
qemu-img --help
Для Linux:
qemu-img -v
Конвертация VMDK в RAW с помощью QEMU-img
Перед началом конвертации убедитесь, что исходный VMDK-файл не используется другим процессом и в него не выполняется запись.
Для получения RAW-образа достаточно выполнить одну команду:
qemu-img convert -p -f vmdk -O raw vmware-image.vmdk vmware-image.raw
Здесь:
-p — отображение прогресса конвертации;
-f — формат исходного образа;
-O — формат целевого образа.
Если необходимо сэкономить место, например при работе в Linux, можно использовать sparse-файл вместо предварительного выделения всего дискового пространства:
qemu-img convert -f vmdk -O raw -o preallocation=falloc source.vmdk target.raw
Эта опция работает только в том случае, если файловая система хоста поддерживает вызовы fallocate. При подходящей конфигурации она позволяет значительно сократить объём временного дискового пространства, необходимого во время миграции.
Что делать после конвертации?
После завершения конвертации рекомендуется выполнить несколько проверок:
Выполните команду
qemu-img info target.raw, чтобы убедиться, что размер полученного образа соответствует ожидаемому.По возможности подключите образ в режиме только для чтения. Также можно использовать инструменты вроде
fsckиз среды восстановления гостевой ОС для проверки целостности файловой системы перед запуском виртуальной машины в рабочей среде.Не удаляйте резервные копии исходной виртуальной машины до тех пор, пока новая система не будет успешно запущена и проверена.
После этого RAW-образ можно импортировать в виртуальную машину KVM и проверить её работоспособность.
Как упростить миграцию виртуальных машин с помощью Vinchin Backup & Recovery?
При миграции VMware → KVM необязательно вручную экспортировать VMDK и конвертировать его в RAW.
Vinchin Backup & Recovery позволяет напрямую выполнить миграцию виртуальных машин VMware на поддерживаемые гипервизоры на базе KVM, включая Proxmox, RHV, oVirt, Oracle Linux KVM и OpenStack. При этом нативный KVM в настоящее время не поддерживается.
Таким образом, администратору не требуется отдельно экспортировать VMDK, конвертировать его в RAW и вручную создавать и настраивать новую виртуальную машину.
Процесс можно выполнить через удобную веб-консоль Vinchin Backup & Recovery:
Добавьте хост VMware ESXi и целевой хост в систему Vinchin.
Создайте резервную копию виртуальной машины VMware.
Выберите необходимую резервную копию VMware.
Укажите целевой хост, например Proxmox.
Выберите необходимые параметры и стратегию восстановления.
Запустите задание миграции.
В качестве примера можно рассмотреть миграцию VMware в Proxmox:
Шаг 1. Выберите резервную копию VMware
Выберите виртуальную машину VMware из доступных точек восстановления.

Шаг 2. Выберите хост Proxmox
Укажите Proxmox в качестве целевой платформы для восстановления виртуальной машины.

Шаг 3. Настройте параметры миграции
Выберите необходимые параметры и стратегии восстановления.

Шаг 4. Запустите задание
Проверьте настройки и отправьте задание на выполнение.

Vinchin Backup & Recovery используется компаниями для построения эффективных систем аварийного восстановления и защиты виртуальной инфраструктуры. Для знакомства с возможностями решения можно воспользоваться 60-дневной полнофункциональной пробной версией.
Часто задаваемые вопросы о конвертации VMDK в RAW
Вопрос 1:Влияет ли конвертация VMDK в RAW на целостность данных?
Ответ :Как правило, сама процедура конвертации не влияет на целостность данных. Однако размер полученного виртуального диска может отличаться от размера исходного образа.
Вопрос 2: На каких платформах можно использовать преобразованный RAW-образ?
Ответ : Большинство платформ на базе KVM поддерживают RAW нативно. К ним относятся, например, Proxmox, OpenStack и Oracle Linux Virtualization Manager (OLVM).
Вопрос 3:Можно ли конвертировать несколько VMDK одновременно?
Ответ :Да. Для массовой конвертации можно написать скрипт, который будет автоматически преобразовывать несколько VMDK-файлов в RAW.
Заключение
В разных средах виртуализации виртуальные диски могут использовать разные форматы. В VMware наиболее распространённым является VMDK, тогда как в средах на базе KVM широко используется RAW.
Поэтому при переносе виртуальной машины из VMware в KVM администратору может потребоваться преобразовать VMDK в RAW с помощью V2V-инструментов, например QEMU-img.
Другой вариант — использовать Vinchin Backup & Recovery для выполнения V2V-миграции. В этом случае не требуется отдельно экспортировать VMDK, конвертировать виртуальный диск и вручную настраивать целевую виртуальную машину, что позволяет упростить процесс миграции.
Важное замечание: в исходной английской статье в команде конвертации указан выходной файл с расширением .qcow2, хотя параметр -O raw означает, что целевой формат — RAW. Я в русской версии исправил это на vmware-image.raw, чтобы команда соответствовала указанному формату.