Mistral workflows and schedulers

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.

Available Mistral Workflows for Volume Backups

Three predefined Mistral workflows are available for automating Cinder volume backups:

1. cinder_volume_backup_full

2. cinder_volume_backup_full_incremental

3. cinder_volume_backup_rotation

Running Mistral Workflow Using Horizon

Running Mistral workflow using CLI

To use the openstack workflow command, you need to install the python-mistralclient library:

dnf/apt/pip install python-mistralclient

Running workflow examples:

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}'

Checking Workflow Status in Horizon

Creating a Cron Trigger in Mistral

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.

Creating a Cron Trigger

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 * * * *"

Explanation:

ParameterDescription
<trigger_name>
Name of the cron trigger.
cinder_volume_backup_rotationWorkflow name to execute.
{"volume_id": ..., "backup_name": ..., ...}JSON data containing workflow input parameters.
--pattern "0 * * * *"Cron pattern defining the schedule.

Cron Pattern Format:

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)

Examples:

Cron PatternSchedule
0 * * * *Every hour
0 2 * * *Every day at 2:00 AM
0 2 * * 1Every Monday at 2:00 AM
*/15 * * * *Every 15 minutes
0 0 1 * *First day of every month at midnight

Key Notes