Paired Control Plane Controllers for Storage Failover Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing control plane logic fails to scale out to manage large numbers of worker nodes in distributed storage architectures, leading to single points of failure and inability to handle dynamic volume ownership changes and programming model mismatches between container orchestration platforms and distributed storage architectures.
Innovation Solution
Implement a distributed control plane within the container orchestration platform, comprising multiple control plane controllers paired with worker nodes, capable of converting between declarative and imperative programming models, tracking object ownership, and detecting node failures to ensure scalable and resilient communication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a centralized control plane is used to manage worker nodes, then control logic is simple to implement, but it creates a single point of failure and cannot scale to large numbers of worker nodes
Solution Approach 1:
The control plane is segmented into multiple independent control plane controllers, each capable of managing a subset of worker nodes. This segmentation eliminates the single point of failure by distributing control functionality across multiple instances, allowing the system to tolerate failures of individual controllers while maintaining overall system operation.
2Reliability
If multiple control plane controllers are deployed to improve reliability, then fault tolerance increases, but system complexity and coordination overhead increase
Solution Approach 1:
Multiple control plane controllers are merged into a unified distributed control plane architecture that shares common data structures and coordination mechanisms. This merging allows controllers to work collaboratively, sharing the burden of managing worker nodes and maintaining consistent state across the system, thereby reducing coordination overhead compared to completely independent controllers.
3Productivity
If a single control plane manages all worker nodes, then communication protocols are simple, but it cannot handle dynamic volume ownership changes efficiently
Solution Approach 1:
The control plane is segmented into multiple independent control plane controllers, each capable of managing a subset of worker nodes. This segmentation eliminates the single point of failure by distributing control functionality across multiple instances, allowing the system to tolerate failures of individual controllers while maintaining overall system operation.
4Adaptability or versatility
If control plane logic is external to the container orchestration platform, then integration is simple, but it cannot leverage platform resources for scaling and failure detection
Solution Approach 1:
The control plane is merged with the container orchestration platform by deploying control plane controllers as managed resources within the platform. This merging enables the control plane to leverage the platform's native resource management, scaling capabilities, and failure detection mechanisms, while the platform gains enhanced storage management functionality through integrated control.
Data Source
AI summary
Techniques are provided for implementing a distributed control plane to facilitate communication between a container orchestration platform and a distributed storage architecture. The distributed storage architecture hosts worker nodes that manage distributed storage that can be made accessible to applications within the container orchestration platform through the distributed control plane. The distributed control plane includes control plane controllers that are each paired with a single worker node of the distributed storage architecture. The distributed control plane is configured to selectively route commands to control plane controllers that are paired with worker nodes that are current owners of objects targeted by the commands. If a worker node fails and ownership of an object has changed from the failed worker node to another worker node, then subsequent commands are re-routed to a control plane controller paired with the other worker node now owning the object in place of the failed worker node.


