7.1. Updating the System


It is strongly recommended to have every machine run the same version of Virtuozzo Hybrid Server. At the very least make sure that product versions are only one major update apart. For example, before you update a machine to Virtuozzo Hybrid Server 7.0 Update 7, make sure that all other machines in the cluster already run Update 6. The reason is that VMs created on newer nodes may fail to start on older nodes, thus causing issues with migration, restore from backup, high availability, and such.

Virtuozzo Hybrid Server allows quick and easy updates with the yum tool standard for RPM-compatible Linux operating systems. The main components you may need to update are the following:

  • tools and libraries
  • EZ templates
  • kernel
  • ReadyKernel patch
  • KVM/QEMU hypervisor in running virtual machines


To see which updates are available before installing them, you can run yum check-update.

7.1.1. Using A Proxy Server to Install Updates

If your server cannot access the Internet directly, you can update Virtuozzo Hybrid Server via a proxy server. To do that, specify the proxy server information in the /etc/yum.conf file as follows:


After configuring yum to use the proxy server, proceed to installing updates as usual.

7.1.2. Updating All Components

The easiest way to update all components of the Virtuozzo Hybrid Server software is to run the yum update command. yum will do the following:

  1. Access Virtuozzo Hybrid Server repositories.
  2. Check for available updates for tools, libraries, EZ templates, Virtuozzo Hybrid Server kernel, and the latest ReadyKernel patch for the current kernel. If a new Virtuozzo Hybrid Server kernel is available, it will check for the corresponding ReadyKernel patch as well.
  3. Install the updates on your system.

7.1.3. Updating Kernel

Updating the Virtuozzo Hybrid Server kernel requires updating the vzkernel and vzkernel-devel packages:

# yum update vzkernel vzkernel-devel

7.1.4. Updating KVM/QEMU Hypervisor in Virtual Machines

Virtuozzo Hybrid Server can update KVM/QEMU hypervisor live in running virtual machines that have KVM/QEMU version 2.6.0 or newer.

To do this, install the vz-qemu-engine-updater package and update the qemu-kvm-vz package:

# yum install vz-qemu-engine-updater
# yum update qemu-kvm-vz

Updating qemu-kvm-vz starts a 10-minute timer to give yum time to complete the operation. After that the vz-qemu-engine-updater tool begins updating KVM/QEMU in each running virtual machine, one at a time.

Immediate updating may not be possible in several cases:

  • yum is currently locked on the node (in this case, no VMs can be updated automatically until the lock is released)
  • a VM is changing states (e.g., from running to stopped)
  • configuration changes are being applied to a VM
  • a backup of a VM is being created or
  • any other prlctl operation is executed on a VM

The KVM/QEMU updater will skip such VMs and queue them for a later update. The updater will perform a set number of retries to update VMs that have been skipped, each retry after a set delay. If retries are exhausted or the update fails for some reason, the virtual machine is left running with the outdated KVM/QEMU.

To manually disable automatic updates, mask the updater service:

# systemctl mask vz-qemu-engine-updater.service

To re-enable updates, unmask the updater service:

# systemctl unmask vz-qemu-engine-updater.service

To check if virtual machines have been successfully updated, view the log file:

# journalctl -u vz-qemu-engine-updater
<...>VM MyVM (was using qemu-kvm-vz-2.6.0-28.3.6.vz7.30) has been successfully updated.
<...>Finished updating VMs.
<...>Successfully updated QEMU engine for all running VMs.

To configure the number of retries, the delay between them, and other parameters, refer to the vz-qemu-engine-updater.json man page and edit the /var/lib/vz-qemu-engine-updater.json configuration file. Updating KVM/QEMU Hypervisor Manually

If, for some reason, the KVM/QEMU hypervisor was not automatically updated in a running VM, you can do it manually as follows:

  1. Make sure that the VM uses an outdated version of the hypervisor.

    Check the version installed on the node:

    # rpm -qa qemu-kvm-vz

    And compare it with the version the VM currently uses:

    # virsh qemu-monitor-command <VM_name> '{"execute":"query-version"}'
    <...>"package":" (qemu-kvm-vz-<version>)"}<...>
  2. Make sure no prlctl operations are being executed on the VM.

  3. Update the hypervisor that the VM uses:

    # prlctl update-qemu <VM_name>

7.1.5. Updating EZ Templates

You can update an EZ template like any other RPM package using the yum update command. For example:

# yum update centos-6-x86_64-ez
  centos-6-x86_64-ez.noarch 0:4.7.0-1


  1. Updating an OS EZ template requires that you append ez to template name.
  2. You can also use the vzpkg update template command to update EZ templates.