...
- Register a Backup and Recovery provider in a zone: This is done via dynamic Zone scoped configurations: 'backup.framework.enabled' and 'backup.framework.provider.plugin'
- 'backup.framework.enabled' is false by default
- 'backup.framework.provider.plugin' is 'dummy' by default. For a zone we can set the Backup provider name is lowercase. Available values for the moment are: 'dummy' and 'veeam'
- 'backup.framework.sync.interval': 300 by default. B&R framework background sync task internal in seconds that performs GC, syncs usage/stats and schedules backups etc.
- Veeam B&R provider settings: (all have zone scope, i.e. admin can override on per-zone basis)
- backup.plugin.veeam.url: Veeam B&R server URL (default: http://localhost:9399/api/)
- backup.plugin.veeam.username: Veeam B&R username (default: administrator)
- backup.plugin.veeam.password: Veeam B&R password (default: P@ssword123)
- backup.plugin.veeam.validate.ssl: Whether to validate server certificate if Veeam B&R server is SSL/TLS enabled (default: false)
- backup.plugin.veeam.request.timeout: Veeam B&R API request timeout in seconds (default: 600300)
Backend Configuration related:
...
- createBackup: creates an adhoc backup for a VM
- deleteVMBackupdeleteBackup: deletes a VM backup (not support for per restore point for Veeam, it should use the removeVMFromBackupOffering API)
- listBackups: lists backups
- restoreBackup: restore a previous VM backup in-place of a stopped or destroyed VM
- restoreVolumeFromBackup: restore and attach a backed-up volume (of a VM backup) to a specified VM
User-defined backup schedule:
- createBackupSchedule: creates a backup schedule for a VM
- updateBackupSchedule: updates backup schedule
- listBackupSchedule: returns backup schedule of a VM if defined
- deleteBackupSchedule: deletes backup schedule of a VM
Notes and assumptions:
- The backup schedule defines a CloudStack driven backup schedule where CloudStack will schedule/start adhoc backups based on provided interval/schedule for a VM.
- The backup schedule runs in addition to operator-defined settings for an external backup job/offering which may enforce its own schedule and retention limit (such as the number of backups to keep).
- Constraints:
- VM can only have a single backup container/veeam job, i.e. a single backup offering
- VM with backup offerings/backups not allowed to attach/detach volumes (like VM snapshots)
- For disabled zone, disabled account or missing VM or missing backup offering, backup and backup schedules are skipped
- Only one backup schedule per VM (unlike recurring snapshots that allows for multiple schedules/policies)
Schema
This feature introduces changes in the schema, adding the following entities:
- Backup table: backups
- Backup schedule table: backup_schedule
- Backup Offering: backup_offering
- Backup usage helper table: usage_backup
- Changes in user_vm_view to allow listing of backup offering/name in listVirtualMachines response
Backup and Recovery Providers
...