Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
  • deleteVMBackupdeleteBackupdeletes a VM backup (not support for per restore point for Veeam, it should use the removeVMFromBackupOffering API)
  • listBackupslists 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

NotesNotes 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). The backup schedule is idempotent and can be only created, listed and deleted, there is no update. The reason for this is that similar updateSnapshotPolicy API for example does not allow to change the policy settings, but only the customid/fordisplay fields.
  • 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

...