Search…
TVO-4.2
Upgrading on Ansible OpenStack

Upgrading from TrilioVault 4.1 to a higher version

TrilioVault 4.1 can be upgraded without reinstallation to a higher version of TVO if available.

Pre-requisites

Please ensure the following points are met before starting the upgrade process:
  • No Snapshot or Restore is running
  • Global job scheduler is disabled
  • wlm-cron is disabled on the TrilioVault Appliance
  • Access to the gemfury repository to fetch new packages

Deactivating the wlm-cron service

The following sets of commands will disable the wlm-cron service and verify that it is has been completly shut down.
1
[[email protected] ~]# pcs resource disable wlm-cron
2
[[email protected] ~]# systemctl status wlm-cron
3
● wlm-cron.service - workload's scheduler cron service
4
Loaded: loaded (/etc/systemd/system/wlm-cron.service; disabled; vendor preset : disabled)
5
Active: inactive (dead)
6
7
Jun 11 08:27:06 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:06 - INFO - 1...t
8
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 140686268624368 Child 11389 ki...5
9
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - 1...5
10
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: Shutting down thread pool
11
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - S...l
12
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: Stopping the threads
13
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - S...s
14
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: All threads are stopped succes...y
15
Jun 11 08:27:07 TVM2 workloadmgr-cron[11115]: 11-06-2021 08:27:07 - INFO - A...y
16
Jun 11 08:27:09 TVM2 systemd[1]: Stopped workload's scheduler cron service.
17
Hint: Some lines were ellipsized, use -l to show in full.
18
[[email protected] ~]# pcs resource show wlm-cron
19
Resource: wlm-cron (class=systemd type=wlm-cron)
20
Meta Attrs: target-role=Stopped
21
Operations: monitor interval=30s on-fail=restart timeout=300s (wlm-cron-monito r-interval-30s)
22
start interval=0s on-fail=restart timeout=300s (wlm-cron-start-int erval-0s)
23
stop interval=0s timeout=300s (wlm-cron-stop-interval-0s)
24
[[email protected] ~]# ps -ef | grep -i workloadmgr-cron
25
root 15379 14383 0 08:27 pts/0 00:00:00 grep --color=auto -i workloadmgr -cron
26
Copied!

Update the repositories

Deb-based (Ubuntu)

Add the Gemfury repository on each dmapi, horizon containers & compute nodes.
Create file /etc/apt/sources.list.d/fury.list and add the below line to it.
1
deb [trusted=yes] https://apt.fury.io/triliodata-hotfix-4-2/ /
Copied!
The following commands can be used to verify the connection to the gemfury repository and to check for available packages.
1
apt-get update
2
apt list --upgradable
Copied!

RPM-based (CentOS)

Add trilio repo on each dmapi, horizon containers & compute nodes.
Modify the file /etc/yum.repos.d/trilio.repo and add below line in it.
1
[triliovault-4-2]
2
name=triliovault-4-2
3
baseurl=http://trilio:[email protected]:8283/triliodata-hotfix-4-2/yum/
4
gpgcheck=0
5
enabled=1
Copied!
The following commands can be used to verify the connection to the gemfury repository and to check for available packages.
1
yum repolist
2
yum check-upgrade
Copied!

Upgrade tvault-datamover-api package

The following steps represent the best practice procedure to upgrade the dmapi service.
  1. 1.
    Login to dmapi container
  2. 2.
    Take a backup of the dmapi configuration in /etc/dmapi/
  3. 3.
    use apt list --upgradeable to identify the package used for the dmapi service
  4. 4.
    Update the dmapi package
  5. 5.
    restore the backed-up config files into /etc/dmapi/
  6. 6.
    Restart the dmapi container
  7. 7.
    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)

1
lxc-ls #grep container name for dmapi service
2
lxc-attach -n <dmapi container name>
3
tar -czvf dmapi_config.tar.gz /etc/dmapi
4
apt list --upgradable
5
apt install python3-dmapi --upgrade
6
tar -xzvf dmapi_config.tar.gz -C /
7
systemctl restart tvault-datamover-api
8
systemctl status tvault-datamover-api
Copied!

RPM-based (CentOS)

1
lxc-ls #grep container name for dmapi service
2
lxc-attach -n <dmapi container name>
3
tar -czvf dmapi_config.tar.gz /etc/dmapi
4
yum list installed | grep dmapi
5
yum check-update python3-dmapi
6
yum upgrade python3-dmapi
7
tar -xzvf dmapi_config.tar.gz -C /
8
systemctl restart tvault-datamover-api
9
systemctl status tvault-datamover-api
Copied!

Upgrade Horizon plugin

The following steps represent the best practice procedure to update the Horizon plugin.
  1. 1.
    Login to Horizon Container
  2. 2.
    use apt list --upgradeable to identify the package the TrilioVault packages for the workloadmgrclient, contegoclient and Horizon plugin
  3. 3.
    Install the tvault-horizon-plugin package in the required python version
  4. 4.
    install the workloadmgrclient package
  5. 5.
    install the contegoclient
  6. 6.
    Restart the Horizon webserver
  7. 7.
    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.

Deb-based (Ubuntu)

1
lxc-attach -n controller_horizon_container-ead7cc60
2
apt list --upgradable
3
apt install python3-tvault-horizon-plugin --upgrade
4
apt install python3-workloadmgrclient --upgrade
5
apt install python3-contegoclient --upgrade
6
systemctl restart apache2
7
workloadmgr --version
Copied!

RPM-based (CentOS)

1
lxc-attach -n controller_horizon_container-ead7cc60
2
yum list installed | grep trilio
3
yum upgrade python3-contegoclient-el8 python3-tvault-horizon-plugin-el8 python3-workloadmgrclient-el8
4
systemctl restart httpd
5
workloadmgr --version
Copied!

Upgrade the tvault-contego service

The following steps represent the best practice procedure to update the tvault-contego service on the compute nodes.
  1. 1.
    Login into the compute node
  2. 2.
    Take a backup of the config files in /etc/tvault-contego/
  3. 3.
    use apt list --upgradeable to identify the tvault-contego package used
  4. 4.
    upgrade the tvault-contego package in the required python version
  5. 5.
    (S3 only) upgrade the s3-fuse-plugin package
  6. 6.
    restore the config files into /etc/tvault-contego/
  7. 7.
    (S3 only) Restart the tvault-object-store service
  8. 8.
    Restart the tvault-contego service
  9. 9.
    check the status
These steps are done with the following commands. This example is assuming that the more common python3 packages are used.

Deb-based (Ubuntu)

1
tar -czvf contego_config.tar.gz /etc/tvault-contego/
2
apt list --upgradable
3
apt install python3-tvault-contego --upgrade
4
apt install python3-s3-fuse-plugin --upgrade
5
tar -xzvf contego_config.tar.gz -C /
6
systemctl restart tvault-object-store
7
systemctl restart tvault-contego
8
systemctl status tvault-contego
9
df -h
Copied!

RPM-based (CentOS)

1
tar -czvf contego_config.tar.gz /etc/tvault-contego/
2
yum list installed | grep tvault
3
yum upgrade python3-tvault-contego
4
yum upgrade python3-s3fuse-plugin
5
tar -xzvf contego_config.tar.gz -C /
6
systemctl restart tvault-object-store
7
systemctl restart tvault-contego
8
systemctl status tvault-contego
9
df -h
Copied!

Advance settings/configuration

Customize HAproxy cfg parameters for TrilioVault datamover api service

Following are the haproxy cfg parameters recommended for optimal performance of dmapi service. File location on controller /etc/haproxy/haproxy.cfg
1
retries 5
2
timeout http-request 10m
3
timeout queue 10m
4
timeout connect 10m
5
timeout client 10m
6
timeout server 10m
7
timeout check 10m
8
balance roundrobin
9
maxconn 50000
Copied!

Parameters timeout client, timeout server and balance for DMAPI service

If values were already updated during any of the previous releases, further steps can be skipped.
Remove below content, if present in the file/etc/openstack_deploy/user_variables.ymlon ansible host.
1
haproxy_extra_services:
2
- service:
3
haproxy_service_name: datamover_service
4
haproxy_backend_nodes: "{{ groups['dmapi_all'] | default([]) }}"
5
haproxy_ssl: "{{ haproxy_ssl }}"
6
haproxy_port: 8784
7
haproxy_balance_type: http
8
haproxy_backend_options:
9
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
Copied!
Add the below lines at end of the file /etc/openstack_deploy/user_variables.yml on the ansible host.
1
# Datamover haproxy setting
2
haproxy_extra_services:
3
- service:
4
haproxy_service_name: datamover_service
5
haproxy_backend_nodes: "{{ groups['dmapi_all'] | default([]) }}"
6
haproxy_ssl: "{{ haproxy_ssl }}"
7
haproxy_port: 8784
8
haproxy_balance_type: http
9
haproxy_balance_alg: roundrobin
10
haproxy_timeout_client: 10m
11
haproxy_timeout_server: 10m
12
haproxy_backend_options:
13
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
Copied!
Update Haproxy configuration using the below command on ansible host.
1
cd /opt/openstack-ansible/playbooks
2
openstack-ansible haproxy-install.yml
Copied!

Enable mount-bind for NFS

TVO 4.2 has changed the calculation of the mount point. It is necessary to set up the mount-bind to make TVO 4.1 or older backups available for TVO 4.2
Please follow this documentation to set up the mount bind for Canonical OpenStack.