Clustered RAID Assimilation via Distributed Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In clustered storage systems, RAID label consistency issues arise when multiple nodes attempt to manage storage devices, leading to incorrect designation of RAID groups as degraded due to inconsistent generation counts and difficulties in tracking the status of storage devices, especially when devices go offline and return as spares.
Innovation Solution
Storing RAID-related metadata in a distributed cluster database separate from storage devices, allowing nodes to access RAID configuration information independently of RAID labels, ensuring consistency and durability through a quorum of active nodes, and eliminating the notion of ownership per storage device in favor of ownership per storage container.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RAID labels are stored on storage devices with generation counts, then RAID group configuration can be tracked, but inconsistency arises when multiple nodes access and update the same storage devices, leading to incorrect degraded status designation
Solution Approach 1:
The patent introduces a cluster database as an intermediary between multiple nodes and storage devices. Instead of nodes directly reading and writing RAID labels on storage devices, they access a centralized cluster database that maintains consistent RAID configuration information. This mediator resolves the inconsistency problem by providing a single source of truth that all nodes can access without conflicting with each other's operations.
Solution Approach 2:
The patent creates a copy of RAID configuration information from the storage device RAID labels into a cluster database. This copy serves as the authoritative source for all nodes in the cluster, eliminating the need for nodes to directly interact with and potentially conflict over the original RAID labels on storage devices.
2Ease of operation
If ownership of storage devices is maintained per node, then exclusive access control is achieved, but failover and node replacement become problematic when nodes need to assume ownership of storage devices
Solution Approach 1:
The cluster database acts as an intermediary that manages ownership information independently of physical storage device ownership. When failover occurs, the cluster database can update ownership records to reflect the new owning node without requiring direct access to or modification of the storage device RAID labels, thus maintaining consistency while enabling smooth ownership transfer.
3Reliability
If RAID labels are updated on all storage devices when a device fails, then the failed device is properly excluded from the RAID group, but the failed device cannot be recovered as a spare when it comes back online due to generation count mismatch
Solution Approach 1:
The patent maintains a copy of the RAID configuration state in the cluster database that is independent of the generation counts on individual storage devices. When a failed device returns online, the cluster database can recognize it and allow it to be recovered as a spare based on the centralized configuration state, rather than rejecting it due to generation count mismatches that would occur if relying solely on the distributed RAID labels.
4Productivity
If multiple nodes can access storage devices simultaneously, then high availability and load balancing are achieved, but RAID label consistency problems arise when nodes increment generation counts differently
Solution Approach 1:
The cluster database serves as a centralized intermediary that all nodes access for RAID configuration information. This eliminates the distributed version control problem where multiple nodes independently increment generation counts on the same RAID labels. The cluster database provides a single authoritative version that all nodes read, ensuring consistency while allowing multiple nodes to simultaneously service I/O requests and access storage devices.
Data Source
AI summary
In one embodiment, a node of a cluster is coupled to a storage array of storage devices. The node executes a storage input/output (I/O) stack having a redundant array of independent disks (RAID) layer that organizes the storage devices within the storage array as a plurality of RAID groups. Configuration information is stored as a cluster database. The configuration information identifies the RAID groups associated with the storage devices. Each RAID group is associated with a plurality of segments and each segment has a different RAID configuration.


