.. _Upgrading Virtuozzo 6 with Virtuozzo Storage:

Upgrading Virtuozzo 6 with Virtuozzo Storage
--------------------------------------------

This section describes how to upgrade your Virtuozzo Storage cluster based on Virtuozzo 6 to a Virtuozzo Storage cluster with CLI management based on Virtuozzo 7. You can do this by using spare Virtuozzo 6 servers or in-place or migrate VMs and containers to a new Virtuozzo Storage cluster.

.. _Upgrading with Spare Virtuozzo 6 Servers vstorage:

Upgrading with Spare Virtuozzo 6 Servers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Update all servers in the cluster based on Virtuozzo 6 to the latest version. You can do this by running ``yum update`` on each server.

   .. note:: The oldest Virtuozzo 6 build eligible for upgrade is `6.0.11-3466 <https://help.virtuozzo.com/customer/en/portal/articles/2530506>`__.

2. Choose a server to upgrade in the cluster and migrate VMs and containers from it to other Virtuozzo 6 servers in the cluster.

3. Remove chunk servers from the server:

   a. Find out which chunk servers are stored on the server by running ``pstorage -c <cluster_name> top`` on any cluster server.

   b. Initiate removal of chunk servers from the server by running ``pstorage -c <cluster_name> rm-cs --wait <CS_ID>`` for each chunk server on the server.

4. Wait until the required chunk servers are removed and Virtuozzo Storage rebuilds. To monitor this process, run ``pstorage -c <cluster_name> top`` on any cluster server. The status of the chunk servers being removed will become ``releasing`` and the number of replicas on them will start dwindling. When the number of replicas on a CS reaches zero, the CS will be removed both from the server and the ``pstorage top`` output. Make sure that no chunk servers are left on the server to be upgraded.

5. Perform a fresh install of Virtuozzo 7 on the server. During installation, choose to create a new Virtuozzo Storage cluster. For instructions, see the *Virtuozzo 7 Installation Guide*.

6. Choose another Virtuozzo 6 server in the old cluster and migrate VMs and containers from it to the new Virtuozzo Storage cluster based on Virtuozzo 7. For details, see :ref:`Migrating VMs and Containers from Virtuozzo 6 to Virtuozzo 7`.

7. Perform a fresh install of Virtuozzo 7 on the second server. During installation, choose to join the new Virtuozzo Storage cluster based on Virtuozzo 7. For instructions, see the *Virtuozzo 7 Installation Guide*.

8. Repeat steps 7 and 8 for the remaining servers in the old cluster until all Virtuozzo 6 servers are upgraded to Virtuozzo 7.

9. If you store VM and container backups on a Virtuozzo 6 server, move them to a Virtuozzo 7 server as described in :ref:`Restoring Virtuozzo 6 Backups to Virtuozzo 7 Servers`.

.. _Upgrading by Migrating to a New Virtuozzo Storage Cluster:

Upgrading by Migrating to a New Virtuozzo Storage Cluster
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To upgrade by migrating VMs and containers from an old Virtuozzo Storage cluster based on Virtuozzo 6 to a new Virtuozzo Storage cluster based on Virtuozzo 7, do the following:

1. Update all servers in the cluster based on Virtuozzo 6 to the latest version. You can do this by running ``yum update`` on each server.

   .. note:: The oldest Virtuozzo 6 build eligible for upgrade is `6.0.11-3466 <https://help.virtuozzo.com/customer/en/portal/articles/2530506>`__.

2. On a different set of servers, create a new Virtuozzo Storage cluster based on Virtuozzo 7. For instructions, see the *Virtuozzo 7 Installation Guide*.

3. Migrate VMs and containers from the old cluster to the new cluster. For more details, see :ref:`Migrating VMs and Containers from Virtuozzo 6 to Virtuozzo 7`.

4. If you store VM and container backups on a Virtuozzo 6 server, move them to a Virtuozzo 7 server as described in :ref:`Restoring Virtuozzo 6 Backups to Virtuozzo 7 Servers`.

.. _Upgrading In-Place with Virtuozzo Storage:

Upgrading In-Place with Virtuozzo Storage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Virtuozzo 6 hardware nodes in a Virtuozzo Storage cluster can be upgraded in-place to Virtuozzo 7 as described in :ref:`Upgrading In-Place with Local Storage`.

The following additional requirements must be met:

1. Each node in the cluster must be updated to the latest version of Virtuozzo 6. You can check versions on all cluster nodes with ``pstorage -c <cluster_name> stat``.

   .. note:: The oldest Virtuozzo 6 build eligible for upgrade is `6.0.11-3466 <https://help.virtuozzo.com/customer/en/portal/articles/2530506>`__.

2. Only one cluster node must be upgraded to Virtuozzo 7 at any time.

If at some point your cluster happens to be populated with both Virtuozzo 6 and Virtuozzo 7 hardware nodes, it will retain the functionality of Storage for Virtuozzo 6 but not gain the new features of Storage for Virtuozzo 7 like erasure coding. As soon as all of the hardware nodes in such a hybrid cluster are upgraded to Virtuozzo 7, the cluster will begin operating with complete functionality offered by Storage for Virtuozzo 7.

.. note:: Even though Virtuozzo Storage supports mixed clusters, it is recommended to eventually upgrade all nodes in the cluster to Virtuozzo 7.
