Add new backup target on RHOSO

Please follow the below steps to add new backup target on RHOSO18.

1] Mount Backup target on Trilio Control Plane

Navigate to trilio ctlplane-scripts directory

cd /PATH/TO/triliovault-cfg-scripts/redhat-director-scripts/rhosp18/ctlplane-scripts

Plan which type of backup target you want to add. T4O supports two types of backup targets.

  1. nfs

  2. s3

If you want to add backup target of type 'nfs' then edit the following yaml file and create TVOBackupTarget resource.

vi tvo-backup-target-cr-nfs.yaml
oc -n trilio-openstack apply -f tvo-backup-target-cr-nfs.yaml

To add a backup target of type 'S3', follow the steps below:

Copy the template YAML file Navigate to the scripts directory and copy the existing trilio-s3-backup-target-secret.yaml file to a new one named according to your backup target:

cd /PATH/TO/triliovault-cfg-scripts/redhat-director-scripts/rhosp18/ctlplane-scripts
cp trilio-s3-backup-target-secret.yaml trilio-s3-backup-target-secret-<BACKUP_TARGET_NAME>.yaml
Example:-
cp trilio-s3-backup-target-secret.yaml trilio-s3-backup-target-secret-s3-bt8.yaml

Base64 encode the S3 access and secret keys.

You will need to provide base64-encoded values for both the S3 access key and secret key. Use the following command to encode them:

echo -n "s3_key_string" | base64

Replace "s3_key_string" with your actual S3 access key or secret key. The output is the base64-encoded string to be used in the new s3 yaml file.

Edit the copied S3 YAML file

Open the newly created file with your preferred editor (e.g., vi):

vi trilio-s3-backup-target-secret-<BACKUP_TARGET_NAME>.yaml

Update the following fields with the backup target name and the corresponding base64-encoded values:

<BACKUP_TARGET_NAME>_s3_access_key: <base64_encoded_access_key>
<BACKUP_TARGET_NAME>_s3_secret_key: <base64_encoded_secret_key>
Example:-
s3_bt8_s3_access_key: ABDCD1234.......
s3_bt8_s3_secret_key: ABCD1234........

Apply the updated secret to the cluster

After saving the file, apply it to the trilio-openstack namespace:

oc -n trilio-openstack apply -f trilio-s3-backup-target-secret-<BACKUP_TARGET_NAME>.yaml
Example:-
oc -n trilio-openstack apply -f trilio-s3-backup-target-secret-s3-bt8.yaml

If your S3 bucket is an Amazon S3 bucket.

vi tvo-backup-target-cr-amazon-s3.yaml
oc -n trilio-openstack apply -f tvo-backup-target-cr-amazon-s3.yaml

If your S3 is of any other type edit following file and create TVOBackupTarget resource

vi tvo-backup-target-cr-other-s3.yaml
oc -n trilio-openstack apply -f tvo-backup-target-cr-other-s3.yaml

Verify that the dynamic backup target added was successfully deployed for the T4O control plane services

oc get pods -n trilio-openstack
[root@localhost ctlplane-scripts]# oc get pods -n trilio-openstack
NAME                                                READY   STATUS             RESTARTS           AGE
job-triliovault-datamover-api-db-init-5fcvs         0/1     Completed          0                  44h
job-triliovault-datamover-api-keystone-init-hf89t   0/1     Completed          0                  44h
job-triliovault-datamover-api-rabbitmq-init-zd9lf   0/1     Completed          0                  44h
job-triliovault-wlm-cloud-trust-mzj8b               0/1     Completed          0                  44h
job-triliovault-wlm-db-init-nzqxd                   0/1     Completed          0                  44h
job-triliovault-wlm-keystone-init-s82ph             0/1     Completed          0                  44h
job-triliovault-wlm-rabbitmq-init-xvhcf             0/1     Completed          0                  44h
triliovault-datamover-api-789c55cb7c-4xkln          1/1     Running            0                  44h
triliovault-datamover-api-789c55cb7c-799lr          1/1     Running            0                  44h
triliovault-datamover-api-789c55cb7c-nv8wl          1/1     Running            0                  44h
triliovault-object-store-bt1-s3-45sz5               1/1     Running            0                  44h
triliovault-object-store-bt1-s3-fhmgz               1/1     Running            0                  44h
triliovault-object-store-bt1-s3-xn78b               1/1     Running            0                  44h
triliovault-object-store-s3-bt8-flhws               1/1     Running            0                  55s
triliovault-object-store-s3-bt8-l2tbl               1/1     Running            0                  55s
triliovault-object-store-s3-bt8-x758v               1/1     Running            0                  55s
triliovault-wlm-api-5f9fccf467-djmn6                1/1     Running            0                  44h
triliovault-wlm-api-5f9fccf467-mvxt4                1/1     Running            0                  44h
triliovault-wlm-api-5f9fccf467-tmjr8                1/1     Running            0                  44h
triliovault-wlm-cron-58b75c464-75wnh                1/1     Running            0                  44h
triliovault-wlm-scheduler-74c9f6f86-5pt66           1/1     Running            0                  44h
triliovault-wlm-scheduler-74c9f6f86-klpw2           1/1     Running            0                  44h
triliovault-wlm-scheduler-74c9f6f86-p5frf           1/1     Running            0                  44h
triliovault-wlm-workloads-cb5f48549-4nzr2           1/1     Running            0                  44h
triliovault-wlm-workloads-cb5f48549-qp2b9           1/1     Running            0                  44h
triliovault-wlm-workloads-cb5f48549-xgl6j           1/1     Running            0                  44h
[root@localhost ctlplane-scripts]#
oc get daemonsets -n trilio-openstack

2] Mount Backup target on Trilio Data Plane

Navigate to data plane scripts directory

cd /PATH/TO/triliovault-cfg-scripts/redhat-director-scripts/rhosp18/dataplane-scripts/

Create templates needed for adding backup targets. Please note that use unique backup target name for parameter <BACKUP_TARGET_NAME>. You should not have used this backup target name earlier for any other trilio backup target. For parameter <BACKUP_TARGET_TYPE>, valid choices are ‘s3' and 'nfs’

./create-templates.sh <BACKUP_TARGET_NAME> <BACKUP_TARGET_TYPE>
./create-templates.sh s3-bt8 s3

A new directory gets created with backup target name having necessary templates. You can list these templates.

cd <BACKUP_TARGET_NAME>/
ls -ll

Backup target name gets set in all the yaml files created in this directory. BACKUP_TARGET_NAME gets converted to all small case and if any underscore ‘_' character is there in it, it gets replaced by hyphen character '-'. Add backup target details to template

Change to <BACKUP_TARGET_NAME> if not done already

cd <BACKUP_TARGET_NAME>/

Edit config map file

vi cm-trilio-backup-target.yaml

Create config map

oc -n openstack apply -f cm-trilio-backup-target.yaml

If you are adding 's3' type backup target, then only you need to create following secret. We have already filled in all details in yaml file. We just need to apply it.

oc -n openstack apply -f ../../ctlplane-scripts/trilio-s3-backup-target-secret-<BACKUP_TARGET_NAME>.yaml
Example:-
oc -n openstack apply -f ../../ctlplane-scripts/trilio-s3-backup-target-secret-s3-bt8.yaml

Set Trilio Ansible Runner container image url and tag in parameter 'openStackAnsibleEERunnerImage:' of trilio-add-backup-target-service.yaml You don’t need to change any other parameter.

vi trilio-add-backup-target-service.yaml

Create custom data plane service for this backup target

oc -n openstack apply -f trilio-add-backup-target-service.yaml
sleep 5s

Edit trilio-add-backup-target-deployment.yaml file and set parameter ‘nodeSets' with correct value from your environment. You don’t need to change any other parameter.

Get OpenStackDataPlaneNodeSet name

oc -n openstack get OpenStackDataPlaneNodeSet

Set 'nodeSets' parameter

vi trilio-add-backup-target-deployment.yaml

Trigger deployment of this backup target

oc -n openstack apply -f trilio-add-backup-target-deployment.yaml

Check logs Edit <DEPLOYMENT_NAME>, take it from above deployment yaml.

# Get deployment pod name
oc -n openstack get pods -l openstackdataplanedeployment=<DEPLOYMENT_NAME>
# Example:
oc -n openstack get pods -l openstackdataplanedeployment=edpm-trilio-add-backup-target-s3-bt8
## Check logs
oc -n openstack logs <POD_NAME>
# Example:
oc -n openstack logs trilio-add-backup-target-s3-bt8-edpm-trilio-add-backup-tarkx5xx

If this pod does not get created, it means you have not used unique backup target name or some other issue happend. Please verify that

Verify that the dynamic backup target added was successfully deployed for the T4O dataplane services

oc -n openstack get openstackdataplanedeployment | grep trilio
Example:-
[openstackdev@localhost ~]$ oc -n openstack get openstackdataplanedeployment | grep trilio
edpm-trilio-add-backup-target-s3-bt8         ["openstack-data-plane"]   True     Setup complete
edpm-trilio-add-backup-target-s3-bt5         ["openstack-data-plane"]   True     Setup complete
edpm-trilio-add-backup-target-s3-bt6         ["openstack-data-plane"]   True     Setup complete
edpm-trilio-data-plane-deployment-1          ["openstack-data-plane"]   True     Setup complete

3] Add Backup Target Records

Login to triliovault-wlm-api pod and run below CLI command to create backup target in Trilio DB.

oc get pods -n trilio-openstack | grep wlm-api
oc exec -n trilio-openstack -it <trilio wlm api pod name> bash
source <admin rc file>

For NFS Backup Target:

workloadmgr backup-target-create --type nfs --filesystem-export <filesystem_export> --btt-name <btt name>

Sample command:

workloadmgr backup-target-create --type nfs --filesystem-export 192.168.0.53:/home/rhosp2 --btt-name bt3-nfs

For Object lock enabled S3 Backup Target:

workloadmgr backup-target-create --type s3 --s3-endpoint-url <s3_endpoint_url> --s3-bucket <s3_bucket> --btt-name <btt name> --immutable --metadata object_lock=1 bucket=s3-object-lock

Sample command:

workloadmgr backup-target-create --type s3 --s3-endpoint-url https://s3.wasabisys.com --s3-bucket object-locked-s3-2 --btt-name s3-bt8 --immutable --metadata object_lock=1 bucket=s3-object-lock

For non-object lock S3 Backup Target:

workloadmgr backup-target-create --type s3 --s3-endpoint-url <s3_endpoint_url> --s3-bucket <s3_bucket> --btt-name <btt name>

Sample command:

workloadmgr backup-target-create --type s3 --s3-endpoint-url https://s3.wasabisys.com --s3-bucket qa-sachin --btt-name s3-bt8

Last updated

Was this helpful?