Trilio is integrating natively into the RHOSP Director.
Manual deployment methods are not supported for RHOSP.
Prepare for deployment
Depending whether the RHOSP environment is already installed or is getting installed for the first time different steps are done to be able to deploy Trilio.
All commands need to be run as user 'stack'
The following command clones the Trilio configscripts github.
cd /home/stack
git clone -b v4.0maintenance https://github.com/trilioData/triliovault-cfg-scripts.git
cd triliovault-cfg-scripts/redhat-director-scripts/
If your backup target is ceph S3 with SSL and SSL certificates are self signed or authorized by private CA, then user needs to provide CA chain certificate to validate the SSL requests. For that, user needs to rename his ca chain cert file to 's3-cert.pem' and copy it into directory - 'triliovault-cfg-scripts/redhat-director-scripts/redhat-director-scripts/puppet/trilio/files'
This service needs to share the same role as the nova-api service.
In case of the pre-defined roles will the nova-api service run on the role Controller.
In case of custom defined roles, it is necessary to use the role the nova-api service is using.
Add the following line to the identified role:
'OS::TripleO::Services::TrilioDatamoverApi'
Trilio Datamover Service
This service needs to share the same role as the nova-compute service.
In case of the pre-defined roles will the nova-compute service run on the role Compute.
In case of custom defined roles, it is necessary to use the role the nova-compute service is using.
Add the following line to the identified role:
'OS::TripleO::Services::TrilioDatamover'
Prepare Trilio container images
All commands need to be run as user 'stack'
Trilio containers are pushed to 'RedHat Container Registry'.
Registry URL: 'registry.connect.redhat.com'. Container pull urls are given below.
There are three registry methods available in RedHat Openstack Platform.
Remote Registry
Local Registry
Satellite Server
Remote Registry
Follow this section when 'Remote Registry' is used.
For this method it is not necessary to pull the containers in advance.
It is only necessary to populate the trilio_env.yaml file with the Trilio container URLs from Redhat registry.
Populate the trilio_env_osp16.yaml with container urls for:
Trilio Datamover container
Trilio Datamover api container
Trilio Horizon Plugin
trilio_env_osp16.yaml will be available in triliovault-cfg-scripts/redhat-director-scripts/
Follow this section when 'local registry' is used on the undercloud.
In this case it is necessary to pull the Trilio containers to the undercloud registry.
Trilio provides shell scripts which will pull the containers from 'registry.connect.redhat.com' to the undercloud and updates the trilio_env_osp16.yaml with the values for the datamover and datamover api containers.
## Command to prepare, push trilio container images to undercloud registry:
sudo ./podman_prepare_images.sh <UNDERCLOUD_REGISTRY_HOSTNAME> <CONTAINER_TAG>
## Run following command to find 'UNDERCLOUD_REGISTRY_HOSTNAME'. Hostname is higlighted in bold format in below example.
$ openstack tripleo container image list | grep keystone
| docker://trilio-undercloud.ctlplane.localdomain:8787/rhosp-rhel8/openstack-keystone:16.0-82 |
| docker://trilio-undercloud.ctlplane.localdomain:8787/rhosp-rhel8/openstack-barbican-keystone-listener:16.0-84
## 'CONTAINER_TAG' format: 4.0.116-rhosp16.1
## For example. If Trilio version='4.0.116', then 'CONTAINER_TAG'=4.0.116-rhosp16.1
## Example:
sudo ./podman_prepare_images.sh trilio-undercloud.ctlplane.localdomain 4.0.116-rhosp16.1
The script assumes that the undercloud container registry is running on port 8787. If the registry is running on a different port, the script needs to be adjusted manually.
The changes can be verified using the following commands.
Provide environment details in trilio-env_osp16.yaml
Provide backup target details and other necessary details in the provided environment file. This environment file will be used in the overcloud deployment to configure Trilio components. Container image names have already been populated in the preparation of the container images. Still it is recommended to verify the container URLs.
The following information are required additionally:
Network for the datamover api
Backup target type {nfs/s3}
In case of NFS
list of NFS Shares
NFS options
In case of S3
s3 type {amazon_s3/ceph_s3}
Access key
Secret key
S3 Region name
S3 Bucket name
S3 Endpoint URL
S3 SSL Enabled {true/false}
S3 SSL Cert
resource_registry:
OS::TripleO::Services::TrilioDatamover: docker/services/trilio-datamover-osp16.yaml
OS::TripleO::Services::TrilioDatamoverApi: docker/services/trilio-datamover-api-osp16.yaml
parameter_defaults:
## Enable Trilio's quota functionality on horizon
ExtraConfig:
horizon::customization_module: 'dashboards.overrides'
## Define network map for trilio datamover api service
ServiceNetMap:
TrilioDatamoverApiNetwork: internal_api
## Trilio container pull urls
DockerTrilioDatamoverImage: devundercloud.ctlplane.localdomain:8787/trilio/trilio-datamover:4.0.92-rhosp16
DockerTrilioDmApiImage: devundercloud.ctlplane.localdomain:8787/trilio/trilio-datamover-api:4.0.92-rhosp16
## If you do not want Trilio's horizon plugin to replace your horizon container, just comment following line.
ContainerHorizonImage: devundercloud.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.92-rhosp16
## Backup target type nfs/s3, used to store snapshots taken by triliovault
BackupTargetType: 'nfs'
## For backup target 'nfs'
NfsShares: '192.168.122.101:/opt/tvault'
NfsOptions: 'nolock,soft,timeo=180,intr,lookupcache=none'
## For backup target 's3'
## S3 type: amazon_s3/ceph_s3
S3Type: 'amazon_s3'
## S3 access key
S3AccessKey: ''
## S3 secret key
S3SecretKey: ''
## S3 region, if your s3 does not have any region, just keep the parameter as it is
S3RegionName: ''
## S3 bucket name
S3Bucket: ''
## S3 endpoint url, not required for Amazon S3, keep it as it is
S3EndpointUrl: ''
## If SSL enabled on S3 url, not required for Amazon S3, just keep it as it is
S3SslEnabled: false
## If S3 backend is not Amazon S3 and SSL is enabled on S3 endpoint URL and SSL certificates are self signed, then
## user need to set this parameter value to: '/etc/tvault-contego/s3-cert.pem', otherwise keep it's value as empty string.
S3SslCert: ''
## Don't edit following parameter
EnablePackageInstall: True
Deploy overcloud with trilio environment
Use the following heat environment file and roles data file in overcloud deploy command:
trilio_env_osp16.yaml
roles_data.yaml
To include new environment files use '-e' option and for roles data file use '-r' option.
An example overcloud deploy command is shown below:
If the containers are in restarting state or not listed by the following command then your deployment is not done correctly. Please recheck if you followed the complete documentation.
On Controller node
Make sure Trilio dmapi and horizon containers are in a running state and no other Trilio container is deployed on controller nodes.
[root@overcloud-controller-0 heat-admin]# podman ps | grep trilio
26fcb9194566 rhosptrainqa.ctlplane.localdomain:8787/trilio/trilio-datamover-api:4.0.116-rhosp16.1 kolla_start 5 days ago Up 5 days ago trilio_dmapi
094971d0f5a9 rhosptrainqa.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.116-rhosp16.1 kolla_start 5 days ago Up 5 days ago horizon
On Compute node
Make sure Trilio datamover container is in running state and no other Trilio container is deployed on compute nodes.
[root@overcloud-novacompute-0 heat-admin]# podman ps | grep trilio
b1840444cc59 rhosptrainqa.ctlplane.localdomain:8787/trilio/trilio-datamover:4.0.116-rhosp16.1 kolla_start 5 days ago Up 5 days ago tilio_datamover
On the node with Horizon service
Make sure horizon container is in running state. Please note that 'Horizon' container is replaced with Trilio Horizon container. This container will have latest OpenStack horizon + Trilio's horizon plugin.
[root@overcloud-controller-0 heat-admin]# podman ps | grep horizon
094971d0f5a9 rhosptrainqa.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.116-rhosp16.1 kolla_start 5 days ago Up 5 days ago horizon
Configure Trilio Appliance
Once RHOSP16.1 Installation steps have completed successfully, follow the instructions below to now configure the Trilio Appliance.
Change the nova user id on the Trilio Nodes
In RHOSP, 'nova' user id on nova-compute docker container is set to '42436'. The 'nova' user id on the Trilio nodes need to be set the same. Do the following steps on all Trilio nodes:
Download the shell script that will change the user id
Assign executable permissions
Execute the script
Verify that 'nova' user and group id has changed to '42436'
# curl -O https://raw.githubusercontent.com/trilioData/triliovault-cfg-scripts/master/common/nova_userid.sh
# chmod +x nova_userid.sh
# ./nova_userid.sh
# id nova
uid=42436(nova) gid=42436(nova) groups=42436(nova),990(libvirt),36(kvm)
Change the workloadmgr.conf to use the right mountpoint
It is necessary to first configure the Trilio appliance, before the steps of this section can be done.
RHOSP16 is using a different mount point in its datamover containers than other Openstack distribution. It is necessary to adjust the mountpoint of the Trilio Nodes to match this. If the mountpoints are not getting aligned, will files created by the datamover and read by the Trilio appliance not match in their paths and backup and restore processes will fail.
Please follow these steps to align the mountpoints:
Edit /etc/workloadmgr/workloadmgr.conf file
Set parameter 'vault_data_directory' to '/var/lib/nova/triliovault-mounts'
create the directory for the mountpoint
assign the created directory to nova:nova
unmount the old mountpoint
Update the Trilio configurator
Restart the Trilio services
Verify the mountpoint has been configured correctly