I/O Request Mirroring in Clustered Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Clustered storage systems face inefficiencies in I/O processing due to computationally intensive I/O shipping, especially in failover scenarios where data ownership transfer and rebuilding are time-consuming and complex.
Innovation Solution
Implementing I/O mirroring between storage nodes, allowing one node to process data on behalf of another without transferring the entire I/O request, and enabling seamless ownership transfer and data rebuilding to maintain high availability and reduce failover time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If I/O shipping is used to transfer I/O requests between storage controllers, then data availability is maintained during failover, but computational overhead and processing time increase significantly
Solution Approach 1:
The system performs preliminary actions by maintaining pre-synchronized mirror copies of data across multiple storage controllers before failover is needed. When a failover condition occurs, the standby controller already has the data ready to process I/O requests immediately, eliminating the time-consuming data transfer that would otherwise be required during failover.
Solution Approach 2:
The invention creates and maintains duplicate copies of data on different storage controllers through continuous mirroring operations. Instead of transferring data during failover, the system already has identical copies available on standby controllers, allowing immediate I/O processing without the computational overhead of real-time data shipping.
2Reliability
If I/O shipping is implemented to enable failover processing, then redundancy is achieved, but computational complexity and resource consumption increase
Solution Approach 1:
The system merges the data storage and processing functions across multiple controllers by maintaining synchronized mirror copies. Instead of having one controller own data exclusively and ship it during failover, multiple controllers simultaneously maintain identical data copies, allowing any controller to process I/O requests without complex ownership transfer protocols.
Solution Approach 2:
Each storage controller is designed to be universal and capable of processing any I/O request for any logical volume in the cluster, not just the volumes it exclusively owns. This multi-functionality is achieved through continuous data mirroring, allowing any controller to immediately handle I/O requests regardless of which controller originally received them, simplifying the failover mechanism.
3Productivity
If exclusive data ownership is assigned to one storage controller, then I/O processing efficiency is improved for that controller, but failover time and data rebuilding complexity increase
Solution Approach 1:
While maintaining local ownership for efficient I/O processing, the system enhances each controller's local data quality by continuously mirroring data to other controllers. This creates a distributed redundancy where each controller has both local ownership efficiency and local data copies for immediate failover capability, eliminating the trade-off between efficiency and failover speed.
Data Source
AI summary
Clustered storage systems and methods are presented herein. One clustered storage system includes a logical volume comprising first and second pluralities of storage devices. The first plurality of storage devices is different from the second plurality of storage devices and includes at least the same data as the second plurality of devices. The storage system also includes a first storage node operable to process first I/O requests to the first plurality of storage devices and a second storage node communicatively coupled to the first storage node and operable to process second I/O requests to the second plurality of storage devices. An I/O request of the first I/O requests initiates a redirection condition that the first storage node detects. Then, based on the redirection condition, the first storage node directs the second storage node to process data of the I/O request.


