Architecture

Bacula Enterprise Openstack-VM Plugin is a Bacula File Daemon plugin built over Openstack Cinder-Backup service.

All information is obtained using a custom implementation of a Cinder-Backup driver feeding data from Openstack to Bacula or the other way around.

Below, there is a simplified vision of the architecture of this plugin within a generic Bacula Enterprise deployment:

Openstack-VM Plugin Architecture

Openstack-VM Plugin Architecture

Cinder Bacula Driver Backup

During volume backup operations, for every file to backup, the bacula driver will:

  • Keep track of backup file name

  • Snapshot volume

  • Create a FIFO (named pipe) from Openstack to Bacula

  • Send relevant command to Bacula to synchronize the named pipe

  • Return opened FIFO for Cinder to write into.

Once all files are backed up, the process must be stopped by:

  • Closing the named pipe

  • Gathering logs from Bacula

  • Checking the list of backup files and job statuses

  • Deleting the named pipe.

Cinder Bacula Driver Restore

During volume restore operation, the bacula driver will communicate with Bacula through two different channels.

The first instance will handle the restore procedure by performing the process analog to backup apart for the fact the Cinder will read into the named pipe.

The closing process is also analog to the backup process.

The second instance will provide Cinder with the list of restored files to compare with its own file list by:

  • Opening the named pipe to Bacula.

  • Gathering the backup job file list.

  • Returning curated output to Cinder for control.

Encrypted Volume Support

Volumes encrypted with LUKS are supported by the Cinder driver API. However, the encryption keys usually managed by the Openstack Barbican service should be backed up separately following the Openstack backup procedure.

https://docs.openstack.org/operations-guide/ops-backup-recovery.html

Go back to the main Openstack VM page.