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 from foreign hypervisors, including their disk images and metadata, for use with Red Hat Enterprise Linux KVM, Red Hat Virtualization, and Red Hat Enterprise Linux OpenStack Platform. virt-v2v can convert Red Hat Enterprise Linux and Windows guests running on Xen and VMware ESX environments.

This article provides an overview of virtual machine 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 Enterprise Linux OpenStack Platform channel.

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

Supported conversions

Guest virtual machines running the following operating systems can be converted by virt-v2v to run on KVM:

  • Red Hat Enterprise Linux 3.9
  • Red Hat Enterprise Linux 4
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • SUSE Linux Enterprise Server 11, SP4 and later *1
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 15
  • SUSE Linux Enterprise Desktop 11, SP4 and later *1
  • SUSE Linux Enterprise Desktop 12
  • SUSE Linux Enterprise Desktop 15
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 8.1
  • Windows 10
  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019

  • In Red Hat Enterprise Linux 7.4 and later, virt-v2v can also convert virtual machines running Debian and Ubuntu, but these conversions are only available as a Technology Preview and thus are not supported. In addition, converting Debian and Ubuntu VMs currently has the following known issues:

    • virt-v2v cannot change the default kernel in the GRUB2 configuration, and the kernel configured in the guest is not changed during the conversion, even if a more optimal version of the kernel is available on the guest.
    • After converting a Debian or Ubuntu VMware guest to KVM, the name of the guest's network interface may change, and thus requires manual configuration.

Conversions from 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, 6.7

Note: virt-v2v conversions of any operating system than listed above, as well as conversions from any other hypervisor than listed above, are not supported by Red Hat, even if they may in some cases work. In addition, virtual machines that use the UEFI firmware are currently supported for conversion only to Red Hat Virtualization.

How does the V2V conversion process work?

virt-v2v automatically creates a guest on the target hypervisor for each of the converted virtual machines. To convert a virtual machine:

1. Prepare the destination host:

1a. Install virt-v2v on the host.
1 b. Configure local storage and network interfaces, if needed. For details of the local storage requirements, see the instructions for your specific conversion scenario.

Note: Ensure that the connection between the conversion server and the system with the foreign hypervisor is as fast as possible and has low latency.

2. Prepare the guest:

2a. For Linux guests, ensure that virtio is enabled on the guest. For details, see Enabling virtio.
2b. Ensure the guest is shutdown/offline before conversion.

3. Convert the virtual machine via the command line with input and output options.

3a. 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 guest from VMware as an OVA file, and import it into KVM
3b. Verify the new guest's functions completely before deleting it from its original hypervisor.

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 Enterprise Linux OpenStack Platform, see Converting VMware guests to import to Red Hat Enterprise Linux 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.

Footnotes

  1. Converting SUSE Linux Enterprise Server and SUSE Linux Enterprise Desktop guest operating systems requires RHEL 7.7 or later, or RHEL 8.

    In addition, virtual machines that use X graphics and a SUSE Linux Enterprise Server 11 or SUSE Linux Enterprise Desktop 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.

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