Migration allows you to move management of virtual machines (VMs) from VMmanager 5 KVM to VMmanager 6. Migration includes transfer of the following:

  • address space — IP addresses, pools and networks used;
  • user accounts;
  • VM access restrictions;
  • BILLmanager users, if the integration has been configured.

For migrated VMs, the platform will create a temporary cluster with limited functionality. After migration, you can migrate VMs from this cluster to other clusters in the platform.

Note

This article describes the migration from the VMmanager 5 KVM control panel. If you are using VMmanager 5 OVZ, migrate the VMs manually according to the instructions in Moving an OVZ container to LXD cluster

Migration restrictions


You can transfer any cluster from VMmanager 5 to VMmanager 6. Further migration of VMs to VMmanager 6 clusters has limitations in the current version of the platform:

RestrictionPossible solution
for cluster nodes with QEMU version lower than 2.0.0, "live" migration of VMs is not availablepower off the VM before migration
changing the storage type can cause temporary inaccessibility of VMsdo not change storage type during migration
VM may not have any network interfaces connected to NATedit the network configuration of the VM
no more than one VM interface should be connected to each network bridge of the cluster noderemove the VM interface or connect it to a free network bridge
VM may not have snapshots createddelete the snapshots before migration
VM may not have mounted ISO imagesunmount ISO images before migration
the VM disk must be in a local storage — a file or LVM storagemigration option will appear in the next versions of the platform

VM migration is possible to clusters with Switching or IP-fabric network settings.

Migration procedure


Address space import

VMmanager 5 and VMmanager 6 use different software to manage the address space:

  • VMmanager 5 uses the IPmanager 5 control panel;
  • VMmanager 6 uses the built-in IPmanager 6 module.

IPmanager 6 supports IPmanager 5 API emulation mode. If you are using other software products that require integration with IPmanager 5 (for example, BILLmanager, DCImanager 5, ISPmanager), you can configure them to work with IPmanager 6.

Example of address space management

VMmanager 5 cluster import

To import a VMmanager 5 cluster, the migration service:

  1. Connects to VMmanager 5 and gets information about the entities created in the control panel — VMs, users, cluster settings.
  2. Blocks VMmanager 5.
  3. Creates a backup of the VMmanager 6 platform.
  4. Imports information about VMmanager 5 settings into VMmanager 6.
  5. If integration with BILLmanager has been configured in VMmanager 5:
    1. Connects to BILLmanager.
    2. Changes the processing module type for VMmanager 6.
    3. Adds BILLmanager users with VMmanager 5 services to VMmanager 6.

Migrating users from VMmanager 5

If an e-mail is specified in the VMmanager 5 user settings, an account with that e-mail will be created in VMmanager 6.

If no e-mail is specified in the VMmanager 5 user settings, an account of the username@vm5.imported form will be created in VMmanager 6 where username is the VMmanager 5 user name.

Preparing for migration


VMmanager 5

  1. Create a backup of VMs and control panel. Read more in Backup plans in the VMmanager 5 documentation.
  2. Enable public key authentication:

    1. In the /etc/ssh/sshd_config file, specify the parameter

      PubkeyAuthentication yes 
      CODE

       

    2. Restart the sshd service: 

      systemctl restart sshd
      CODE
  3. Determine the number of CPU cores used on the cluster nodes: 

    dmidecode --type processor | grep -i "core enabled"
    CODE

VMmanager 6

  1. Make sure that the VMmanager 6 license contains enough CPU cores to connect all cluster nodes from VMmanager 5. If necessary, purchase a license that supports more cores.
  2. If the platform is not installed:
    1. Make sure that the server for VMmanager 6 meets the system requirements.
    2. Install VMmanager 6 according to the manual.
    3. Perform initial setup of the platform.

BILLmanager

  1. Create a temporary user to configure the integration. When creating, enable the Full access privileges option.
  2. Create the VMmanager 6 processing module and tariff plans for virtual server services.
  3. Create a backup of BILLmanager. Read more in Backup configuration in the BILLmanager documentation.
  4. Generate an authorization key:
    1. Connect to the server with BILLmanager via SSH with superuser permissions.
    2. Execute the command:

      /usr/local/mgr5/sbin/mgrctl -m billmgr session.newkey user='<integration_user>' key='<secret_key>'
      CODE

      <integration_user> — username for configuring integration

      <secret_key> — authorization key — a random combination of at least 16 symbols

    3. Save the key value.

IPmanager 5

  1. Make sure that IPmanager 5 is using the MySQL or MariaDB DBMS. If IPmanager 5 is using SQLite DBMS, switch to the use of MySQL DBMS. Read more in Usage of MySQL as a DBMS (database management system)

    Note

    The recommended MySQL/MariaDB version is at least 5.5.x. For earlier versions, successful VM import is not guaranteed.


  2. Make sure that the MySQL server is accessible from VMmanager 6 — check if ports 3306/TCP, 3306/UDP are open in the firewall settings and if remote connection to the database is possible:
    1. Connect to the IPmanager 5 server via SSH.
    2. Check the current firewall settings:

      firewall-cmd --list-all
      CODE
    3. Open ports 3306/TCP, 3306/UDP:

      firewall-cmd --permanent --add-port=3306/tcp
      firewall-cmd --permanent --add-port=3306/udp
      CODE
    4. Restart the firewall service:

      service firewalld restart
      CODE
    5. Open the MySQL configuration file /etc/my.cnf. Add the bind-address=xxx.xxx.xx.xx paramter to the [mysqld] section and mark as comment the line with the skip-networking parameter.

      xxx.xxx.xx.xx — IP address of the server with IPmanager 5

    6. Connect to mysql service:

      mysql -u root
      CODE
      use mysql;
      CODE
    7. Allow the user to connect to MySQL remotely:

      GRANT ALL PRIVILEGES ON <DB_NAME> . * TO '<DB_USER>'@'<REMOTE_IP>' IDENTIFIED BY '<DB_PASSWORD>';
      CODE

      <DB_NAME> — database name

      <DB_USER> — the name of the user who is allowed to connect remotely

      <REMOTE_IP> — IP address of the server from which the remote connection will be made

      <DB_PASSWORD> — password of the user who is allowed to connect remotely

      FLUSH PRIVILEGES;
      CODE

Migration


IP address migration

  1. Enter  Migration → Migrate IP addresses from IPmanager 5.
  2. Specify the connection settings for IPmanager 5:

    Note

    The connection settings are specified in the IPmanager configuration file /usr/local/mgr5/etc/ipmgr.conf :

    • Address of server with IPmanager — DBHost parameter;
    • Database name — DBName parameter;
    • Integration user login — DBUser parameter;
    • Password — DBPassword parameter.


    1. Address of server withi IPmanager — IP address of the IPmanager 5 database;
    2. Database name — IPmanager 5 database name;
    3. Integration user login — IPmanager 5 database username;
    4. Password — IPmanager 5 database user password.
  3. Press Migrate IP.
  1. Create a user on the server with IPmanager 5 for integration. All types of addresses to be migrated must be available to the user. Read more about address types in Manage the groups of IP addresses .
  2. Connect to the server with VMmanager 6 via SSH and run the command:

    docker exec -it vm_ipmgr_1 /opt/ispsystem/ipmgr/bin/mgr5import --dbhost <db_ip> --dbname <db_name> --dbuser <db_user> --dbpassword <db_pass> --user <ipmgr_user>
    CODE

    <db_ip> — IP address of the IPmanager 5 database

    <db_name> — IPmanager 5 database name. The default value is ipmgr

    <db_user> — user name of the IPmanager 5 database user. The default value is root

    <db_pass> — IPmanager 5 database user password

    <ipmgr_user> — name of the IPmanager 5 user created for integration.

    Note:

    You do not have to use the --user parameter. In this case, VMmanager 6 will import the entire database of IPmanager 5 and create pools of IP addresses like USERNAME_GROUPNAME, where USERNAME is the name of the IPmanager user, GROUPNAME is the name of the group of IPmanager addresses.

    --noip — do not convert IP addresses.

    --nohistory — do not convert the history of IP addresses.

    --debug — command log output to stdout.

    You can check execution of the command in the log file /var/log/ipmgr5_import.log in the vm_ipmgr_1 container on the server with VMmanager.

    Example of command output

To enable VMmanager 5 and BILLmanager to work with IPmanager 6:

  1. To allow VMmanager 5 to access only a certain pool of IP addresses, create a pool in VMmanager 6 with the suffix public. For example, VM5_public.
  2. Create an administrator account named ipmgr5@example.com in VMmanager 6.

    Note

    ipmgr5@example.com is not an example, but the exact name that you need to specify when creating an account.

  3. In VMmanager 5 and BILLmanager:
    1. Enter Integration IPmanager .
    2. Specify the settings for integration:
      1. URLhttps://domain.com/api/ipmgr5/v3/ipmgr 

        domain.comdomain name or IP address of the server with VMmanager

      2. Username:

        • to allow the control panel to access only a certain pool of IP addresses, specify pool_XXX;

          XXX — pool prefix in VMmanager. For example, for the VM5_public pool, specify the username pool_VM5.

        • to allow the control panel to access the entire address space, specify an arbitrary user name.
      3. Password — password of the ipmgr5@example.com user.
      4. In the Synchronization of IP-addresses section leave the Administrator login and Administrator password fields blank.
    3. Press Ok.

If VMmanager 6 has integration with PowerDNS, you need to synchronize PTR records with the DNS-server after the address space is created. To do this:

  1. Delete the PowerDNS Integration module: SettingsModulesIntegration with PowerDNSDelete the moduleDelete the module.
  2. Reinstall and configure the integration module. Read more in Integration with PowerDNS module.

You can check the success of synchronization in the /var/log/dns_proxy_integration.log file in the vm_dns_proxy_1 container on the server with VMmanager.

Virtual machines migration

Note

You can migrate virtual machines from multiple VMmanager 5 instances to a single VMmanager 6 instance. A separate temporary cluster will be created for VMs from each VMmanager 5 instance.

  1. Enter Migration Migrate VMmanager 5.
  2. Specify the migration settings:
    1. Temporary cluster name , which will be created in VMmanager 6.
    2. VMmanager 5 server SSH-address.
    3. SSH username to connect to the server with VMmanager 5.
    4. SSH port .
  3. Copy the Public ssh-key and add it to the ~/.ssh/authorized_keys file on the server with VMmanager 5.

    Note

    To enable public key authentication, in the /etc/ssh/sshd_config file on the server with VMmanager 5, specify the parameter 

    PubkeyAuthentication yes 
    CODE
  4. Specify the settings of connection to BILLmanager if integration has been set up in VMmanager 5:
    1. BILLmanager 5 server address — server IP address or domain name.
    2. Panel administrator login — name of the temporary integration user created when preparing BILLmanager.
    3. Temporary key created during BILLmanager preparation.
    4. VMmanager 5 handler name.
  5. Press Migrate VMmanager 5.

Transferring a VM from a temporary cluster

A temporary cluster is created for VMs from VMmanager 5 with the VM5 KVM type and "Switching" network configuration. Available operations with VMs in a temporary cluster:

  • power on;
  • power off;
  • reboot;
  • connection via VNC or SPICE;
  • delete;
  • migrate to another cluster node;
  • migrate to another cluster, if the VM configuration meets the requirements.

To ensure that all functions are available on migrated VMs, migrate them to other platform clusters.

If a VM does not meet the requirements for migration to the VMmanager 6 cluster, the Migration to the VM6 cluster is unavailable link is displayed next to its name. Click on the link for more information.

The platform interacts with the VM through the QEMU Guest Agent program. For example, QEMU Guest Agent is needed so that VMmanager can change the password, run the script and migrate the VM to the cluster with the "IP fabric" network settings type. If QEMU Guest Agent is not installed on the VM or is not responding, the Status column displays the message Problem with Guest Agent. To install QEMU Guest Agent on a VM, click on Problem with Guest AgentInstall GA and restart VM. You can install QEMU Guest Agent manually. For more information, see the article How to check and restore QEMU Guest Agent?

VM migration without powering it off ("live" migration) is possible if:

  • QEMU version 2.0.0 or higher is installed on the VMmanager 5 cluster node;
  • the version of libvirt on the VMmanager 6 cluster node is not lower than the version of libvirt on the VMmanager 5 cluster node.

In other cases, the VMs must be powered off before migration.

To move a VM from a temporary cluster:

  1. Select the necessary VMs → more...Migrate.

  2. Specify the migration settings:
    1. Disable the Shrink the VM disk prior to migration option if disk compression is not required. The option is only available for disabled VMs.
    2. Disable the Use the distribution filters option if you do not need to use filters. Read more about distribution filters in Managing servers in the cluster.
    3. Select the cluster to migrate to.
    4. Select the node to migrate to.
    5. Select the available storages on the node that will host the disks of the VMs. Disks of the same VM can be placed in different storages.
    6. Review the information in the VM Summary section. The section contains information about whether all disks are allocated and whether the VM needs to be rebooted.
  3. Press Migrate (Migrate and reboot).

What to do after migration

After VMs migration, a temporary cluster can be deleted. Free nodes from the temporary cluster can be connected to other clusters in the platform. We recommend that you reinstall the OS on these nodes before connecting.

Transferring services in BILLmanager


If integration with BILLmanager has been configured in VMmanager 5, then the migration service will:

  1. Change the processing module type from VMmanager 5 to VMmanager 6.
  2. Add the prefix _imported to its name.

A new processing module is created to manage the VMs in the temporary cluster. Ordering new services through this processing module is not available. After migrating the VMs to other platform clusters, switch the services to tariff plans with a different VMmanager 6 processing module.

Configuration procedure:

  1. Connect the VMmanager 6 service processing module for VMmanager 5 tariff plans:
    1. Enter ProductsTariff plans → select the tariff plan from which the virtual server service for VMmanager 5 was sold → Modules button.
    2. Enable the VMmanager 6 processing module.
  2. Power the virtual machines off from BILLmanager:
    1. Enter Products/Services Virtual private servers → select all VMmanager 5 virtual server services (press CTRL) → Edit button.
    2. Press the Disable button.
    3. Confirm powering off with the Ok button.
  3. Migrate virtual server services to tariff plans with the VMmanager 6 processing module:
    1. Enter Products/ServicesVirtual private servers → select all VMmanager 5 virtual server services (press CTRL) → Edit button.
    2. Specify the VMmanager 6 service processing module in the Processing module field.
    3. Press Ok .
  4. Enable the services in BILLmanager.
  5. Delete the temporary user created for integration.

Re-migration


If the first migration failed, you can perform the migration again. If an address space was imported during the first migration, you do not need to delete it to migrate again.

Canceling migration


You can return VM management to VMmanager 5 after migration. Migration can be cancelled only if the VMs were not deleted or moved to other clusters after migration.

To cancel migration:

  1. Restore the status of VMmanager 6 from a backup. Read more in Creating platform backups.
  2. If you changed BILLmanager settings, restore the control panel from a backup. Read more in Backup configuration in the BILLmanager documentation.
  3. Unlock VMmanager 5:
    1. Connect to the server with VMmanager 5 via SSH:
    2. Execute the command:

      /usr/local/mgr5/sbin/mgrctl -m vmmgr -u
      BASH