NVMe RAID Parity Offloading Using Distributed XOR Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Performing parity checks in RAID systems by hosts or compute nodes is resource-intensive, slowing down system performance and impacting overall efficiency and throughput due to significant processing power and bandwidth demands.
Innovation Solution
Offload parity checking operations to non-volatile memory devices within the RAID array, reducing computational load on primary processors and enhancing data throughput by distributing parity calculations across multiple storage devices using XOR operations and Galois Field arithmetic.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If parity checks are performed by hosts or compute nodes in RAID systems, then data integrity is maintained, but system performance and throughput are reduced due to high processing power and bandwidth demands
Solution Approach 1:
The patent extracts the parity calculation function from the host/compute node and relocates it to the storage devices themselves. Each storage device calculates its own parity contributions locally using XOR operations on data stored in controller memory buffers (CMBs), eliminating the need for the host to perform these computations and thereby resolving the contradiction between maintaining data integrity and preserving system throughput.
Solution Approach 2:
Storage devices perform parity calculations autonomously using their own controllers and CMBs without requiring host intervention. The controllers read data from non-volatile memory, perform XOR operations to determine parity bits, and write results back to non-volatile memory, enabling self-service that reduces host processing burden while maintaining RAID data integrity requirements.
2Reliability
If parity calculations are performed by hosts, then RAID data protection is achieved, but CPU usage and DRAM bandwidth requirements increase significantly
Solution Approach 1:
The patent segments the parity calculation workload across multiple storage devices rather than concentrating it in the host. Each storage device independently calculates its portion of parity using local CMB resources, dividing the computational burden into smaller, distributed tasks that reduce overall CPU usage and DRAM bandwidth requirements while maintaining complete RAID data protection through collaborative parity verification.
Data Source
AI summary
Various examples, controllers and methods are disclosed relating to parity checking. One controller can perform a plurality of read operations to read first data from the local non-volatile memory and at least one second storage device. The controller further can determine at least one first intermediate parity based on performing at least one first XOR operation of the first data, the at least one first intermediate parity. The controller further can retrieve at least one second intermediate parity of second data from at least one remote buffer of at least one third storage device. The controller further can determine at least one partial parity based on performing at least one second XOR operation of the at least one first intermediate parity and the at least one second intermediate parity. The controller further can store the at least one partial parity in at least one fourth storage device.


