Incremental backup improvements for L

https://blueprints.launchpad.net/cinder/+spec/cinder-incremental-backup-improvements-for-l

This specification proposes to improve the current incremental backup by adding is_incremental and has_dependent_backups flags to indicate the type of backup and enriching the notification system via adding parent_id to report.

Problem description

In Kilo release we supported incremental backup, but there are still some points that need to be improved. 1. From the API perspective, there is no place to show the backup is incremental or not. 2. User also doesn’t know if the incremental backup can be deleted or not, It’s important that Cinder doesn’t allow this backup to be deleted since ‘Incremental backups exist for this backup’. Currently, they must have a try to know it. So if there is a flag to indicate the backup can’t be deleted or not, it will bring more convenience to user and reduce API call. 3. Enriching the notification system via reporting to Ceilometer, add parent_id to report

Use Cases

It’s useful for 3rd party billing system to distinguish the full backup and incremental backup, as using different size of storage space, they could have different fee for full and incremental backups.

Proposed change

1. When show single backup detail, cinder-api needs to judge if this backup is a full backup or not checking backup[‘parent_id’]. 2. If it’s an incremental backup, judge if this backup has dependent backups like we do in process of delete backup. 3. Then add ‘is_incremental=True’ and ‘has_dependent_backups=True/False’ to response body. 4. Add parent_id to notification system.

Alternatives

None.

Data model impact

None.

REST API impact

The response body of show incremental backup detail is changed like this:

::
{
“backup”: {

……, “is_incremental”: True/False, “has_dependent_backups”: True/False

}

}

If there is full backup, the is_incremental flag will be False. And has_dependent_backups will be True if the full backup has dependent backups.

Security impact

None

Notifications impact

Add parent_id to backup notification.

Other end user impact

End user can get more info about incremental backup. Enhance user experience.

Performance Impact

Because we add an additional judgment for dependent backups. We can eliminate performance impact by adding index to backup table and counting the number of dependent backups to make judgment in SQL.

IPv6 Impact

None.

Other deployer impact

None.

Developer impact

None.

Community Impact

None.

Implementation

Assignee(s)

wanghao

Work Items

  • Add querying and judging code in cinder-api.

  • Add parent_id to notification system.

  • Add unit tests.

Dependencies

None

Testing

Unit tests are needed to ensure response is working correctly.

Documentation Impact

1. Cloud admin documentations will be updated to introduce the changes: http://docs.openstack.org/admin-guide/blockstorage_volume_backups.html

2. API ref will be also updated for backups: http://developer.openstack.org/api-ref-blockstorage-v2.html

References

None