RAID Parity Update Offload for Scalable NVMe Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

RAID storage systems face scaling issues due to the performance mismatch between Non-Volatile Memory express (NVMe) storage devices and conventional RAID storage controllers, as NVMe devices exceed the management capabilities of current RAID controllers, leading to inefficiencies in parity data updates.

Innovation Solution

The implementation of a method where RAID primary data storage devices perform XOR operations on primary data to generate interim parity data, which is then written to buffer subsystems, and RAID parity data storage devices retrieve and overwrite parity data using Direct Memory Access (DMA) operations, offloading parity update operations from the RAID storage controller to enable scaling with high-performance NVMe devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional RAID storage controllers are used to manage NVMe storage devices, then the system can maintain compatibility with standard RAID architectures, but the RAID controller becomes a performance bottleneck and cannot scale to manage more than a few NVMe devices

Engineering Contradiction:
ImprovescalabilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts the parity calculation function from the RAID controller and relocates it to the NVMe storage devices themselves. Each NVMe device independently calculates parity for its data stripe using XOR operations on received data, eliminating the controller as a performance bottleneck while maintaining RAID functionality and enabling scalable deployment of numerous NVMe devices.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The NVMe storage devices perform self-service by autonomously calculating and managing their own parity data without requiring centralized control from the RAID controller for this function. Each device receives data from the host, performs local XOR operations to generate parity, and writes both data and parity to its buffers, enabling the system to scale beyond the controller's management capacity.

Inventive Principle:
Principle #25Self-service

2Productivity

If parity update operations are performed by the RAID storage controller, then centralized control is maintained, but the time required for parity updates increases and system performance deteriorates

Engineering Contradiction:
Improveparity update speedVSAvoidparity update time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the centralized parity calculation task into distributed parallel operations across multiple NVMe devices. Each device independently calculates parity for its assigned data stripe simultaneously, transforming a sequential controller-based operation into parallel device-based operations, thereby dramatically reducing parity update time and improving throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The NVMe devices perform parity calculation in advance as part of the data write operation itself, rather than waiting for the controller to process data after receipt. By calculating parity concurrently with data reception and buffer writing, the system eliminates sequential delays and accelerates the overall parity update process.

Inventive Principle:
Principle #10Preliminary action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach allows RAID storage systems to efficiently manage and update parity data in parallel, enhancing the ability of RAID controllers to handle high-performance storage devices and improving data storage efficiency by reducing the need for sequential operations.

Implementation Method 1

perform an XOR operation on the first primary data in the first storage subsystem and the second primary data to produce first interim parity data for a first data stripe

Methodology Applied
Scientific EffectXOR operation:

Implementation Method 2

perform an XOR operation on the third primary data in the second storage subsystem and the fourth primary data to produce second interim parity data for a second data stripe

Methodology Applied
Scientific EffectXOR operation:

Implementation Method 3

perform an XOR operation on the first parity data in the third storage subsystem and the first interim parity data in the third buffer subsystem to produce second parity data for the first data stripe

Methodology Applied
Scientific EffectXOR operation:

Implementation Method 4

perform an XOR operation on the third parity data in the fourth storage subsystem and the second interim parity data in the fourth buffer subsystem to produce fourth parity data for the second data stripe

Methodology Applied
Scientific EffectXOR operation:

Data Source

PatentUS11494266B2Raid storage-device-assisted parity update data storage system
Publication Date: 2022.11.08 DELL PROD LP
  • US11494266B2 patent drawing
  • US11494266B2 patent drawing
  • US11494266B2 patent drawing

AI summary

A RAID storage-device-assisted parity data update system includes a first RAID primary data drive that DMA's second primary data from a host system, and XOR's it with first primary data to produce first interim parity data for a first data stripe. A second RAID primary data drive DMA's fourth primary data from the host system, and XOR's it with third primary data to produce second interim parity data for a second data stripe. A first RAID parity data drive DMAs the first interim parity data and XOR's it with first parity data to produce second parity data for the first data stripe that overwrites the first parity data. A second RAID parity data drive DMA's the second interim parity data and XOR's it with third parity data to produce fourth parity data for the second data stripe that overwrites the third parity data.