MariaDB backup workflow¶
The OpenStack database backup workflow includes the following phases:
Backup phase 1:
mariadb-phy-backupjob launches the
mariadb-phy-backup-<TIMESTAMP>pod. This pod contains the main backup script, which is responsible for:
Basic sanity checks and choosing right node for backup
Verifying the wsrep status and changing the
During the first backup phase, the following actions take place:
Sanity check: verification of the Kubernetes status and wsrep status of each MariaDB pod. If some pods have wrong statuses, the backup job fails unless the
--allow-unsafe-backupparameter is passed to the main script in the Kubernetes backup job.
Mirantis does not recommend setting the
--allow-unsafe-backupparameter unless it is absolutely required. To ensure the consistency of a backup, verify that the MariaDB galera cluster is in a working state before you proceed with the backup.
Select the replica to back up. The system selects the replica with the highest number in its name as a target replica. For example, if the MariaDB server pods have the
mariadb-server-2replica will be backed up.
Desynchronize the replica from the Galera cluster. The script connects the target replica and sets the
ON. Then, the replica stops receiving write-sets and receives the wsrep status
Donor/Desynced. The Kubernetes health check of that
mariadb-serverpod fails and the Kubernetes status of that pod becomes
Not ready. If the pod has the
primarylabel, the MariaDB controller sets the
backuplabel to it and the pod is removed from the endpoints list of the MariaDB service.
Backup phase 2:
The main script in the
mariadb-phy-backuppod launches the Kubernetes pod
mariadb-phy-backup-runner-<TIMESTAMP>on the same node where the target
mariadb-serverreplica is running, which is node
Xin the example.
mariadb-phy-backup-runnerpod has both
mysqldata directory and
backupdirectory mounted. The pod performs the following actions:
Verifies that there is enough space in the
/var/backupfolder to perform the backup. The amount of available space in the folder should be greater than
<DB-SIZE> * <MARIADB-BACKUP-REQUIRED-SPACE-RATIOin KB.
Performs the actual backup using the mariabackup tool.
If the number of current backups is greater than the value of the
MARIADB_BACKUPS_TO_KEEPjob parameter, the script removes all old backups exceeding the allowed number of backups.
The script waits untill the
mariadb-phy-backup-runnerpod is completed and collects its logs.
The script puts the backed up replica back to sync with the Galera cluster by setting
OFFand waits for the replica to become