-
Notifications
You must be signed in to change notification settings - Fork 3
3. Usage and Limitation
virt-v2v tool does not support Grub2 update. The following message will be shown during conversion process:
WARNING: could not determine a way to update the configuration of Grub2
Depending on GRUB2 boot up complexity and configuration, boot process would require to be fixed by OS recovery tools (SystemRescueCD or Ubuntu Live Recovery)
Windows is only compatible with virt-v2v style conversion, will refuse to use --custom
or --fallback
.
The four styles of transferring the disks available through the default virt-v2v style in order of performance are:
- Hybrid - This will utilize the RbVmomi2 library to download the image via curl for the VM, then convert it locally. Once downloaded, virt-v2v will be used to convert the disks locally. This is usually the fastest method although requires extra disk space.
-
VDDK Library - This utilizes the Virtual Disk Development Kit provided by VMWare to transfer the disks, and is almost always the fastest method available. This will occur when the
--vddk /path/to/lib
is defined. -
ESXi Direct SSH Transfer - This copies the disk directly through an SSH connection to the ESXi host, it is reasonably faster than vCenter API transfer. This will occur if the EOPTS(
--esxi
/--esxi_user
/[--esxi_pass
]) options are utilized. This cannot be used with the VDDK option and will refuse to continue if both parameters are present. - vCenter API - This is the slowest option, as there are limitations for transferring through vCenter API's "download" function. Simply leave out any VDDK or ESXi specific options for this to occur.
There is also the Custom conversion option which does not use virt-v2v and will use the RbVmomi2 library to download the image, then use qemu-img to convert the image and virt-customize or guestfish to prepare the image for KVM basically. This is only really recommended as a fallback option for some failure in virt-v2v's conversion process.
oneswap list datacenters
oneswap list clusters [--datacenter DCName]
oneswap list vms [--datacenter DCName [--cluster Cluster1]]
# Note: `--cluster` will only work here if `--datacenter` is also defined.
oneswap convert 'Virtual Machine Name' [--vddk /path/to/vddk-lib]
oneswap convert 'Virtual Machine Name' (--hybrid | --custom)
For faster conversion speeds, you can use VDDK VMware library by using --vddk
option and supplying the full path to the extracted VDDK library you have obtained from VMWare. You can use either the ESXi options or the VDDK option, but not both. This VDDK parameter also does not work with the custom conversion or hybrid method since they download the disk.
Hybrid and Custom conversion types can't be used together. Hybrid will use the RbVmomi2 library to download which uses cURL and can be faster for transferring but will use more disk space during the conversion. Custom is only recommended when virt-v2v style conversions fail and most likely will require extra manual work to get the virtual machine to operate properly, while also requiring more disk space.
Choosing a Datastore Target
The --datastore <DATASTORE_ID>
parameter should be used to define which IMAGE datastore the virtual disks will be created in. Without defining this parameter, the default datastore ID 1 will be used since that is automatically created.
Choosing a Format
The --format (raw|qcow2)
parameter can be used to define what the virtual disk will be converted to. It will default to qcow2
.
Converting Network Interfaces
In each OpenNebula Virtual Network used for migration targets, create an attribute VCENTER_NETWORK_MATCH
with the same name of the Network in vCenter, This will automatically assign each NIC of the migrated VM to the proper network when defining the --network <DEFAULT_ID>
parameter.
VCENTER_NETWORK_MATCH=VMware Network
oneswap
requires a default network to be defined for the network interfaces that do not have a valid match by using --network <DEFAULT_ID>
option. For example:
oneswap convert 'Virtual Machine Name' $VOPTS --network 1
Omitting the network parameter will not generate any networks for the virtual machine and you will need to create them manually.