IP Library › Granted Patent US 12,417,146
Granted Patent B2
US 12,417,146 · App. 17/716,769 · Granted Sep 16, 2025

Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives

Inventors: Kapil Karkra (Chandler, AZ); Slawomir Ptak (Gdansk, PL); Mariusz Barczak (Gdansk, PL)
Assignee: Intel Corporation
G06F11/108G06F3/0619G06F3/0634G06F3/0689G06F11/1092
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,417,146
App. No.
17/716,769
Granted
Sep 16, 2025
Kind
B2
Abstract

High performance parity-based Redundant Array of Independent Disks (RAID) on Zoned Namespaces Solid State Drives (SSD)s with support for high queue depth write Input Output (IO) and Zone Append command is provided in a host system. The host system includes a stripe mapping table to store mappings between parity strips and data strips in stripes on the RAID member SSDs. The host system also includes a Logical to Physical (L2P) table to store data block addresses returned by the Zone Append command.

Claims (29)

1. An apparatus comprising:

a plurality of solid state drives, each of the solid state drives including a non-volatile memory divided into a set of equally-sized zones;

a Redundant Array of Independent Disks (RAID) controller to write a stripe including data strips and a parity strip to the plurality of solid state drives, each of the data strips and the parity strip stored in a different one of the solid state drives; and

a stripe mapping table to include a stripe mapping entry for each stripe written to the plurality of solid state drives, the stripe mapping entry including numbers assigned to each of the solid state drives to store the data strips and the parity strip for the stripe.

2. The apparatus of claim 1 , wherein each zone includes contiguous non-overlapping ranges of logical block addresses.

3. The apparatus of claim 1 , wherein the RAID controller and plurality of solid state drives configured as a level 5 RAID system and each of the solid state drives is a member of the level 5 RAID system.

4. The apparatus of claim 3 , wherein a number of solid state drives is 3, a first solid state drive to store a first data strip for the stripe, a second solid state drive to store a second data strip for the stripe and a third solid state drive to store the parity strip for the stripe, numbers assigned to the first solid state drive, second solid state drive and third solid state drive stored in the stripe mapping entry for the stripe in the stripe mapping table.

5. The apparatus of claim 3 , wherein the stripe mapping table to include a stripe pointer to each stripe mapping entry, the stripe pointers reordered prior to a RAID rebuild to recover strips stored on a failed member drive in a correct order and write recovered strips sequentially to a replacement drive.

6. The apparatus of claim 1 , wherein the RAID controller and plurality of solid state drives configured as a level 6 RAID system and each of the solid state drives is a member of the level 6 RAID system.

7. One or more non-transitory machine-readable storage medium comprising a plurality of instructions stored thereon that, in response to being executed, cause a system to:

write, by a Redundant Array of Independent Disks (RAID) controller, a stripe including data strips and a parity strip to a plurality of solid state drives, each of the data strips and the parity strip stored in a different one of the solid state drives, each of the solid state drives including a non-volatile memory, the non-volatile memory divided into a set of equally-sized zones; and

store, in a stripe mapping table, a stripe mapping entry for each stripe written to the plurality of solid state drives, the stripe mapping entry including numbers assigned to each of the solid state drives to store the data strips and the parity strip for the stripe.

8. The one or more non-transitory machine-readable storage medium of claim 7 , wherein each zone includes contiguous non-overlapping ranges of logical block addresses.

9. The one or more non-transitory machine-readable storage medium of claim 7 , wherein the RAID controller and plurality of solid state drives configured as a level 5 RAID system and each of the solid state drives is a member of the level 5 RAID system.

10. The one or more non-transitory machine-readable storage medium of claim 9 , wherein a number of solid state drives is 3, a first solid state drive to store a first data strip for the stripe, a second solid state drive to store a second data strip for the stripe and a third solid state drive to store the parity strip for the stripe, numbers assigned to the first solid state drive, second solid state drive and third solid state drive stored in the stripe mapping entry for the stripe in the stripe mapping table.

11. The one or more non-transitory machine-readable storage medium of claim 9 , wherein the stripe mapping table to include a stripe pointer to each stripe mapping entry, the stripe pointers reordered prior to a RAID rebuild to recover strips stored on a failed member drive in a correct order and write recovered strips sequentially to a replacement drive.

12. The one or more non-transitory machine-readable storage medium of claim 7 , wherein the RAID controller and plurality of solid state drives configured as a level 6 RAID system and each of the solid state drives is a member of the level 6 RAID system.

13. A system comprising:

a processor;

a plurality of solid state drives, each of the solid state drives including a non-volatile memory divided into a set of equally-sized zones;

a Redundant Array of Independent Disks (RAID) controller to write a stripe including data strips and a parity strip to the plurality of solid state drives, each of the data strips and the parity strip stored in a different one of the solid state drives; and

a stripe mapping table to include a stripe mapping entry for each stripe written to the plurality of solid state drives, the stripe mapping entry including numbers assigned to each of the solid state drives to store the data strips and the parity strip for the stripe.

14. The system of claim 13 , wherein each zone includes contiguous non-overlapping ranges of logical block addresses.

15. The system of claim 13 , wherein the RAID controller and plurality of solid state drives configured as a level 5 RAID system and each of the solid state drives is a member of the level 5 RAID system.

16. The system of claim 15 , wherein a number of solid state drives is 3, a first solid state drive to store a first data strip for the stripe, a second solid state drive to store a second data strip for the stripe and a third solid state drive to store the parity strip for the stripe, numbers assigned to the first solid state drive, second solid state drive and third solid state drive stored in the stripe mapping entry for the stripe in the stripe mapping table.

17. The system of claim 15 , wherein the stripe mapping table to include a stripe pointer to each stripe mapping entry, the stripe pointers reordered prior to a RAID rebuild to recover strips stored on a failed member drive in a correct order and write recovered strips sequentially to a replacement drive.

18. The system of claim 13 , wherein the RAID controller and plurality of solid state drives configured as a level 6 RAID system and each of the solid state drives is a member of the level 6 RAID system.

19. The system of claim 13 , further comprising:

a power supply to provide power to the system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2022
From: KARKRA, KAPIL; PTAK, SLAWOMIR; BARCZAK, MARIUSZ
To: INTEL CORPORATION
Reel/Frame 061626/0732 →
Continuity (1)
Related Publication 20220229722A1 · Jul 21, 2022
References Cited (11)
US 20200341844A1 · Shivanand · 2020 [cited by examiner]
US 20210349782A1 · Ki · 2021 [cited by examiner]
US 20230315346A1 · Karr · 2023 [cited by examiner]
Kim, Jaeho et al, Improving SSD Reliability with RAID via Elastic Striping and Anywhere Parity, University of Seoul, Dankook University, Hongik University, 2013 IEEE. (Year: 2013). [cited by examiner]
Y. Cai, S. Ghose, E. F. Haratsch, Y. Luo and O. Mutlu, “Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives,” in Proceedings of the IEEE, vol. 105, No. 9, pp. 1666-1704, Sep. 2017, … [cited by examiner]
Jim Gray, Bob Horst, and Mark Walker. 1990. Parity striping of disc arrays: low-cost reliable storage with acceptable throughput. In Proceedings of the sixteenth international conference on Very large databases. Morgan … [cited by examiner]
Greenan, Kevin, Building Flexible, Fault-Tolerant Flash-based Storage Systems, University of California, Santa Cruz, Santa Clara University, 2009 (Year: 2009). [cited by examiner]
Kim, Thomas. RAIZN: Redundant Array of Independent Zoned Namespace, Parallel Data Laboratory, Carnegie Mellon University, Jan. 2022. (Year: 2022). [cited by examiner]
R. Salkhordeh et al., “Constant Time Garbage Collection in SSDs,” 2021 IEEE International Conference on Networking, Architecture and Storage (NAS), Riverside, CA, USA, 2021, pp. 1-9, doi: 10.1109/NAS51552.2021.9605386. … [cited by examiner]
Bjorling, Matias, “Zoned Namespaces (ZNS) SSDs: Disrupting the Storage Industry,” SDC Storage Developer Conference Sep. 22-23, 2020, 29 pages. [cited by applicant]
NVM Express, “Zoned Namespace Command Set Specification,” Revision 1.1, May 18, 2021. [cited by applicant]