Software-Defined Storage Controller Failover via Namespace Reassignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Dual storage controller configurations face bottlenecks in handling input-output operations, especially when one controller fails, due to fixed capacity and increased load, leading to inefficiencies and disruptions in high availability storage solutions.
Innovation Solution
Implementing software-defined storage controllers with namespaces and an orchestration controller to dynamically manage and redistribute input-output operations across multiple software-defined controllers, allowing for failover and load balancing to maintain high availability and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dual physical storage controllers are used with one active and one standby, then high availability is improved, but the single remaining controller becomes a bottleneck when failover occurs
Solution Approach 1:
The patent segments the storage controller functionality into multiple software-defined controllers that can be dynamically assigned to handle different namespaces. This allows the workload to be distributed across multiple software instances rather than concentrated on a single physical controller, preventing the bottleneck effect during failover scenarios.
Solution Approach 2:
The patent implements dynamic controller assignment where software-defined storage controllers can be flexibly allocated and reassigned based on operational needs. When a controller fails, namespaces are dynamically reassigned to remaining controllers rather than requiring pre-configured static failover paths, enabling adaptive load distribution.
2Reliability
If physical storage controllers are designed with sufficient capacity to handle doubled load during failover, then reliability is improved, but device complexity and resource efficiency deteriorate
Solution Approach 1:
The patent creates software-defined storage controllers that can universally handle multiple namespaces and workloads. A single physical controller can instantiate multiple software-defined controller instances, each capable of managing different namespaces, thereby eliminating the need for dedicated redundant hardware capacity while maintaining failover capability.
Solution Approach 2:
The patent uses software copies of controller functionality rather than physical hardware copies. Multiple software-defined controller instances can be created on the same physical hardware, providing redundant controller capabilities without requiring duplicate physical controller capacity, thus reducing overall system complexity.
3Productivity
If dual controllers both actively handle input-output operations, then productivity is improved, but the complexity of managing failover and load distribution increases
Solution Approach 1:
The patent implements self-service mechanisms where software-defined controllers automatically monitor their own health status and initiate failover procedures when failures are detected. The system autonomously manages load distribution and namespace reassignment without requiring complex external orchestration, reducing management complexity while maintaining high availability.
Solution Approach 2:
The patent incorporates feedback mechanisms where controllers continuously monitor operational status and automatically adjust workload distribution based on real-time conditions. When a controller fails, the system receives feedback about the failure and automatically redistributes namespaces to healthy controllers, enabling dynamic adaptation without complex manual intervention.
Data Source
AI summary
An orchestration controller in a storage solution may establish namespaces, assign each namespace to a host, and establish software-defined storage controllers to handle input-output operations between the hosts and the namespaces. Each namespace is assigned to a given host and the input-output operations to and from the namespace are handled by a specific primary software-defined storage controller. In response to failure of the software defined controller, a secondary software-defined storage controller will take over handling of the input-output operations to and from the namespace. Also, in response to the failure of the software-defined storage controller, the host will direct subsequent input-output operations destined for the namespace to the secondary software-defined storage controller.


