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)
  • 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

...

  • 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

...