-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Milestone
Description
Feature description
The Dual Controller would need two or more AlbaNodes working together in a master - slave fashion. The goal is to failover to one if the other would become unresponsive or enough OSDs are reporting failures
First iteration
This will only contain happy path changes
The changes to be made:
- Implement a class which can combine AlbaNodes (AlbaNodeCluster)
- Change all AlbaNode related code to work with the potential AlbaNodeCluster relation
- Change the ASD Manager to work actively and passively
- Display these changes in the GUI
- Update ASD manager setup for entering IPMI info
- Implement new calls to shutdown everything related to the OSDs on a specific AlbaNode (through IPMI in the first implementation)
- Stop services
- Unmount
- Implement new calls to start everything related to the passive OSDs on a AlbaNode
- Mount
- Deploy service
- Update OSD within Alba
- Implement a heartbeat which fetches all OSD states (in a locked state to avoid choking Alba) from Alba and when a certain threshold is reached for a specific cluster, create a persistent lock and failover all active drives to the passive ones. (The reason behind the heartbeat is to avoid waiting too long on the ovs-workers to process a task)
- Implement an option to move OSDs back to another AlbaNode (switching master-slave roles for that OSD)
Second iteration
Complete reinstall of a Dual Controller AlbaNode should be possible
- Sync all information from one node of the Controller to the other
- Prevent that an ASD manager is part of 2 Dual controllers
Every step should be registered under it's own ticket. These steps will both include this repo and the alba-asdmanager repo