4. Migrating VMs and Containers from Virtuozzo 6 to Virtuozzo 7

You can migrate older Virtuozzo 6 virtual machines (online) and containers (offline only) to Virtuozzo 7 servers. During migration, such VMs and containers will be converted in the Virtuozzo 7 format. In particular, VM devices will be replaced by those supported in Virtuozzo 7 (for a list of VM hardware supported in Virtuozzo 7, see the Virtuozzo 7 User’s Guide).

Before migrating Virtuozzo 6 virtual machines, take into account the following requirements and restrictions:

  • The hardware node must be running the latest version of Virtuozzo 6 (or at least 6.0.11-3466).
  • The VM must have a guest OS installed.
  • The VM must be running.
  • The VM must not have snapshots.
  • Windows VMs must have Virtuozzo guest tools and Linux VMs must have kernel headers installed.
  • The system time must be synchronized on the source and destination servers, for example, by means of NTP (http://www.ntp.org). The reason is that certain processes running in virtual machines may rely on system time being steady and might behave unpredictably when resumed on a destination server where time is different.
  • The network must support data transfer rates of at least 1 Gbps.
  • The source and destination servers must belong to the same subnetwork.
  • The CPUs on the source and destination servers must be manufactured by the same vendor, and the CPU capabilities of the destination server must be the same or exceed those on the source server.
  • VM disks can be located on local disks, shared NFS and GFS2 storages, and iSCSI raw devices.
  • Live migration is not supported for virtual machines with open prlctl enter sessions and containers with IPSec connections.

To migrate a running VM or a stopped or suspended container from Virtuozzo 6 to Virtuozzo 7, run the following command on the Virtuozzo 6 server.

# prlctl migrate <VM_or_CT_name> root@<VZ7_server_IP_address_or_hostname>

Note

If you need to migrate a container from a Virtuozzo 6 server with local storage to a Virtuozzo Storage cluster based on Virtuozzo 7, use the following command: prlctl migrate <CT_name> root@<VZ7_server_IP_address_or_hostname>/<CT_UUID>.

Migration from Virtuozzo 6 to Virtuozzo 7 implies VM and container downtime that depends on network bandwidth, virtual machine RAM size, and server load. To reduce downtime, it is recommended to at least perform migration when the server load is minimal.

During migration, a virtual machine is copied to the destination server and converted to the Virtuozzo 7 format. After a successful migration, the original Virtuozzo 6 VM is unregistered and the .migrated suffix is added to its directory name. If conversion fails, the migrated VM is deleted from the destination server and you can try again. If the second attempt also fails, you need to enable a legacy VM debug mode on the destination Virtuozzo 7 server (see Enabling Legacy VM Debug Mode), make another migration attempt, send the problem report, and contact the technical support team. With the debug mode enabled, the migrated VM will not be deleted from the destination Virtuozzo 7 server after conversion failure. It will remain stopped or running with disabled network to let the technical support team study the memory dump and find out the reason for failure.

Note

  1. Network settings configured from inside Windows VMs currently cannot be preserved during migration of such VMs.
  2. Containers with templates unsupported in Virtuozzo 7 (i.e. not listed here) cannot be reinstalled with the prlctl reinstall command after migration to Virtuozzo 7.