Upgrading CycleCloud
It is possible to upgrade the Azure CycleCloud application in place as new versions become available.
CycleCloud 8
CycleCloud 8 has a different package name cyclecloud8
so as to prevent accidental upgrade from one major version to the next. There are incompatible changes between major versions. One may not install both cyclecloud
and cyclecloud8
on the same machine.
The supported upgrade path is to remove the cyclecloud
package and install cyclecloud8
. Your data and configuration directories within /opt/cycle_server
will be preserved upon removal of the cyclecloud
package. Upon installing cyclecloud8
, the installation scripts will detect existing data and configuration then run through any upgrade migrations automatically.
Upgrading on Debian or Ubuntu
Follow the instructions in Installing on Debian or Ubuntu to configure the Microsoft apt repository (if it was not already done during installation).
Upgrade the CycleCloud package using:
sudo apt update
sudo apt -y upgrade cyclecloud
To perform a supported indirect upgrade from CycleCloud 7 to CycleCloud 8:
sudo apt update
sudo apt -y remove cyclecloud
sudo apt -y install cyclecloud8
To perform a direct upgrade of one version of CycleCloud 8 to a newer version:
sudo apt update
sudo apt -y upgrade cyclecloud8
Upgrading on Enterprise Linux (RHEL) clones
Follow the instructions in Installing on Enterprise Linux (RHEL) clones to configure the Microsoft yum repository (if it was not already done during installation).
Upgrade the CycleCloud package using:
sudo yum -y upgrade cyclecloud
To perform a supported indirect upgrade from CycleCloud 7 to CycleCloud 8:
sudo yum -y remove cyclecloud
sudo yum -y install cyclecloud8
To perform a direct upgrade of one version of CycleCloud 8 to a newer version:
sudo yum -y upgrade cyclecloud8
Upgrading from the Microsoft Download center
In environments where the Microsoft package repositories are unavailable or disallowed by policy, the CycleCloud packages may be downloaded and installed manually.
CycleCloud is released via Download Center as either a Debian or RPM package.
To upgrade, copy the installer to the host running CycleCloud and run the platform-specific package upgrade command.
For Debian, use:
dpkg -i cyclecloud_7.9.2-amd64.deb
For RedHat variants, use:
rpm -U cyclecloud_7.9.2.rpm
Important
Upgrading may have undesired consequences on your CycleCloud environment and any running clusters. Microsoft recommends testing all upgrades in a development or staging environment to minimize risk on production workloads.
Common Upgrade Questions
Will my old templates be compatible with this new version?
Templates should be compatible for minor version upgrades. Upgrades between major version releases may require you to pin clusters to the older version your templates are designed for.
Is there any downtime associated to the upgrade?
CycleCloud will be down for a bit while the upgrade occurs. The upgrade typically takes 2-3 minutes.
Can I upgrade while clusters are running?
Yes, but the clusters will not be able to communicate with CycleCloud while it's down. This means that autoscale, termination requests, etc will not work until the upgrade is complete.
Migrate CycleCloud to a New Host
The first installation of CycleCloud configures the service user and startup configuration. These will be absent if the installation data is simply copied from host to host. The following instructions describe how to migrate a CycleCloud installation to another host.
A Note on Running Clusters
Clusters managed by CycleCloud are sending information to CycleCloud via HTTPS and AMQP. The access information to setup these communication protocols are received by the nodes at launch time. So if the hostname or IP address of CycleCloud changes while nodes are running then communication might be broken. It's recommended to terminate all clusters before migrating.
One exception to this is nodes that are configured with IsReturnProxy = true
. In this case, the channels of communication are initiated outbound from CycleCloud and will be automatically re-established after migration.
To migrate a CycleCloud host:
- Stop cycle_server on the source host:
service cycle_server stop
(LSB init scripts) orsystemctl stop cycle_server
(systemd init) - Run
groupadd cycle_server
anduseradd cycle_server
on the target host. Use the original GID and UID if possible. - Install openjdk version 8 on the target host by running
apt-get -y install openjdk-8-jre-headless
oryum install -y java-1.8.0-openjdk
- Transfer to the target host using
rsync -a /opt/cycle_server username@remote_host:/opt/cycle_server
or another meta-data preserving transfer tool. - Enable the LSB init or systemd init for CycleCloud by running
/opt/cycle_server/util/autostart.sh on
- Start the CycleCloud service with either
service cycle_server start
orsystemctl start cycle_server
The instructions can be simplified if, instead of migrating to a new host, the installation migration is from a non-standard directory to /opt/cycle_server:
- Stop cycle_server on the source host:
service cycle_server stop
(LSB init scripts) orsystemctl stop cycle_server
(systemd init) - Transfer to the default location
rsync -a /usr/share/hpc/cycle_server /opt/cycle_server
. - Enable the LSB init or systemd init for CycleCloud by running
/opt/cycle_server/util/autostart.sh on
- Start the CycleCloud service with either
service cycle_server start
orsystemctl start cycle_server
After migrating to a new host, or migrating to the default installation directory, upgrades can be performed as described in the first section.