Cloud Volumes Backup: Support tool - Catalyst

The catalyst sub-commands within the support tool enable you to test end-to-end Catalyst connectivity in the same manner as StoreOnce Catalyst integrated backup applications (e.g. Veeam, NetBackup, etc.).

All Catalyst operations rely on communication with a backup-store via an instance of the secure-client hosted on a Linux machine. This machine's IP address is given as the SERVER argument to the command. A Catalyst username and password is required to communicate with a Backup Store, which should have been noted when the store was created. If these credentials are not available, you can re-generate them.

WARNING: If the Catalyst user/password is reset, any configured backup applications that use these credentials will need to be re-supplied with the updated credentials.

The available sub-commands in the catalyst module are:

  • delete-object
  • list-objects
  • list-stores
  • ping
  • verify-object
  • write-object

An optional --password parameter can be passed to the catalyst commands to specify the catalyst password. By default you will be prompted for this password interactively.

WARNING: If --password is specified, Catalyst password information will be stored in the terminal history.

delete-object - Delete object from store

The delete-object sub-command enables you to delete an object from a specified store. It is useful in combination with the write-object/verify-object functionality to test datapath to a backup store.

Example usage:

To delete object object1 within store example-store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst delete-object 127.0.0.1 example-store_client example-store object1

list-objects - List objects in store

The list-objects sub-command enables you to list the objects that exist within a Catalyst store. Information returned is: name, size and created date as well as modification dates for both data and associated metadata.

Example usage:

To list the objects that exist within store example-store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst list-objects 127.0.0.1 example-store_client example-store

Name     Size        Created              Data modified        Metadata modified
-------  ----------  -------------------  -------------------  -------------------
object1  1024 bytes  2020-08-10 14:25:57  2020-08-10 14:25:57  2020-08-10 14:25:57

list-stores - List available stores

The list-stores sub-command enables you to view aggregate information about their Backup Store. Note that only one store will be shown as present in the output as there is a 1:1 mapping between Backup stores and Catalyst stores. Information shown includes the name of the store, store status as reported by the Catalyst server, number of objects within the Catalyst store, total size of the catalyst store and creation date.

Example usage:

To list the store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst list-stores 127.0.0.1 example-store_client

Name           Status      Num objects  Size        Created
-------------  --------  -------------  ----------  -------------------
example-store  ONLINE                1  1024 bytes  2020-08-10 14:23:44

ping - Determine ping time to Catalyst store

The ping sub-command enables you to check end-to-end datapath latency. Note that this is distinct from the latency to the endpoint servers for the Cloud Volumes Backup service as this can be measured with the os utility ping. An optional flag -n/--number can be specified to choose the number of ping requests to send to the service. If this flag is specified, an average is measured and displayed.

Example usage:

To send a ping request to a store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst ping 127.0.0.1 -n 3

Elapsed: 27ms
Elapsed: 29ms
Elapsed: 25ms
Avg: 27ms

verify-object - Verify an object against a seed

The verify-object sub-command enables you to verify data written in a Catalyst store using the write-object sub-command. The command works by generating a stream of data specified by a seed, reading an object from the Catalyst store and comparing the two. It is important to specify the correct seed and size of data to verify or else a comparison will fail.

NOTE: Seed 0 is a randomly allocated seed and is not useful when running the verify-object command.

Example usage:

To verify a 1024 byte object called object1 using seed 1 in store example-store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst verify-object 127.0.0.1 example-store_client example-store object1 1024 1

Success!

write-object - Write a new object from seed

The write-object sub-command enables you to write data to a Catalyst store. It can be used in combination with the verify-object sub-command to verify the contents. It uses a data generator and a seed to generate a set amount of data to be written to the specified object name.

Example usage:

To write 1024 bytes of data to object object1 using seed 1 to store example-store exposed on a local secure-client, run the following command:

bash$ ./cvbu-support-tool catalyst write-object 127.0.0.1 example-store_client example-store object1 1024 1

Success!