6.12. Exporting and Importing Virtual Machines and Templates

Note

The export storage domain is deprecated. Storage data domains can be unattached from a data center and imported to another data center in the same environment, or in a different environment. Virtual machines, floating virtual disks, and templates can then be uploaded from the imported storage domain to the attached data center. See the Importing Existing Storage Domains section in the Red Hat Virtualization Administration Guide for information on importing storage domains.
Virtual machines and templates stored in Open Virtual Machine Format (OVF) can be exported from and imported to data centers in the same or different Red Hat Virtualization environment. Virtual machines stored in an Open Virtual Appliance (OVA) file can be imported to data centers.
To export or import virtual machines and templates, an active export domain must be attached to the data center containing the virtual machine or template to be exported or imported. An export domain acts as a temporary storage area containing two directories for each exported virtual machine or template. One directory contains the OVF files for the virtual machine or template. The other directory holds the disk image or images for the virtual machine or template.
There are three stages to exporting and importing virtual machines and templates:
  1. Export the virtual machine or template to an export domain.
  2. Detach the export domain from one data center, and attach it to another. You can attach it to a different data center in the same Red Hat Virtualization environment, or attach it to a data center in a separate Red Hat Virtualization environment that is managed by another installation of the Red Hat Virtualization Manager.

    Note

    An export domain can only be active in one data center at a given time. This means that the export domain must be attached to either the source data center or the destination data center.
  3. Import the virtual machine or template into the data center to which the export domain is attached.
When you export or import a virtual machine or template, properties including basic details such as the name and description, resource allocation, and high availability settings of that virtual machine or template are preserved. Specific user roles and permissions, however, are not preserved during the export process. If certain user roles and permissions are required to access the virtual machine or template, they will need to be set again after the virtual machine or template is imported.
You can also use the V2V feature to import virtual machines from other virtualization providers, such as Xen or VMware, or import Windows virtual machines. V2V converts virtual machines so that they can be hosted by Red Hat Virtualization. For more information on installing and using V2V, see Converting Virtual Machines from Other Hypervisors to KVM with virt-v2v.

Important

Virtual machines must be shut down before being exported or imported.

6.12.1. Exporting a Virtual Machine to the Export Domain

Export a virtual machine to the export domain so that it can be imported into a different data center. Before you begin, the export domain must be attached to the data center that contains the virtual machine to be exported.

Warning

The virtual machine must be shut down before being exported.

Procedure 6.21. Exporting a Virtual Machine to the Export Domain

  1. Click the Virtual Machines tab and select a virtual machine.
  2. Click Export.
  3. Optionally select the following check boxes:
    • Force Override: overrides existing images of the virtual machine on the export domain.
    • Collapse Snapshots: creates a single export volume per disk. This option removes snapshot restore points and includes the template in a template-based virtual machine, and removes any dependencies a virtual machine has on a template. For a virtual machine that is dependent on a template, either select this option, export the template with the virtual machine, or make sure the template exists in the destination data center.

      Note

      When you create a virtual machine from a template, two storage allocation options are available under New Virtual MachineResource AllocationStorage Allocation.
      • If Clone was selected, the virtual machine is not dependent on the template. The template does not have to exist in the destination data center.
      • If Thin was selected, the virtual machine is dependent on the template, so the template must exist in the destination data center or be exported with the virtual machine. Alternatively, select the Collapse Snapshots check box to collapse the template disk and virtual disk into a single disk.
      To check which option was selected, select a virtual machine and click the General tab in the details pane.
  4. Click OK.
The export of the virtual machine begins. The virtual machine displays in the Virtual Machines results list with an Image Locked status while it is exported. Depending on the size of your virtual machine hard disk images, and your storage hardware, this can take up to an hour. Use the Events tab to view the progress. When complete, the virtual machine has been exported to the export domain and displays on the VM Import tab of the export domain's details pane.

6.12.2. Importing a Virtual Machine into the Destination Data Center

You have a virtual machine on an export domain. Before the virtual machine can be imported to a new data center, the export domain must be attached to the destination data center.

Procedure 6.22. Importing a Virtual Machine into the Destination Data Center

  1. Click the Storage tab, and select the export domain in the results list. The export domain must have a status of Active.
  2. Select the VM Import tab in the details pane to list the available virtual machines to import.
  3. Select one or more virtual machines to import and click Import.
    Import Virtual Machine

    Figure 6.6. Import Virtual Machine

  4. Select the Default Storage Domain and Cluster.
  5. Select the Collapse Snapshots check box to remove snapshot restore points and include templates in template-based virtual machines.
  6. Click the virtual machine to be imported and click on the Disks sub-tab. From this tab, you can use the Allocation Policy and Storage Domain drop-down lists to select whether the disk used by the virtual machine will be thinly provisioned or preallocated, and can also select the storage domain on which the disk will be stored. An icon is also displayed to indicate which of the disks to be imported acts as the boot disk for that virtual machine.
  7. Click OK to import the virtual machines.
    The Import Virtual Machine Conflict window opens if the virtual machine exists in the virtualized environment.
    Import Virtual Machine Conflict Window

    Figure 6.7. Import Virtual Machine Conflict Window

  8. Choose one of the following radio buttons:
    • Don't import
    • Import as cloned and enter a unique name for the virtual machine in the New Name field.
  9. Optionally select the Apply to all check box to import all duplicated virtual machines with the same suffix, and then enter a suffix in the Suffix to add to the cloned VMs field.
  10. Click OK.

Important

During a single import operation, you can only import virtual machines that share the same architecture. If any of the virtual machines to be imported have a different architecture to that of the other virtual machines to be imported, a warning will display and you will be prompted to change your selection so that only virtual machines with the same architecture will be imported.

6.12.3. Importing a Virtual Machine from a VMware Provider

Import virtual machines from a VMware vCenter provider to your Red Hat Virtualization environment. You can import from a VMware provider by entering its details in the Import Virtual Machine(s) window during each import operation, or you can add the VMware provider as an external provider, and select the preconfigured provider during import operations. To add an external provider, see Adding a VMware Instance as a Virtual Machine Provider.
Red Hat Virtualization uses V2V to import VMware virtual machines. For OVA files, the only disk format Red Hat Virtualization supports is VMDK.
The virt-v2v package must be installed on at least one host (referred to in this procedure as the proxy host). The virt-v2v package is available by default on Red Hat Virtualization Hosts (RHVH) and is installed on Red Hat Enterprise Linux hosts as a dependency of VDSM when added to the Red Hat Virtualization environment. Red Hat Enterprise Linux hosts must be Red Hat Enterprise Linux 7.2 or later.

Note

The virt-v2v package is not available on the ppc64le architecture and these hosts cannot be used as proxy hosts.

Important

An import operation can only include virtual machines that share the same architecture. If any virtual machine to be imported has a different architecture, a warning will display and you will be prompted to change your selection to include only virtual machines with the same architecture.

Note

If the import fails, refer to the relevant log file in /var/log/vdsm/import/ and to /var/log/vdsm/vdsm.log on the proxy host for details.

Procedure 6.23. Importing a Virtual Machine from VMware

  1. Shut down the virtual machine. Starting the virtual machine through VMware during the import process can result in data corruption.
  2. In the Virtual Machines tab, click Import to open the Import Virtual Machine(s) window.
    The Import Virtual Machine(s) Window

    Figure 6.8. The Import Virtual Machine(s) Window

  3. Select VMware from the Source list.
  4. If you have configured a VMware provider as an external provider, select it from the External Provider list. Verify that the provider credentials are correct. If you did not specify a destination data center or proxy host when configuring the external provider, select those options now.
  5. If you have not configured a VMware provider, or want to import from a new VMware provider, provide the following details:
    1. Select from the list the Data Center in which the virtual machine will be available.
    2. Enter the IP address or fully qualified domain name of the VMware vCenter instance in the vCenter field.
    3. Enter the IP address or fully qualified domain name of the host from which the virtual machines will be imported in the ESXi field.
    4. Enter the name of the data center and the cluster in which the specified ESXi host resides in the Data Center field.
    5. If you have exchanged the SSL certificate between the ESXi host and the Manager, leave Verify server's SSL certificate checked to verify the ESXi host's certificate. If not, uncheck the option.
    6. Enter the Username and Password for the VMware vCenter instance. The user must have access to the VMware data center and ESXi host on which the virtual machines reside.
    7. Select a host in the chosen data center with virt-v2v installed to serve as the Proxy Host during virtual machine import operations. This host must also be able to connect to the network of the VMware vCenter external provider.
    8. Click Load to list the virtual machines on the VMware provider that can be imported.
    9. Select one or more virtual machines from the Virtual Machines on Source list, and use the arrows to move them to the Virtual Machines to Import list.

      Note

      If a virtual machine's network device uses the driver type e1000 or rtl8139, the virtual machine will use the same driver type after it has been imported to Red Hat Virtualization.
      If required, you can change the driver type to VirtIO manually after the import. To change the driver type after a virtual machine has been imported, see Section 5.3.2, “Editing a Network Interface”. If the network device uses driver types other than e1000 or rtl8139, the driver type is changed to VirtIO automatically during the import. The Attach VirtIO-drivers check box allows the VirtIO drivers to be injected into the imported virtual machine files so that when the driver is changed to VirtIO, the device will be properly detected by the operating system.
  6. Click Next.
    1. Select the Cluster in which the virtual machines will reside.
    2. Select a CPU Profile for the virtual machines.
    3. Select the Collapse Snapshots check box to remove snapshot restore points and include templates in template-based virtual machines.
    4. Select the Clone check box to change the virtual machine name and MAC addresses, and clone all disks, removing all snapshots. If a virtual machine appears with a warning symbol beside its name or has a tick in the VM in System column, you must clone the virtual machine and change its name.
    5. Select each virtual machine to be imported and click the Disks sub-tab. Use the Allocation Policy and Storage Domain lists to select whether the disk used by the virtual machine will be thinly provisioned or preallocated, and select the storage domain on which the disk will be stored. An icon displays to indicate which imported disk will be the boot disk for that virtual machine.
    6. If you selected the Clone check box, change the name of the virtual machine in the General sub-tab.
  7. Click OK to import the virtual machines.
The CPU type of the virtual machine must be the same as the CPU type of the cluster into which it is being imported.

Procedure 6.24. Viewing a Cluster's CPU Type

  1. Click the Cluster tab.
  2. Select a cluster.
  3. Click Edit.
  4. Click the General tab.

Procedure 6.25. Configuring a Virtual Machine's CPU Type

  1. Click the Virtual Machines tab.
  2. Select the virtual machine.
  3. Click Edit.
  4. Click the System tab.
  5. Click the Advanced Parameters arrow.
  6. Specify the Custom CPU Type.

6.12.4. Importing an OVA File from VMware

Import an Open Virtual Appliance (OVA) file to your Red Hat Virtualization environment. You can import from a VMware host by entering its details in the Import Virtual Machine(s) window during each import operation, or you can add the VMware provider as an external provider, and select the preconfigured provider during import operations. To add an external provider, see Adding a VMware Instance as a Virtual Machine Provider.

Important

The OVA file format must be TAR.
Currently, OVA files can only be imported from a VMware host. KVM and Xen are not supported.

Procedure 6.26. Importing an OVA File

  1. Copy the OVA file to a host in your cluster, in a file system location such as /var/tmp.

    Note

    The location can be a local directory or a remote nfs mount, as long as it has sufficient space and is accessible to the qemu user (UID 36).
  2. Ensure that the OVA file has permissions allowing read/write access to the qemu user (UID 36) and the kvm group (GID 36):
    # chown 36:36 path_to_OVA_file/file.OVA
  3. In the Virtual Machines tab, click Import to open the Import Virtual Machine(s) window.
    1. Select VMware Virtual Appliance (OVA) from the Source list.
    2. Select a host from the Host list. This will be the same host that you exported from the VMware provider.
    3. In the Path box, specify the path of the OVA file.
    4. Click Load to list the virtual machines that can be imported.
    5. Select one or more virtual machines from the Virtual Machines on Source list, and use the arrows to move them to the Virtual Machines to Import list.
  4. Click Next.
    1. Select the Target Cluster where the virtual machines will reside.
    2. Select the CPU Profile for the virtual machines.
    3. Select the Allocation Policy for the virtual machines.
    4. Optionally, select the Attach VirtIO-Drivers check box and select the appropriate image on the list to add VirtIO drivers.
    5. Click each virtual machine you will be importing. On the General sub-tab, select the Operating System.
    6. On the Network Interfaces sub-tab, select the Network Name and Profile Name.
    7. Click the Disks sub-tab to view the Alias, Virtual Size and Actual Size of the virtual machine.
  5. Click OK to import the virtual machines.

6.12.5. Importing a Virtual Machine from a Xen Host

Import virtual machines from Xen on Red Hat Enterprise Linux 5 to your Red Hat Virtualization environment. Red Hat Virtualization uses V2V to import QCOW2 or RAW virtual machine disk formats.
The virt-v2v package must be installed on at least one host (referred to in this procedure as the proxy host). The virt-v2v package is available by default on Red Hat Virtualization Hosts (RHVH) and is installed on Red Hat Enterprise Linux hosts as a dependency of VDSM when added to the Red Hat Virtualization environment. Red Hat Enterprise Linux hosts must be Red Hat Enterprise Linux 7.2 or later.

Warning

If you are importing a Windows virtual machine from a Xen host and you are using VirtIO devices, install the VirtIO drivers before importing the virtual machine. If the drivers are not installed, the virtual machine may not boot after import.
The VirtIO drivers can be installed from the virtio-win.iso or the rhev-tools-setup.iso. See Section 3.3.2, “Installing the Guest Agents and Drivers on Windows” for details.
If you are not using VirtIO drivers, review the configuration of the virtual machine after import, and before first boot to ensure that VirtIO devices are not being used.

Note

The virt-v2v package is not available on the ppc64le architecture and these hosts cannot be used as proxy hosts.

Important

An import operation can only include virtual machines that share the same architecture. If any virtual machine to be imported has a different architecture, a warning will display and you will be prompted to change your selection to include only virtual machines with the same architecture.

Note

If the import fails, refer to the relevant log file in /var/log/vdsm/import/ and to /var/log/vdsm/vdsm.log on the proxy host for details.

Procedure 6.27. Importing a Virtual Machine from Xen

  1. Shut down the virtual machine. Starting the virtual machine through Xen during the import process can result in data corruption.
  2. Enable public key authentication between the proxy host and the Xen host:
    1. Log in to the proxy host and generate SSH keys for the vdsm user.
      # sudo -u vdsm ssh-keygen
    2. Copy the vdsm user's public key to the Xen host.
      # sudo -u vdsm ssh-copy-id root@xenhost.example.com
    3. Log in to the Xen host to verify that the login works correctly.
      # sudo -u vdsm ssh root@xenhost.example.com
  3. Log in to the Administration Portal. In the Virtual Machines tab, click Import to open the Import Virtual Machine(s) window.
    The Import Virtual Machine(s) Window

    Figure 6.9. The Import Virtual Machine(s) Window

  4. Select the Data Center that contains the proxy host.
  5. Select XEN (via RHEL) from the Source drop-down list.
  6. Optionally, select a Xen provider External Provider from the drop-down list. The URI will be pre-filled with the correct URI. See Adding a Xen Host as a Virtual Machine Provider in the Administration Guide for more information.
  7. Enter the URI of the Xen host. The required format is pre-filled; you must replace <hostname> with the host name of the Xen host.
  8. Select the proxy host from the Proxy Host drop-down list.
  9. Click Load to list the virtual machines on the Xen host that can be imported.
  10. Select one or more virtual machines from the Virtual Machines on Source list, and use the arrows to move them to the Virtual Machines to Import list.

    Note

    Due to current limitations, Xen virtual machines with block devices do not appear in the Virtual Machines on Source list. They must be imported manually. See Importing a Block-Based Virtual Machine from a Xen Host.
  11. Click Next.
  12. Select the Cluster in which the virtual machines will reside.
  13. Select a CPU Profile for the virtual machines.
  14. Use the Allocation Policy and Storage Domain lists to select whether the disk used by the virtual machines will be thinly provisioned or preallocated, and select the storage domain on which the disk will be stored.

    Note

    The target storage domain must be a file-based domain. Due to current limitations, specifying a block-based domain causes the V2V operation to fail.
  15. If a virtual machine appears with a warning symbol beside its name, or has a tick in the VM in System column, select the Clone check box to clone the virtual machine.

    Note

    Cloning a virtual machine changes its name and MAC addresses and clones all of its disks, removing all snapshots.
  16. Click OK to import the virtual machines.
The CPU type of the virtual machine must be the same as the CPU type of the cluster into which it is being imported. See Viewing CPU Type of Cluster and Configuring CPU Type of Virtual Machine for details.

Procedure 6.28. Importing a Block-Based Virtual Machine from a Xen Host

  1. Enable public key authentication between the proxy host and the Xen host:
    1. Log in to the proxy host and generate SSH keys for the vdsm user.
      # sudo -u vdsm ssh-keygen
    2. Copy the vdsm user's public key to the Xen host.
      # sudo -u vdsm ssh-copy-id root@xenhost.example.com
    3. Log in to the Xen host to verify that the login works correctly.
      # sudo -u vdsm ssh root@xenhost.example.com
  2. Attach an export domain. See Attaching an Existing Export Domain to a Data Center in the Administration Guide for details.
  3. On the proxy host, copy the virtual machine from the Xen host:
    # virt-v2v-copy-to-local -ic xen+ssh://root@xenhost.example.com vmname
  4. Convert the virtual machine to libvirt XML and move the file to your export domain:
    # virt-v2v -i libvirtxml vmname.xml -o rhev -of raw -os storage.example.com:/exportdomain
  5. In the Administration Portal, click Storage, select the export domain, and click VM Import in the details pane to verify that the virtual machine is in your export domain.
  6. Import the virtual machine into the destination data domain. See Section 6.12.2, “Importing a Virtual Machine into the Destination Data Center” for details.

6.12.6. Importing a Virtual Machine from a KVM Host

Import virtual machines from KVM to your Red Hat Virtualization environment. Red Hat Virtualization converts KVM virtual machines to the correct format before they are imported. You must enable public key authentication between the KVM host and at least one host in the destination data center (this host is referred to in the following procedure as the proxy host).
If the import fails, refer to /var/log/vdsm/vdsm.log, and the relevant log file in /var/log/vdsm/import/ on the proxy host for details.

Warning

If you are importing a Windows virtual machine from a KVM host and you are using VirtIO devices, install the VirtIO drivers before importing the virtual machine. If the drivers are not installed, the virtual machine may not boot after import.
The VirtIO drivers can be installed from the virtio-win.iso or the rhev-tools-setup.iso. See Section 3.3.2, “Installing the Guest Agents and Drivers on Windows” for details.
If you are not using VirtIO drivers, review the configuration of the virtual machine after import, and before first boot to ensure that VirtIO devices are not being used.

Important

An import operation can only include virtual machines that share the same architecture. If any virtual machine to be imported has a different architecture, a warning will display and you will be prompted to change your selection to include only virtual machines with the same architecture.

Procedure 6.29. Importing a Virtual Machine from KVM

  1. Shut down the virtual machine. Starting the virtual machine through KVM during the import process can result in data corruption.
  2. Enable public key authentication between the proxy host and the KVM host:
    1. Log in to the proxy host and generate SSH keys for the vdsm user.
      # sudo -u vdsm ssh-keygen
    2. Copy the vdsm user's public key to the KVM host. The proxy host's known_hosts file will also be updated to include the host key of the KVM host.
      # sudo -u vdsm ssh-copy-id root@kvmhost.example.com
    3. Log in to the KVM host to verify that the login works correctly.
      # sudo -u vdsm ssh root@kvmhost.example.com
  3. Log in to the Administration Portal. In the Virtual Machines tab, click Import to open the Import Virtual Machine(s) window.
    The Import Virtual Machine(s) Window

    Figure 6.10. The Import Virtual Machine(s) Window

  4. Select the Data Center that contains the proxy host.
  5. Select KVM (via Libvirt) from the Source drop-down list.
  6. Optionally, select a KVM provider External Provider from the drop-down list. The URI will be pre-filled with the correct URI. See Adding a KVM Host as a Virtual Machine Provider in the Administration Guide for more information.
  7. Enter the URI of the KVM host in the following format:
    qemu+ssh://root@kvmhost.example.com/system
  8. Keep the Requires Authentication check box selected.
  9. Enter root in the Username field.
  10. Enter the Password of the KVM host's root user.
  11. Select the Proxy Host from the drop-down list.
  12. Click Load to list the virtual machines on the KVM host that can be imported.
  13. Select one or more virtual machines from the Virtual Machines on Source list, and use the arrows to move them to the Virtual Machines to Import list.
  14. Click Next.
  15. Select the Cluster in which the virtual machines will reside.
  16. Select a CPU Profile for the virtual machines.
  17. Optionally, select the Collapse Snapshots check box to remove snapshot restore points and include templates in template-based virtual machines.
  18. Optionally, select the Clone check box to change the virtual machine name and MAC addresses, and clone all disks, removing all snapshots. If a virtual machine appears with a warning symbol beside its name or has a tick in the VM in System column, you must clone the virtual machine and change its name.
  19. Click on each virtual machine to be imported and click on the Disks sub-tab. Use the Allocation Policy and Storage Domain lists to select whether the disk used by the virtual machine will be thin provisioned or preallocated, and select the storage domain on which the disk will be stored. An icon is also displayed to indicate which of the disks to be imported acts as the boot disk for that virtual machine. See Virtual Disk Storage Allocation Policies in the Technical Reference for more information.

    Note

    The target storage domain must be a file-based domain. Due to current limitations, specifying a block-based domain causes the operation to fail.
  20. If you selected the Clone check box, change the name of the virtual machine in the General sub-tab.
  21. Click OK to import the virtual machines.
The CPU type of the virtual machine must be the same as the CPU type of the cluster into which it is being imported. See Viewing CPU Type of Cluster and Configuring CPU Type of Virtual Machine for details.

6.12.7. Importing a Red Hat KVM Guest Image

You can import a Red Hat-provided KVM virtual machine image. This image is a virtual machine snapshot with a preconfigured instance of Red Hat Enterprise Linux installed.
You can configure this image with the cloud-init tool, and use it to provision new virtual machines. This eliminates the need to install and configure the operating system and provides virtual machines that are ready for use.

Procedure 6.30. Importing a Red Hat KVM Guest Image

  1. Download the most recent KVM virtual machine image from the Download Red Hat Enterprise Linux list, in the Product Software tab.
  2. Upload the virtual machine image using the Manager or the REST API. See Uploading a Disk Image to a Storage Domain in the Administration Guide.
  3. Create a new virtual machine and attach the uploaded disk image to it. See Section 2.1, “Creating a Linux Virtual Machine”.
  4. Optionally, use cloud-init to configure the virtual machine. See Section 7.8, “Using Cloud-Init to Automate the Configuration of Virtual Machines” for details.
  5. Optionally, create a template from the virtual machine. You can generate new virtual machines from this template. See Chapter 7, Templates for information about creating templates and generating virtual machines from templates.