This section provides a guide for automating Cinder volume backups in OpenStack using Mistral workflows. Mistral allows you to define workflows to create full and incremental backups, manage backup rotation, and automate backup retention policies.
Three predefined Mistral workflows are available for automating Cinder volume backups:
volume_id
– ID of the volume to back up.backup_name
– Name of the backup.max_full_backups
– Maximum number of full backups to keep.max_incremental_backups
– Maximum number of incremental backups to keep per full backup.cinder_volume_backup_full
, cinder_volume_backup_full_incremental
, or cinder_volume_backup_rotation
).To use the openstack workflow
command, you need to install the python-mistralclient library:
dnf/apt/pip install python-mistralclient |
openstack workflow execution create cinder_volume_backup_full \ '{"volume_id":"<volume_id>", "backup_name":"<backup_name>"}' |
openstack workflow execution create cinder_volume_backup_full_incremental \ '{"volume_id":"<volume_id>", "backup_name":"<backup_name>"}' |
openstack workflow execution create cinder_volume_backup_rotation \ '{"volume_id":"<volume_id>", "backup_name":"bkp1", "max_full_backups":2, "max_incremental_backups":5}' |
SUCCESS
– Workflow completed successfully.RUNNING
– Workflow is still executing.FAILED
– Workflow execution failed (check logs for details).You can automate volume backups by setting up a cron trigger in Mistral. Cron triggers allow you to schedule Mistral workflows to run at specific times or intervals using cron expressions.
To create a cron trigger for volume backups using the openstack cron trigger create
command:
openstack cron trigger create <trigger_name> cinder_volume_backup_rotation \ '{"volume_id":"<volume_id>","backup_name":"<backup_name>","max_full_backups":2,"max_incremental_backups":5}' \ --pattern "0 * * * *" |
Parameter | Description |
---|---|
<trigger_name> | Name of the cron trigger. |
cinder_volume_backup_rotation | Workflow name to execute. |
{"volume_id": ..., "backup_name": ..., ...} | JSON data containing workflow input parameters. |
--pattern "0 * * * *" | Cron pattern defining the schedule. |
The cron pattern follows the format:
* * * * * | | | | | | | | | +---- Day of the week (0-7, Sunday=0 or 7) | | | +------ Month (1-12) | | +-------- Day of the month (1-31) | +---------- Hour (0-23) +------------ Minute (0-59) |
Cron Pattern | Schedule |
---|---|
0 * * * * | Every hour |
0 2 * * * | Every day at 2:00 AM |
0 2 * * 1 | Every Monday at 2:00 AM |
*/15 * * * * | Every 15 minutes |
0 0 1 * * | First day of every month at midnight |
python-mistralclient
package is installed before creating a cron trigger.openstack cron trigger
commands.