This document explains the concepts of Backup Targets and Backup Target Types in Trilio, their purpose, and how they provide additional flexibility and control for backup storage management.
1. Backup Targets (BTs)
Definition:
Backup Targets are storage backends where backups are stored. These can be any of the supported storage systems such as NFS (Network File System) or S3 (Simple Storage Service). Backup Targets act as the foundational layer for storing backup data.
Key Characteristics of Backup Targets:
They are storage systems connected to Trilio.
Supported storage types include:
NFS: A shared file system accessible over a network.
S3: An object storage service typically offered by cloud providers.
Multiple Backup Targets can be defined within a single environment to provide storage flexibility.
How to configure Backup Target(s):
The Admin user will have to plan and make the desired Backup Targets available before deploying Trilio. Backup Targets need to be configured during the deployment of Trilio that will get mounted on the required hosts.
The below-mentioned entries need to be defined in the configuration file of the workloadmgrservices to enable the required Backup Targets, however, these parameters need not be populated manually. The deployment scripts will take care of it.
Define all the enabled backup target names separated by a comma under the DEFAULTsection of the config file and the config parameter enabled_backends
where, NFS_BT1, S3_BT1, S3_BT2, and S3_BT3 are unique names of the Backup Targets and will have their own config sections with the same names in the configuration file, as mentioned below.
Define each of the Backup Target sections using all required parameters. These required parameters are based on the type of storage.
In the case of AWS S3, only the bucket name should be provided.
immutable = 1
If the Object-Lockis enabled on the S3 Bucket, else this parameter can be set to 0
Apart from the above-mentioned storage-specific parameters, the user must mention which among these Backup Targets should be the default one by defining the below parameter under that storage section:
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Targets tab to see the list of Backup Target Types.
Using CLI
List the available Backup Targets:
Command:
workloadmgr backup-target-list
Alias:
openstack backup target list
Options:
# workloadmgr help backup-target-list
usage: workloadmgr backup-target-list [-h]
[-f {csv,json,table,value,yaml}]
[-c COLUMN]
[--quote {all,minimal,none,nonnumeric}]
[--noindent]
[--max-width <integer>]
[--fit-width] [--print-empty]
[--sort-column SORT_COLUMN]
[--sort-ascending | --sort-descending]
List all the backup targets.
options:
-h, --help show this help message and exit
output formatters:
output formatter options
-f {csv,json,table,value,yaml}, --format {csv,json,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
--sort-column SORT_COLUMN
specify the column(s) to sort the data (columns
specified first have a priority, non-existing columns
are ignored), can be repeated
--sort-ascending sort the column(s) in ascending order
--sort-descending sort the column(s) in descending order
CSV Formatter:
--quote {all,minimal,none,nonnumeric}
when to include quotes, defaults to nonnumeric
json formatter:
--noindent whether to disable indenting the JSON
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Show Details of a Backup Target:
Command:
workloadmgr backup-target-show
Alias:
openstack backup target show
Options:
# workloadmgr help backup-target-show
usage: workloadmgr backup-target-show [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width] [--print-empty]
<backup_target_id>
Show details about backup targets
positional arguments:
<backup_target_id>
ID of the backup target.
options:
-h, --help show this help message and exit
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
2. Backup Target Types (BTTs)
Definition:
Backup Target Types are an abstraction layer over Backup Targets. They provide additional administrative controls and can be categorized based on their scope and access permissions.
Types of Backup Target Types:
Public:
Accessible by all users and projects in the system.
Suitable for shared storage scenarios where multiple teams or tenants use the same backup infrastructure.
Private:
Restricted to specific projects.
Private Backup Target Types can be assigned to one or multiple projects, allowing project-specific control over backup storage.
Relationship Between Backup Targets and Backup Target Types:
A many-to-one relationship exists between Backup Target Types and Backup Targets.
Multiple Backup Target Types can map to a single Backup Target.
This allows administrators to define different policies or access levels for a shared storage backend.
Pre-created Backup Target Types
Trilio creates the BTTs of all the Backup Targets that are configured during deployment with the same name as the Backup Targets.
It inherits the provided configuration options for each Backup Target and creates the Public Backup Target Types by default.
List Available BTTs
Using Horizon Dashboard
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Target Types tab to see the list of Backup Target Types.
Using CLI
Command:
workloadmgr backup-target-type-list
Alias:
openstack backup target type list
Options:
# workloadmgr help backup-target-type-list
usage: workloadmgr backup-target-type-list [-h]
[-f {csv,json,table,value,yaml}]
[-c COLUMN]
[--quote {all,minimal,none,nonnumeric}]
[--noindent]
[--max-width <integer>]
[--fit-width] [--print-empty]
[--sort-column SORT_COLUMN]
[--sort-ascending | --sort-descending]
[--detail {True,False}]
[--project-id <project_id>]
List all the backup target types.
options:
-h, --help show this help message and exit
--detail {True,False}
List detail backup target types
--project-id <project_id>
ID of the project.
output formatters:
output formatter options
-f {csv,json,table,value,yaml}, --format {csv,json,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
--sort-column SORT_COLUMN
specify the column(s) to sort the data (columns
specified first have a priority, non-existing columns
are ignored), can be repeated
--sort-ascending sort the column(s) in ascending order
--sort-descending sort the column(s) in descending order
CSV Formatter:
--quote {all,minimal,none,nonnumeric}
when to include quotes, defaults to nonnumeric
json formatter:
--noindent whether to disable indenting the JSON
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Show Details of a BTT
Using Horizon Dashboard
Most of the relevant information about the BTT can be seen while Listing the BTTs.
Trilio does not provide a separate GUI for showing the additional details of the BTTs.
But, Trilio does provide a CLI command to get the additional details.
Using CLI
Command:
workloadmgr backup-target-type-show
Alias:
openstack backup target type show
Options:
# workloadmgr help backup-target-type-show
usage: workloadmgr backup-target-type-show [-h] [-f {json,shell,table,value,yaml}]
[--print-empty]
<backup_target_id>
Show details about backup target types
positional arguments:
<backup_target_id>
ID of the backup target.
options:
-h, --help show this help message and exit
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to show
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use the
--fit-width Fit the table to the display width. Implied if --max-width
--print-empty Print empty table if there is no data to show.
Example:
Create a BTT
Using Horizon Dashboard
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Target Types tab to see the list of Backup Target Types.
Click on the button to open the Backup Target Type Create wizard, and follow the instructions to create the BTT.
Using CLI
Command:
workloadmgr backup-target-type-create
Alias:
openstack backup target type create
Options:
# workloadmgr help backup-target-type-create
usage: workloadmgr backup-target-type-create [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width] [--print-empty]
[--default]
[--description <description>]
(--public | --project-ids <project-ids> [<project-ids> ...])
[--metadata <key=key-name>]
[--backup-targets-id <backup_targets_id>]
<name>
Create backup target type
positional arguments:
<name> required BTT name.
options:
-h, --help show this help message and exit
--default denotes whether BTT is default
--description <description>
Optional BTT description. (Default=None)
--public denotes whether BTT is of public type
--project-ids <project-ids> [<project-ids> ...]
Required to assign BTT to projects
--metadata <key=key-name>
Specify a key value pairs to include in the BTT metadata
Specify option multiple times to include multiple keys.
key=value
--backup-targets-id <backup_targets_id>
ID of the backup target for which BTT would be created
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Modify a BTT
Modification of the Default Backup Target Type is not allowed.
Using Horizon Dashboard
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Target Types tab to see the list of Backup Target Types.
Click on the button under the Actions column of the BTT List table of the desired BTT to open the Edit Backup Target Type wizard.
Once the required changes are done, click on the Edit button on the wizard to save the changes.
Using CLI
Command:
workloadmgr backup-target-type-modify
Alias:
openstack backup target type modify
Options:
# workloadmgr help backup-target-type-modif
usage: workloadmgr backup-target-type-modify [-h] [-f {json,shell,table,value,yaml
[--print-empty] [--name <name>] [--de
(--public | --project-ids <project-id
[--backup-target-type-id <backup_targ
Modify existing backup target type
options:
-h, --help show this help message and exit
--name <name>
Optional BTT name. (Default=None)
--default denotes whether BTT is default
--description <description>
Optional BTT description. (Default=None)
--public denotes whether BTT is of public type
--project-ids <project-ids> [<project-ids> ...]
Required to assign BTT to projects
--metadata <key=key-name>
Specify a key value pairs to include in the BTT metadata S
--backup-target-type-id <backup_target_type_id>
ID of the backup target type for which given projects will
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to show
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use the
--fit-width Fit the table to the display width. Implied if --max-width
--print-empty Print empty table if there is no data to show.
Example:
Assign/Unassign Project(s) to/from a BTT
Project assignment is allowed only to the Private Backup Target Types.
Using Horizon Dashboard
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Target Types tab to see the list of Backup Target Types.
Click the dropdown button under the Actions column of the BTT List table of the desired Private BTT and click on the button to open the Edit Backup Target Type Access wizard.
Select the Projects to be assigned, unselect the projects to be unassigned, and click on the Save button on the wizard to save the changes.
Using CLI
Assigning Projects:
Command:
workloadmgr backup-target-type-add-projects
Alias:
openstack backup target type add projects
Options:
# workloadmgr help backup-target-type-add-projects
usage: workloadmgr backup-target-type-add-projects [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN]
[--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width] [--print-empty]
[--backup-target-type-id <backup_target_type_id>]
[--project-ids <project-ids> [<project-ids> ...]]
Assign projects to existing backup target type
options:
-h, --help show this help message and exit
--backup-target-type-id <backup_target_type_id>
ID of the backup target type for which given projects
will be assigned
--project-ids <project-ids> [<project-ids> ...]
Required to assign BTT to projects
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Unassigning Projects:
Command:
workloadmgr backup-target-type-remove-projects
Alias:
openstack backup target type remove projects
Options:
# workloadmgr help backup-target-type-remove-projects
usage: workloadmgr backup-target-type-remove-projects [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN]
[--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width]
[--print-empty]
[--backup-target-type-id <backup_target_type_id>]
[--project-ids <project-ids> [<project-ids> ...]]
Remove already assigned projects from backup target types
options:
-h, --help show this help message and exit
--backup-target-type-id <backup_target_type_id>
ID of the backup target type for which given projects
will be assigned
--project-ids <project-ids> [<project-ids> ...]
Required to assign BTT to projects
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX
add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable --print-empty Print empty table if there is no data to show.
Example:
Add/Remove BTT Metadata
Using Horizon Dashboard
Metadata updates are only possible through CLI
Using CLI
Adding Metadata:
Command:
workloadmgr backup-target-type-add-metadata
Alias:
openstack backup target type add metadata
Options:
# workloadmgr help backup-target-type-add-metadata
usage: workloadmgr backup-target-type-add-metadata [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width]
[--print-empty]
[--backup-target-type-id <backup_target_type_id>]
[--metadata <key=key-name>]
Add metadata to existing backup target type
optional arguments:
-h, --help show this help message and exit
--backup-target-type-id <backup_target_type_id>
ID of the backup target type for which given metadata
will be created
--metadata <key=key-name>
Specify a key value pairs to include in the BTT
metadata Specify option multiple times to include
multiple keys. key=value
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Removing Metadata:
Command:
workloadmgr backup-target-type-remove-metadata
Alias:
openstack backup target type remove metadata
Options:
# workloadmgr help backup-target-type-remove-metadata
usage: workloadmgr backup-target-type-remove-metadata [-h]
[-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent]
[--prefix PREFIX]
[--max-width <integer>]
[--fit-width]
[--print-empty]
[--backup-target-type-id <backup_target_type_id>]
[--metadata-keys <metadata-keys> [<metadata-keys> ...]]
Remove metadata from existing backup target type
optional arguments:
-h, --help show this help message and exit
--backup-target-type-id <backup_target_type_id>
ID of the backup target type for which given projects
will be assigned
--metadata-keys <metadata-keys> [<metadata-keys> ...]
Required to remove metadata of BTT
output formatters:
output formatter options
-f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated to
show multiple columns
json formatter:
--noindent whether to disable indenting the JSON
shell formatter:
a format a UNIX shell can parse (variable="value")
--prefix PREFIX add a prefix to all variable names
table formatter:
--max-width <integer>
Maximum display width, <1 to disable. You can also use
the CLIFF_MAX_TERM_WIDTH environment variable, but the
parameter takes precedence.
--fit-width Fit the table to the display width. Implied if --max-
width greater than 0. Set the environment variable
CLIFF_FIT_WIDTH=1 to always enable
--print-empty Print empty table if there is no data to show.
Example:
Delete a BTT
Removing Backup Target Types from an active Workload can lead to inconsistent behavior and potential backup operation failures.
Using Horizon Dashboard
Log in to the OpenStack Horizon Dashboard as an Admin user.
Navigate to the Admin-> Backups-Admin -> Backup Targets
On the page, click the Backup Target Types tab to see the list of Backup Target Types.
Click the dropdown button under the Actions column of the BTT List table of the desired Private BTT, click on the button, and confirm the deletion once prompted.
Deletion of multiple BTTs can be done by selecting the check boxes of the desired BTTs and then clicking the button at the top-right corner.
Using CLI
Command:
workloadmgr backup-target-type-delete
Alias:
openstack backup target type delete
Options:
# workloadmgr help backup-target-type-delete
usage: workloadmgr backup-target-type-delete [-h] <backup_target_type_id>
Delete existing backup target type
positional arguments:
<backup_target_type_id>
ID of the backup target type to delete.
optional arguments:
-h, --help show this help message and exit
Example:
3. User Interaction with Backup Target Types
How Users Choose Backup Storage:
Any user can select a Public Backup Target Type for storing backups, as these are universally accessible.
For Private Backup Target Types, users can only select them if the Backup Target Type is explicitly assigned to their project.
The user will have the option to select these Backup Target Types while creating a workload.
Please note that once the workload is created with the chosen Backup Target Type, it can not be modified. The user has to recreate the workload if the Backup Target Type needs to be changed.