Trilio 4.1 can be upgraded without reinstallation to a higher version of T4O if available.
Pre-requisites
Please ensure the following points are met before starting the upgrade process:
No Snapshot or Restore is running
The Global-Job-Scheduler is disabled
wlm-cron is disabled on the Trilio Appliance
Access to the Gemfury repository to fetch new packages
\
Note: For single IP-based NFS share as a backup target refer to this rolling upgrade on the Ansible Openstack document. User needs to follow the Ansible Openstack installation document if having multiple IP-based NFS share
Deactivating the wlm-cron service
The following sets of commands will disable the wlm-cron service and verify that it has been completely shut down.
[root@TVM2 ~]# pcs resource disable wlm-cron
[root@TVM2 ~]# systemctl status wlm-cron
● wlm-cron.service - workload's scheduler cron service
Loaded: loaded (/etc/systemd/system/wlm-cron.service; disabled; vendor preset : disabled)
Active: inactive (dead)
Jun 11 08:27:06 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:06 - INFO - 1...t
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 140686268624368 Child 11389 ki...5
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - 1...5
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: Shutting down thread pool
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - S...l
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: Stopping the threads
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - S...s
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: All threads are stopped succes...y
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - A...y
Jun 11 08:27:09 TVM2 systemd[1]: Stopped workload's scheduler cron service.
Hint: Some lines were ellipsized, use -l to show in full.
[root@TVM2 ~]# pcs resource show wlm-cron
Resource: wlm-cron (class=systemd type=wlm-cron)
Meta Attrs: target-role=Stopped
Operations: monitor interval=30s on-fail=restart timeout=300s (wlm-cron-monito r-interval-30s)
start interval=0s on-fail=restart timeout=300s (wlm-cron-start-int erval-0s)
stop interval=0s timeout=300s (wlm-cron-stop-interval-0s)
[root@TVM2 ~]# ps -ef | grep -i workloadmgr-cron
root 15379 14383 0 08:27 pts/0 00:00:00 grep --color=auto -i workloadmgr -cron
Update the repositories
Deb-based (Ubuntu)
Add the Gemfury repository on each of the DMAPI containers, Horizon containers & Compute nodes.
Create a file /etc/apt/sources.list.d/fury.list and add the below line to it.
deb [trusted=yes] https://apt.fury.io/triliodata-4-2/ /
The following commands can be used to verify the connection to the Gemfury repository and to check for available packages.
apt-get update
apt list --upgradable
RPM-based (CentOS)
Add Trilio repo on each of the DMAPI containers, Horizon containers & Compute nodes.
Modify the file /etc/yum.repos.d/trilio.repo and add the below line in it.
The following commands can be used to verify the connection to the Gemfury repository and to check for available packages.
yum repolist
yum check-upgrade
Upgrade tvault-datamover-api package
The following steps represent the best practice procedure to upgrade the DMAPI service.
Login to DMAPI container
Take a backup of the DMAPI configuration in /etc/dmapi/
use apt list --upgradeable to identify the package used for the dmapi service
Update the DMAPI package
restore the backed-up config files into /etc/dmapi/
Restart the DMAPI service
Check the status of the DMAPI service
These steps are done with the following commands.
This example is assuming that the more common python3 packages are used.
Deb-based (Ubuntu)
lxc-ls #grep container name for dmapi service
lxc-attach -n <dmapi container name>
tar -czvf dmapi_config.tar.gz /etc/dmapi
apt list --upgradable
apt install python3-dmapi --upgrade
tar -xzvf dmapi_config.tar.gz -C /
systemctl restart tvault-datamover-api
systemctl status tvault-datamover-api
RPM-based (CentOS)
lxc-ls #grep container name for dmapi service
lxc-attach -n <dmapi container name>
tar -czvf dmapi_config.tar.gz /etc/dmapi
yum list installed | grep dmapi ##use dnf if yum not available
yum check-update python3-dmapi ##use dnf if yum not available
yum upgrade python3-dmapi ##use dnf if yum not available
tar -xzvf dmapi_config.tar.gz -C /
systemctl restart tvault-datamover-api
systemctl status tvault-datamover-api
Upgrade Horizon plugin
The following steps represent the best practice procedure to update the Horizon plugin.
Login to Horizon Container
use apt list --upgradeable to identify the package the Trilio packages for the workloadmgrclient, contegoclient and tvault-horizon-plugin
Install the tvault-horizon-plugin package in the required python version
Install the workloadmgrclient package
Install the contegoclient
Restart the Horizon webserver
Check the installed version of the workloadmgrclient
These steps are done with the following commands.
This example is assuming that the more common python3 packages are used.
lxc-attach -n controller_horizon_container-ead7cc60
yum list installed | grep trilio ##use dnf if yum not available
yum upgrade python3-contegoclient-el8 python3-tvault-horizon-plugin-el8 python3-workloadmgrclient-el8 ##use dnf if yum not available
systemctl restart httpd
workloadmgr --version
Upgrade the tvault-contego service
The following steps represent the best practice procedure to update the tvault-contego service on the compute nodes.
Login into the compute node
Take a backup of the config files at and /etc/tvault-contego/ and /etc/tvault-object-store (if S3)
Unmount storage mount path
Upgrade the tvault-contego package in the required python version
(S3 only) upgrade the s3-fuse-plugin package
Restore the config files
(S3 only) Restart the tvault-object-store service
Restart the tvault-contego service
Check the status of the service(s)
These steps are done with the following commands.
This example is assuming that the more common python3 packages are used.
NFS as Storage Backend
Take a backup of the config files
tar -czvf contego_config.tar.gz /etc/tvault-contego/
Check the mount path of the NFS storage using the command df -h and unmount the path using umount command.
e.g.
Update Haproxy configuration using the below command on the ansible host.
cd /opt/openstack-ansible/playbooks
openstack-ansible haproxy-install.yml
Enable mount-bind for NFS
T4O 4.2 has changed the calculation of the mount point.
It is necessary to set up the mount-bind to make T4O 4.1 or older backups available for T4O 4.2
Please follow this documentation for detailed steps to set up mount bind.