Support High Availability Active-Active configurations in Cinder Volume
Currently Cinder Volume currently only supports High Availability with Active-Passive configuration.
This blueprint proposes a series of changes in the API and Volume nodes to allow it to support Active-Active configurations as well.
Blueprint information
- Status:
- Started
- Approver:
- Sean McGinnis
- Priority:
- Medium
- Drafter:
- Gorka Eguileor
- Direction:
- Approved
- Assignee:
- Gorka Eguileor
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Good progress
- Milestone target:
- None
- Started by
- Sean McGinnis
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
**REVIEWING ORDER**
==============
Addressed by: https:/
Make c-vol use workers table for cleanup
Addressed by: https:/
Attach/detach calls moved to HA A-A
Addressed by: https:/
Suport A/A in delete operations and get_capabilities
Addressed by: https:/
Support A/A on Scheduler operations
Addressed by: https:/
Cosmetic changes to scheduler
Addressed by: https:/
Add more operations to cluster
Addressed by: https:/
Allow triggering cleanup from API
Addressed by: https:/
Make Replication support Active-Active
Addressed by: https:/
Make Image Volume Cache cluster aware
**SPECIFICATIONS:**
=================
*Merged:*
-------
Addressed by: https:/
Support HA Active/Active configurations
Addressed by: https:/
Remove Cinder API races
Addressed by: https:/
Add Tooz locks to support A/A HA spec
Addressed by: https:/
Job Distribution to support HA A/A
Addressed by: https:/
Update Job Distribution for A/A Specs
Addressed by: https:/
Resource cleanup to support HA A/A
Optional: Alternative to DLM locks for drivers that don't require distributed locks
Addressed by: https:/
Remove Manager Local Locks for HA A/A
*Ready for review:*
-------
Addressed by: https:/
Auto-fencing to support HA A/A
**API RACES:**
============
*Merged:*
-------
Addressed by: https:/
Move get_by_id to CinderObject
Addressed by: https:/
Add atomic conditional updates to objects
Addressed by: https:/
Improve metadata update operations
Addressed by: https:/
Remove API races from attach and detach
Addressed by: https:/
Remove API races from delete methods
Addressed by: https:/
Add ordering possibilities to conditional update
Addressed by: https:/
Remove API races on extend and volume_upload_image
Addressed by: https:/
Remove API races from migrate and retype
Addressed by: https:/
Remove API races from consistency groups
*Ready for review:*
-------
*Work In Progress*
-------
Addressed by: https:/
Remove race conditions from transfer API
Addressed by: https:/
Remove race conditions from backup API
Addressed by: https:/
Removed potential races from volume update method
**JOB DISTRIBUTION**
=================
*Ready for review:*
-------
Addressed by: https:/
Attach/detach calls moved to HA A-A
Addressed by: https:/
Suport A/A in delete operations and get_capabilities
Addressed by: https:/
Support A/A on Scheduler operations
Addressed by: https:/
Cosmetic changes to scheduler
Addressed by: https:/
Add more operations to cluster
Addressed by: https:/
Make Replication support Active-Active
Addressed by: https:/
Make Image Volume Cache cluster aware
*Merged*
-------
Addressed by: https:/
Refactor sqlalchemy service methods
Addressed by: https:/
Add cluster table and related methods
Addressed by: https:/
Update Versioned Objects with Cluster object
Addressed by: https:/
Add cluster job distribution
Addressed by: https:/
Update manage with cluster related commands
Addressed by: https:/
Modify API to include cluster related operations
Cinderclient: Add cluster related commands
https:/
Addressed by: https:/
Add cleanable base object and cleanup request VO
*Approved, waiting on merge*
-------
None
*Work In Progress*
-------
None
**CLEANUP**
==========
*Ready for review:*
-------
Addressed by: https:/
Make c-vol use workers table for cleanup
Addressed by: https:/
Allow triggering cleanup from API
*Pending rebase on the new job distribution mechanism*
-------
Addressed by: https:/
Add auto cleanup mechanism
Cinderclient: Add service node cleanup command
https:/
Cinderclient: Add Backup to cleanable resource types
https:/
Cinderclient: Add service node auto-cleanup
https:/
*Merged*
-------
Addressed by: https:/
Add workers table
Addressed by: https:/
Add worker's DB operations
*Abandoned*
-------
Addressed by: https:/
Allow triggering cleanup from API
Addressed by: https:/
Make c-bak use workers table for cleanup
**TOOZ LOCKS**
==============
*Merged:*
-------
Addressed by: https:/
Tooz locks
Addressed by: https:/
Start/Stop coordinator with Services
Addressed by: https:/
Replace locks in volume manager
Addressed by: https:/
Replace locks in remotefs backend driver
Addressed by: https:/
Fix lock files littering working dir during tests
(fixes issue with Replace locks in volume manager)
*Ready for review:*
-------
None
*Work in progress:*
-------
Addressed by: https:/
Add convenience lock methods to objects
Addressed by: https:/
[WIP] Clean up RemoteFSSnapDriver
-------
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Improve cinder-manage arg parsing
Addressed by: https:/
Refactor create, save, and destroy OVO methods
Addressed by: https:/
Fix CinderPersisten
Addressed by: https:/
Prevent doc generation failure on OVO decorators
Addressed by: https:/
Update OVO instance on destroy method call
Addressed by: https:/
Use original volume OVO instance in create flow
Gerrit topic: https:/
Addressed by: https:/
Quobyte volume driver should use DLM
Gerrit topic: https:/
Addressed by: https:/
Scality volume driver should use DLM
Gerrit topic: https:/
Addressed by: https:/
Smbfs volume driver should use DLM
Addressed by: https:/
[PoC][Don't review] Testing delay
Addressed by: https:/
Prevent Active-Active on drivers by default
Addressed by: https:/
Prevent claiming and updating races on worker
Addressed by: https:/
Make notify_
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Lock transfers table on multi-table update
Addressed by: https:/
Add group to cluser when init host
Work Items
Work items:
Remove API Races: INPROGRESS
Manager Local Locks: INPROGRESS
Job distribution: INPROGRESS
Cleanup: TODO
Data Corruption Prevention: TODO
Drivers' Locks: INPROGRESS