a9s Backup Manager
This documentation describes the a9s Backup Manager service. The a9s Backup Manager is responsible for orchestrating the creation, the restoring and the deletion of Backups of Service Instances created by the a9s Data Service Framework.
Backup Manager Worker
Creating, deleting and checking the status of a backup is done in workers. To not block each other, by default there are 4 workers.
One worker for:
- creating the backups and checking for the status of backups.
- checking the status of restores.
- deleting old backups.
- all tasks.
It is possible to configure these in the manifest with the anynines-backup-manager.workers
property. The following options are supported:
queues
: A comma separated list of queue names whose jobs are to be processed by this worker group.count
: Number of workers to process the jobs in the queues. If not set, only one worker will be used.
Example:
[{ queues: "<queue-name-1>, <queue-name-2>" }, { queues: "<queue-name-3>", count: 3 }]
Please see existing queues below.
backup_all_job
This queue initializes a full backup of all Service Instances of all configured Service Brokers. The actual backup is not performed in this queue.
backup_agent_backups
This queue prepared the needed backup information and sends the backup request to the Backup Agent of the Service Instance which should get backed up.
Configurable Attributes
Maximum Attempts
This property represents the maximum attempts the backup_agent_backups
job will retry when an error occurs along the
jobs processing. This default value is 5 and it must be configured directly in the a9s Backup Manager BOSH release.
Example:
# backup-service.yml
(...)
instance_groups:
- name: backup-manager
(...)
jobs:
- name: anynines-backup-manager
properties:
anynines-backup-manager:
jobs.backup_agent:
max_attempts: 5
(...)
Known Issues
When the max_attempts
property value is too high (e.g. 32) the job queues might increase too much, leading to a
bottleneck when processing the big amount of jobs.
backup_watcher_job
This queue asks the Backup Agent of the Service Instance for the status of the actual backup. It only talks to Service Instances where a backup is currently performed.
restore_watcher_job
This queue asks the Backup Agent of the Service Instance for the status of the actual restore. It only talks to Service Instances where a restore is currently performed.
initialize_backup_deletion_job
This queue evaluates all Service Instances that have backups which can be deleted.
backup_deleter_job
This queue deletes backups from Service Instances. This happens only if there are a given amount of newer backups available.
update_instance_state_job
This queue asks for all instances that got deleted since the last request. The result is used to delete backups of deleted Service Instances.
Service Broker Configuration
The a9s Backup Manager relies on the a9s Service Brokers of the different Data Services provided by a9s Data Service Framework to have an up-to-date list of deployed Service Instances. Backups can only be created for Service Instances that are known by the a9s Backup Manager.
For further information, please have a look here.