-
Notifications
You must be signed in to change notification settings - Fork 124
Add VDDK support in VMware to KVM migration #640
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 4.22
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -117,6 +117,178 @@ If you are hitting the following error when running ovftool, install the depende | |||||||||||||||||
| dnf install libnsl | ||||||||||||||||||
|
|
||||||||||||||||||
|
|
||||||||||||||||||
| VDDK-based Optimized Conversion | ||||||||||||||||||
| ------------------------------- | ||||||||||||||||||
|
|
||||||||||||||||||
| CloudStack supports an optimized VMware-to-KVM migration path using virt-v2v in vpx input mode combined with | ||||||||||||||||||
| VMware's Virtual Disk Development Kit (VDDK). This method eliminates the OVF export phase entirely and streams | ||||||||||||||||||
| disk blocks directly from the source hypervisor into the conversion pipeline, resulting in significantly faster | ||||||||||||||||||
| migration times. | ||||||||||||||||||
|
|
||||||||||||||||||
| The traditional OVF-based workflow operates in two sequential phases: | ||||||||||||||||||
|
|
||||||||||||||||||
| 1. Export the entire VM as OVF/VMDK files to temporary storage (full disk copy). | ||||||||||||||||||
| 2. Convert the local VMDK files using virt-v2v (second full disk read and write). | ||||||||||||||||||
|
|
||||||||||||||||||
| The VDDK-based workflow replaces both phases with a single streaming pipeline: | ||||||||||||||||||
|
|
||||||||||||||||||
| - virt-v2v connects directly to vCenter via ``vpx://`` | ||||||||||||||||||
| - Disk blocks are read on demand via VDDK (using nbdkit internally as the translation layer between the | ||||||||||||||||||
| VDDK API and virt-v2v's NBD block device interface) | ||||||||||||||||||
| - Conversion and disk transfer happen concurrently | ||||||||||||||||||
| - Only allocated blocks are transferred; zero-filled and sparse extents are skipped | ||||||||||||||||||
| - No intermediate OVF or VMDK files are created | ||||||||||||||||||
|
|
||||||||||||||||||
| This reduces disk I/O amplification, eliminates temporary staging storage, and shortens end-to-end migration time. | ||||||||||||||||||
|
|
||||||||||||||||||
| .. note:: CloudStack does not distribute VDDK, operators must download it separately. | ||||||||||||||||||
| Along with the new VDDK-based conversion method the traditional OVF-based method remains supported for environments. | ||||||||||||||||||
| Operators can choose the conversion method on a per-migration basis in the UI import wizard. | ||||||||||||||||||
|
|
||||||||||||||||||
|
Comment on lines
+144
to
+147
|
||||||||||||||||||
| .. note:: CloudStack does not distribute VDDK, operators must download it separately. | |
| Along with the new VDDK-based conversion method the traditional OVF-based method remains supported for environments. | |
| Operators can choose the conversion method on a per-migration basis in the UI import wizard. | |
| .. note:: | |
| CloudStack does not distribute VDDK, operators must download it separately. | |
| Along with the new VDDK-based conversion method the traditional OVF-based method remains supported for environments. | |
| Operators can choose the conversion method on a per-migration basis in the UI import wizard. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this default path for vddk (expected by nbdkit)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if "direct" is must for VDDK to work, should we avoid this config?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sentence reads incomplete/awkward: “the traditional OVF-based method remains supported for environments.” Consider clarifying what environments this refers to (e.g., “...supported for environments where VDDK cannot be used/installed”).