Hiccup Management in Storage Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid-state drives (SSDs) experience unpredictable 'hiccups' that increase latency in read and write operations, making it difficult to maintain system performance, especially in RAID 6 storage arrays which require fault tolerance.
Innovation Solution
A hiccup management scheme that temporarily marks an SSD as unavailable, performs periodic I/O operations to assess its status, and uses RAID 6-like data protection to recover data from other SSDs, allowing the system to tolerate concurrent hiccups from up to two SSDs, thereby maintaining low latencies and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the storage system continues to perform I/O operations against an SSD experiencing hiccups, then the SSD may eventually recover and maintain data availability, but the I/O latency increases significantly and system performance deteriorates
Solution Approach 1:
The system performs preliminary actions by detecting timeouts and proactively marking the SSD as temporarily unavailable before attempting further I/O operations. This prevents additional latency from operations on a failing device while maintaining data availability through RAID 6 redundancy, allowing the system to switch to degraded mode and access data from remaining drives.
Solution Approach 2:
The system dynamically adjusts the operational status of the SSD based on real-time performance monitoring. By transitioning the SSD status between available, temporarily unavailable, and faulty states based on timeout thresholds and periodic probe results, the system optimizes the balance between maintaining data availability and minimizing I/O latency during hiccup events.
2Productivity
If the storage system marks the SSD as temporarily unavailable and performs periodic I/O operations to assess its status, then the system can quickly detect when the SSD has recovered, but this requires additional monitoring overhead and system resources
Solution Approach 1:
The system applies partial monitoring by performing periodic I/O operations only on SSDs marked as temporarily unavailable, rather than continuously monitoring all drives. The monitoring intensity is adjusted based on the specific state of each drive, performing probes at intervals rather than constant monitoring, thus maintaining system responsiveness while limiting additional overhead to only what is necessary for detecting recovery.
3Reliability
If the storage system uses RAID 6-like data protection with double distributed parity, then the system can tolerate up to two failed drives and maintain data availability, but the device complexity and storage overhead increase
Solution Approach 1:
The system segments the redundancy strategy by implementing RAID 6 with double distributed parity across multiple SSDs. This segmentation allows the failure of up to two drives to be tolerated independently, as parity information is distributed across the array rather than concentrated on single backup drives, enabling granular fault tolerance while maintaining overall system functionality.
4Loss of time
If the storage system performs degraded I/O operations against other SSDs to recover data when one SSD is unavailable, then client I/O latency is minimized, but the load on remaining SSDs increases
Solution Approach 1:
The system prepares for potential failures by maintaining RAID 6 redundancy with distributed parity across multiple drives before any failure occurs. This beforehand cushioning ensures that when an SSD becomes unavailable due to hiccups, data can be recovered through degraded I/O operations on remaining drives without causing excessive load, as the redundancy was pre-established to handle such scenarios.
Data Source
AI summary
A hiccup management scheme for use within a storage system can maintain low latency on client I/O when a storage device is temporarily unavailable. In some embodiments, a storage using uses double parity data protection can tolerate concurrent hiccups by up to two storage devices within a storage array.


