Storage Array Write Optimization via Dynamic RAID Level Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage arrays face issues with latency and wear on storage devices due to read-modify-write operations, particularly in RAID5 and RAID6 systems, which reduce performance and the useful life of solid-state storage devices.

Innovation Solution

A controller is configured to determine the size of data for write operations and store it in either RAID1 or RAID5 stripes based on a threshold size, using parity or metadata strips across multiple storage resources, optimizing write access and reducing read-modify-write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If RAID5 or RAID6 is used for capacity efficiency, then storage capacity is improved, but write performance deteriorates due to read-modify-write operations

Engineering Contradiction:
Improvestorage capacityVSAvoidwrite performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system dynamically switches between RAID5 and RAID6 based on the size of data being written. Small writes use RAID5 (faster, less wear) while large writes use RAID6 (more capacity efficient). This dynamic adaptation resolves the contradiction by allowing the system to optimize for different workloads independently

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the parameter of redundancy level based on data size. By adjusting which RAID level is applied according to write size thresholds, the system optimizes both capacity efficiency and write performance for different scenarios, resolving the trade-off between these two parameters

Inventive Principle:
Principle #35Parameter changes

2Reliability

If read-modify-write operations are used to ensure redundancy, then data integrity is improved, but latency increases

Engineering Contradiction:
Improvedata integrityVSAvoidwrite latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies partial action by using RAID5 (with simpler parity) for small writes where full redundancy protection is not critical, and only applies the more intensive read-modify-write operations of RAID6 for large writes where data integrity is more important. This partial application reduces unnecessary latency for small operations

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If read-modify-write operations are used for redundancy, then data integrity is improved, but wear on storage devices increases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage device life
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The invention applies partial action by limiting the use of intensive read-modify-write operations to only large writes that require RAID6 protection. Small writes use the gentler RAID5 method, reducing cumulative wear on storage devices while maintaining adequate data integrity for most operations

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If mirroring is used for redundancy, then write performance is improved, but storage capacity is reduced

Engineering Contradiction:
Improvewrite performanceVSAvoidstorage capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system dynamically selects between RAID5 and RAID6 based on write size, allowing it to achieve RAID10-like performance for small writes while maintaining RAID5-like capacity efficiency for large writes, thus resolving the contradiction between performance and capacity

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9886204B2Systems and methods for optimizing write accesses in a storage array
Publication Date: 2018.02.06 DELL PROD LP
  • US9886204B2 patent drawing
  • US9886204B2 patent drawing
  • US9886204B2 patent drawing

AI summary

A method may include storing data in one or more first-type stripes spanning a plurality of N storage resources and having N−1 data strips for storing the data and a parity strip for storing parity information for the data stored to the particular first-type stripe and each of the plurality of storage resources includes one of a data strip or a parity strip of the particular first-type stripe if the data to be stored exceeds a threshold size. If the data to be stored does not exceed a threshold size, the method may include storing the data in a second-type stripe and a third-type stripe each spanning N storage resources, such that each stripe comprises N−1 data strips for storing the data and a metadata strip for storing address information for the corresponding second-type strip or third-type strip.