Search…
TVO-4.1
Powered By GitBook
Installing on Kolla Ussuri
This page lists all steps required to deploy TrilioVault components on Kolla-ansible deployed OpenStack cloud.

1] Plan for Deployment

Please ensure that the TrilioVault Appliance has been updated to the latest hotfix before continuing the installation.

1.1] Select backup target type

Backup target storage is used to store backup images taken by TrilioVault and details needed for configuration:
Following backup target types are supported by TrilioVault. Select one of them and get it ready before proceeding to the next step.
a) NFS
Need NFS share path
b) Amazon S3
- S3 Access Key - Secret Key - Region - Bucket name
c) Other S3 compatible storage (Like, Ceph based S3)
- S3 Access Key - Secret Key - Region - Endpoint URL (Valid for S3 other than Amazon S3) - Bucket name

2] Clone TrilioVault Deployment Scripts

Clone triliovault-cfg-scripts GitHub repository on Kolla ansible server at '/root' or any other directory of your preference. Afterwards, copy TrilioVault Ansible role into Kolla-ansible roles directory
1
git clone -b hotfix-4-TVO/4.1 https://github.com/trilioData/triliovault-cfg-scripts.git
2
cd triliovault-cfg-scripts/kolla-ansible/
3
4
# For Centos and Ubuntu
5
cp -R ansible/roles/triliovault /usr/local/share/kolla-ansible/ansible/roles/
Copied!

3] Hook TrilioVault deployment scripts to Kolla-ansible deploy scripts

3.1] Add TrilioVault global variables to globals.yml

1
## For Centos and Ubuntu
2
- Take backup of globals.yml
3
cp /etc/kolla/globals.yml /opt/
4
5
- Append TrilioVault global variables to globals.yml
6
cat ansible/triliovault_globals.yml >> /etc/kolla/globals.yml
Copied!

3.2] Add TrilioVault passwords to kolla passwords.yaml

Append triliovault_passwords.yml to /etc/kolla/passwords.yml. Passwords are empty. Set these passwords manually in the /etc/kolla/passwords.yml.
1
## For Centos and Ubuntu
2
- Take backup of passwords.yml
3
cp /etc/kolla/passwords.yml /opt/
4
5
- Append TrilioVault global variables to passwords.yml
6
cat ansible/triliovault_passwords.yml >> /etc/kolla/passwords.yml
7
8
- Edit '/etc/kolla/passwords.yml', go to end of the file and set trilio passwords.
Copied!

3.3] Append TrilioVault site.yml content to kolla ansible’s site.yml

1
# For Centos and Ubuntu
2
- Take backup of site.yml
3
cp /usr/local/share/kolla-ansible/ansible/site.yml /opt/
4
5
- Append TrilioVault code to site.yml
6
cat ansible/triliovault_site.yml >> /usr/local/share/kolla-ansible/ansible/site.yml
Copied!

3.4] Append triliovault_inventory.txt to your cloud’s kolla-ansible inventory file.

1
For example:
2
If your inventory file name path '/root/multinode' then use following command.
3
4
cat ansible/triliovault_inventory.txt >> /root/multinode
Copied!

4] Edit globals.yml to set TrilioVault parameters

Edit /etc/kolla/globals.yml file to fill TrilioVault backup target and build details. You will find the TrilioVault related parameters at the end of globals.yml file. Details like TrilioVault build version, backup target type, backup target details, etc need to be filled out.
Following is the list of parameters that the usr needs to edit.
Parameter
Defaults/choices
comments
triliovault_tag
4.1.94-hotfix-5-ussuri 4.1.94-hotfix-3-victoria
Container tags. Use ussuri tagged containers for Ussuri and victoria tagged containers for Victoria
horizon_image_full
Keep Default
By default will the TrilioVault Horizon container not get deployed.
Uncomment this parameter to deploy TrilioVault Horizon container instead of Openstack Horizon container.
triliovault_docker_username
triliodocker
default docker user of Trilio (read permission only)
triliovault_docker_password
triliopassword
password for default docker user of Trilio
triliovault_docker_registry
Default value: docker.io
Edit this value if a different container registry for TrilioVault containers is to be used. Containers need to be pulled from docker.io and pushed to chosen registry first.
triliovault_backup_target
    nfs
    amazon_s3
    ceph_s3
nfs if the backup target is NFS
amazon_s3 if the backup target is Amazon S3
ceph_s3 if the backup target type is S3 but not amazon S3.
triliovault_nfs_shares
<NFS-IP/FQDN>:/<NFS path>
NFS share path example: ‘192.168.122.101:/nfs/tvault’
triliovault_nfs_options
'nolock,soft,timeo=180, intr,lookupcache=none'
These parameter set NFS mount options. Keep default values, unless a special requirement exists.
triliovault_s3_access_key
S3 Access Key
Valid for amazon_s3 and ceph_s3
triliovault_s3_secret_key
S3 Secret Key
Valid for amazon_s3 and ceph_s3
triliovault_s3_region_name
    Default value: us-east-1
    S3 Region name
Valid for amazon_s3 and ceph_s3
If s3 storage doesn't have region parameter keep default
triliovault_s3_bucket_name
S3 Bucket name
Valid for amazon_s3 and ceph_s3
triliovault_s3_endpoint_url
S3 Endpoint URL
Valid for ceph_s3 only
triliovault_s3_ssl_enabled
    True
    False
Valid for ceph_s3 only
Set true for SSL enabled S3 endpoint URL
triliovault_s3_ssl_cert_file_name
s3-cert.pem
Valid for ceph_s3 only with SSL enabled and self signed certificates
OR issued by a private authority. In this case, copy the ceph s3 ca chain file to/etc/kolla/config/triliovault/
directory on ansible server. Create this directory if it does not exist already.
triliovault_copy_ceph_s3_ssl_cert
    True
    False
Valid for ceph_s3 only
Set to True when: SSL enabled with self-signed certificates or issued by a private authority.
In the case of a different registry than docker hub, TrilioVault containers need to be pulled from docker.io and pushed to preferred registries.
Following are the triliovault container image URLs. Replace kolla_base_distro and triliovault_tag variables with their values.
1
1. docker.io/trilio/{{ kolla_base_distro }}-binary-trilio-datamover-api:{{ triliovault_tag}}
2
2. docker.io/trilio/{{ kolla_base_distro }}-binary-trilio-datamover:{{ triliovault_tag}}
3
3. docker.io/trilio/{{ kolla_base_distro }}-binary-trilio-horizon-plugin:{{ triliovault_tag}}
4
5
###EXAMPLE Ussuri & Ubuntu
6
docker.io/trilio/ubuntu-binary-trilio-datamover-api:4.1.94-hotfix-5-ussuri
7
docker.io/trilio/ubuntu-binary-trilio-datamover:4.1.94-hotfix-5-ussuri
8
docker.io/trilio/ubuntu-binary-trilio-horizon-plugin:4.1.94-hotfix-5-ussuri
Copied!

5] Enable TrilioVault Snapshot mount feature

To enable TrilioVault's Snapshot mount feature it is necessary to make the TrilioVault Backup target available to the nova-compute and nova-libvirt containers.
Edit /usr/local/share/kolla-ansible/ansible/roles/nova-cell/defaults/main.yml and find nova_libvirt_default_volumes variable. Append the TrilioVault mount bind /var/trilio:/var/trilio:shared to the list of already existing volumes.
For a default Kolla installation, will the variable look as follows afterward:
1
nova_libvirt_default_volumes:
2
- "{{ node_config_directory }}/nova-libvirt/:{{ container_config_directory }}/:ro"
3
- "/etc/localtime:/etc/localtime:ro"
4
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
5
- "/lib/modules:/lib/modules:ro"
6
- "/run/:/run/:shared"
7
- "/dev:/dev"
8
- "/sys/fs/cgroup:/sys/fs/cgroup"
9
- "kolla_logs:/var/log/kolla/"
10
- "libvirtd:/var/lib/libvirt"
11
- "{{ nova_instance_datadir_volume }}:/var/lib/nova/"
12
- "{% if enable_shared_var_lib_nova_mnt | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}"
13
- "nova_libvirt_qemu:/etc/libvirt/qemu"
14
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/nova' if nova_dev_mode | bool else '' }
15
- "/var/trilio:/var/trilio:shared"
Copied!
Next, find the variable nova_compute_default_volumes in the same file and append the mount bind /var/trilio:/var/trilio:shared to the list.
After the change will the variable look for a default Kolla installation as follows:
1
nova_compute_default_volumes:
2
- "{{ node_config_directory }}/nova-compute/:{{ container_config_directory }}/:ro"
3
- "/etc/localtime:/etc/localtime:ro"
4
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
5
- "/lib/modules:/lib/modules:ro"
6
- "/run:/run:shared"
7
- "/dev:/dev"
8
- "kolla_logs:/var/log/kolla/"
9
- "{% if enable_iscsid | bool %}iscsi_info:/etc/iscsi{% endif %}"
10
- "libvirtd:/var/lib/libvirt"
11
- "{{ nova_instance_datadir_volume }}:/var/lib/nova/"
12
- "{% if enable_shared_var_lib_nova_mnt | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}"
13
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/nova' if nova_dev_mode | bool else '' }}"
14
- "/var/trilio:/var/trilio:shared"
Copied!
In case of using Ironic compute nodes one more entry need to be adjusted in the same file. Find the variable nova_compute_ironic_default_volumes and append trilio mount /var/trilio:/var/trilio:shared to the list.
After the changes the variable will looks like the following:
1
nova_compute_ironic_default_volumes:
2
- "{{ node_config_directory }}/nova-compute-ironic/:{{ container_config_directory }}/:ro"
3
- "/etc/localtime:/etc/localtime:ro"
4
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
5
- "kolla_logs:/var/log/kolla/"
6
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/nova' if nova_dev_mode | bool else '' }}"
7
- "/var/trilio:/var/trilio:shared"
Copied!

6] Pull TrilioVault container images

Pull the TrilioVault container images from the dockerhub based on the existing inventory file. In the example is the inventory file named multinode.
1
kolla-ansible -i multinode pull --tags triliovault
Copied!

7] Deploy TrilioVault

All that is left, is to run the deploy command using the existing inventory file. In the example is the inventory file named 'multinode'.
This is just an example command. You need to use your cloud deploy command.
1
kolla-ansible -i multinode deploy
Copied!

8] Verify TrilioVault deployment

Verify on the nodes that are supposed to run the TrilioVault containers, that those are available and healthy.
1
[[email protected] ~]# docker ps | grep triliovault_datamover_api
2
f00781997bc3 trilio/centos-binary-trilio-datamover-api:4.1.94-hotfix-5-ussuri "dumb-init --single-…" 2 minutes ago Up 2 minutes triliovault_datamover_api
3
4
[[email protected] ~]# docker ps | grep triliovault_datamover
5
84831db5d215 trilio/centos-binary-trilio-datamover:4.1.94-hotfix-5-ussuri "dumb-init --single-…" 5 minutes ago Up 4 minutes triliovault_datamover
6
7
[[email protected] ~]# docker ps | grep horizon
8
f3647e0fff27 trilio/centos-binary-trilio-horizon-plugin:4.1.94-hotfix-5-ussuri "dumb-init --single-…" 8 minutes ago Up 8 minutes horizon
Copied!

9] Troubleshooting Tips

9.1 ] Check TrilioVault containers and their startup logs

To see all TriloVault containers running on a specific node use the docker ps command.
1
docker ps -a | grep trilio
Copied!
To check the startup logs use the docker logs <container name> command.
1
docker logs trilio_datamover_api
2
docker logs trilio_datamover
Copied!

9.2] TrilioVault Horizon tabs are not visible in Openstack

Verify that the TrilioVault Appliance is configured. The Horizon tabs are only shown, when a configured TrilioVault appliance is available.
Verify that the TrilioVault horizon container is installed and in a running state.
1
docker ps | grep horizon
Copied!

9.3] TrilioVault Service logs

    TrilioVault datamover api service logs on datamover api node
1
/var/log/kolla/triliovault-datamover-api/dmapi.log
Copied!
    TrilioVault datamover service logs on datamover node
1
/var/log/kolla/triliovault-datamover/tvault-contego.log
Copied!

10. Change the nova user id on the TrilioVault Nodes

Note: This step needs to be done on TrilioVault Appliance node. Not on OpenStack node.
Pre-requisite: You should have already launched TrilioVault appliance VM
In Kolla openstack distribution, 'nova' user id on nova-compute docker container is set to '42436'. The 'nova' user id on the TrilioVault nodes need to be set the same. Do the following steps on all TrilioVault nodes:
    1.
    Download the shell script that will change the user id
    2.
    Assign executable permissions
    3.
    Execute the script
    4.
    Verify that 'nova' user and group id has changed to '42436'
    5.
    After this step, you can proceed to 'Configuring Triliovault' section.
1
## Download the shell script
2
$ curl -O https://raw.githubusercontent.com/trilioData/triliovault-cfg-scripts/master/common/nova_userid.sh
3
4
## Assign executable permissions
5
$ chmod +x nova_userid.sh
6
7
## Execute the shell script to change 'nova' user and group id to '42436'
8
$ ./nova_userid.sh
9
10
## Ignore any errors and verify that 'nova' user and group id has changed to '42436'
11
$ id nova
12
uid=42436(nova) gid=42436(nova) groups=42436(nova),990(libvirt),36(kvm)
Copied!
Last modified 1mo ago