Converting virtual machines from other hypervisors to KVM with virt-v2v in RHEL 7 and RHEL 8

Updated -

The virt-v2v tool converts virtual machines (VMs) from foreign hypervisors, including their disk images and metadata, for use with Red Hat Enterprise Linux with KVM managed by libvirt, Red Hat Virtualization, and Red Hat OpenStack Platform. virt-v2v can convert Red Hat Enterprise Linux and Windows VMs running on Xen and VMware ESX environments.

This article provides an overview of VM conversions and links to procedures for specific types of conversions.

virt-v2v is included in Red Hat Enterprise Linux 7 and Red Hat Enterprise Linux 8 and is installed with the virt-v2v package. In Red Hat Enterprise Linux 7, virt-v2v is also available from the Red Hat OpenStack Platform channel.

Important: virt-v2v is currently only supported on the AMD64 and Intel 64 architecture, also known as x86_64. All other architectures, including IBM Z, IBM POWER, and 64-bit ARM are not supported for v2v conversion.

Supported conversions

Supported guest operating systems for conversions

Only virtual machines running specific guest operating systems can be converted by virt-v2v to run on KVM. This also differs when using virt-v2v on RHEL 7 and on RHEL 8:

Guest OS RHEL 7 host RHEL 8 host
Red Hat Enterprise Linux 5 Supported Not supported
Red Hat Enterprise Linux 6 Supported Supported
Red Hat Enterprise Linux 7 Supported Supported
Red Hat Enterprise Linux 8 Not supported Supported
SUSE Linux Enterprise Server 11, SP4 and later [1] Supported On RHEL 7.7 and later Supported
SUSE Linux Enterprise Server 12 Supported Supported
SUSE Linux Enterprise Server 15 Supported Supported
Windows 8 Supported Not supported
Windows 8.1 Supported Not supported
Windows 10 Supported Supported
Windows Server 2008 Supported Not supported
Windows Server 2008 R2 Supported Not supported
Windows Server 2012 Supported Not supported
Windows Server 2012 R2 Supported Not supported
Windows Server 2016 Supported Supported
Windows Server 2019 Supported Supported
Debian [2] Technology Preview in RHEL 7.4 and later Technology Preview
Ubuntu [2] Technology Preview in RHEL 7.4 and later Technology Preview

[1] Virtual machines that use X graphics and a SUSE Linux Enterprise Server 11 operating system should be re-adjusted after the conversion for the graphics to work properly. To do so, use the sax2 distribution tool in the guest OS after the migration is finished.
[2] As a Technology Preview, converting Debian and Ubuntu VMs is not supported. In addition, This conversion currently has the following known issues:
* virt-v2v cannot change the default kernel in the GRUB2 configuration, and the kernel configured in the VM is not changed during the conversion, even if a more optimal version of the kernel is available on the VM.
* After converting a Debian or Ubuntu VMware virtual machine to KVM, the name of the VM's network interface may change, and thus requires manual configuration.

Note: virt-v2v conversions of any operating system not listed above may in some cases work, but are not supported by Red Hat.

Supported hypervisors for conversion

Conversions from the following hypervisors are supported:

  • Red Hat Enterprise Linux 5 Xen
  • VMware vSphere ESX / ESX(i) - versions 3.5, 4.0, 4.1, 5.0, 5.1, 5.5, 6.0, 6.5, and 6.7

Note: virt-v2v conversions from any hypervisor not listed above may in some cases work, but are not supported by Red Hat.

Other considerations for V2V conversion support

Virtual machines that use the UEFI firmware are currently supported for conversion only to the following KVM hypervisors:
- Red Hat Virtualization 4.2 and later - this requires virt-v2v version 1.39.12 or later
- RHEL 7 and RHEL 8

How to perform the V2V conversion?

The specific steps for preparing and performing the v2v conversion can differ based on the VM's guest OS and original hypervisor. For details about specific conversions, see one of the following:
* Converting a VMware vCenter Linux virtual machine to KVM
* Converting a VMware vCenter Windows machine to KVM
* Converting a Linux machine on a Xen hypervisor to KVM
* Export a virtual machine from VMware as an OVA file, and import it into KVM

Related Links

For information on converting a virtual machine to run on Red Hat Virtualization, see Importing a Virtual Machine from a VMware Provider.

For information on converting a virtual machine to run on Red Hat OpenStack Platform, see Converting VMware virtual machines to import to Red Hat OpenStack Platform.

For information on converting a physical machine from another hypervisor with virt-v2v and virt-p2v, see Converting physical machines to KVM virtual machines using virt-p2v in RHEL7.

10 Comments

Hi,Dayle VMware vSphere ESX / ESX(i) - versions 3.5, 4.0, 4.1, 5.0, 5.1, 5.5

Now,virt-v2v supports converting guests from esxi 6.0 and QE have tested it, so would you pls help to add it?thanks.

Hi Tingting, Excellent news -- thank you for letting me know. I've added 6.0 to the list.

What is the procedure to covert in Redhat 6?

Hi Eddie, The virt-v2v tool was a bit different in Red Hat Enterprise Linux 6, but procedures are detailed in this guide: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/V2V_Guide/index.html. Let me know how you go with it. Cheers, Dayle

which channel contains virt-v2v ? am on rhel 7.3

Hi, virt-v2v is not included in rhel-workstation, does Red Hat plan to make it available to workstation users ?

Did you ever receive an answer for this? I have been searching high and low for the virt-v2v package for RHEL 7.3 WS and it seems fishy that it is seemingly unavailable. The .org site (2014) says that it is included with the libguestsfs package. This is not accurate either. Please let me know if you ever came up with an answer. It seems ass backwards that I can just go use Fedora and it comes standard, but I'm paying for RHEL 7 WS and I can't easily obtain v2v....

Yes,virt-v2v is shipped in libguestfs package,so you should search libguestfs for virt-v2v. For rhel7.3,you can find it in the below channels.

Red Hat Enterprise Linux Client (v. 7) - noarch, x86_64 Red Hat Enterprise Linux Client Optional (v. 7) - noarch, x86_64 Red Hat Enterprise Linux Server (v. 7) - noarch, x86_64 Red Hat Enterprise Linux Server Optional (v. 7) - noarch, x86_64 Red Hat Enterprise Linux Workstation (v. 7) - noarch, x86_64 Red Hat Enterprise Linux Workstation Optional (v. 7) - noarch, x86_64

Regarding RHEL7 Workstation having virt-v2v in libguestfs, I call "shenanigans":

]$ rpm -q --filesbypkg libguestfs | grep v2v

]$ rpm -q --filesbypkg libguestfs-tools | grep v2v

]$ rpm -q --filesbypkg libguestfs-tools-c | grep v2v

]$ rpm -qa | grep libguestfs

libguestfs-tools-c-1.32.7-3.el7_3.3.x86_64

libguestfs-tools-1.32.7-3.el7_3.3.noarch

libguestfs-1.32.7-3.el7_3.3.x86_64

]$ cat /etc/redhat-release

Red Hat Enterprise Linux Workstation release 7.3 (Maipo)

yum search virt-v2v does come up with libguestfs, but the package doesn't seem to have it. On RHEL7 server, there's a specific virt-v2v package in rhel-7-server-rpms/7Server/x86_64.

Debian and Ubuntu are supported since RHEL 7.4, see: https://bugzilla.redhat.com/show_bug.cgi?id=1387213