IP Library › Granted Patent US 12,204,403
Granted Patent B2
US 12,204,403 · App. 18/377,441 · Granted Jan 21, 2025

Efficient parity determination in zoned solid-state drives of a storage system

Inventor: Abhijeet Prakash Gole (Cupertino, CA)
Assignee: NETAPP, INC.
G06F11/1004G06F3/0614G06F3/0647G06F3/065G06F3/0689
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,204,403
App. No.
18/377,441
Filed
Oct 6, 2023
Granted
Jan 21, 2025
Kind
B2
Art Unit
2112
USPC
714/800
Abstract

Methods and systems for a storage environment are provided. One method includes copying a data unit from a first temporary storage location corresponding to each zoned solid-state drive (ZNS SSD) of a first ZNS SSD set of a storage system to a first XOR module, while determining a first partial horizontal parity using the data unit stored in the first temporary storage location; and determining a vertical parity for each ZNS SSD of the first ZNS SSD set using the data unit provided to the first XOR module in a current cycle and vertical parity determined from a previous cycle.

Claims (52)

1. A method executed by one or more processors, comprising;

retrieving a data unit from each zoned namespace solid-state drive (ZNS SSD) of a ZNS SSD set of a storage system; and

simultaneously determining for a current cycle, a horizontal parity and a vertical parity, the horizontal parity determined using a data unit stored across each ZNS SSD and the vertical parity determined from the data unit of each ZNS SSD and a vertical parity for each ZNS SSD determined from a previous cycle.

2. The method of claim 1 , further comprising:

transferring the data unit of each ZNS SSD from a cache line corresponding to each ZNS SSD to a first storage location corresponding to each ZNS SSD.

3. The method of claim 2 , further comprising:

to determine the horizontal parity for the current cycle, XORing the data unit stored across the first storage location corresponding to each ZNS SSD.

4. The method of claim 2 , further comprising:

to determine the vertical parity for the current cycle, retrieving the vertical parity for the previous cycle from a second storage location corresponding to each ZNS SSD; and

XORing the data unit of each of the first storage location corresponding to each ZNS SSD with the retrieved vertical parity for the previous cycle.

5. The method of claim 1 , further comprising:

storing the vertical parity for the current cycle at a second storage location corresponding to each ZNS SSD.

6. The method of claim 1 , further comprising:

storing the vertical parity of each ZNS SSD at each ZNS SSD.

7. The method of claim 1 , further comprising:

storing the horizontal parity for the ZNS SSD set at a ZNS SSD configured to operate as a parity drive.

8. A non-transitory machine-readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by a machine, causes the machine to:

retrieve a data unit from each zoned namespace solid-state drive (ZNS SSD) of a ZNS SSD set of a storage system; and

simultaneously determine for a current cycle, a horizontal parity and a vertical parity, the horizontal parity determined using a data unit stored across each ZNS SSD and the vertical parity determined from the data unit of each ZNS SSD and a vertical parity for each ZNS SSD determined from a previous cycle.

9. The non-transitory machine-readable storage medium of claim 8 , wherein the machine executable code which when executed, further causes the machine to:

transfer the data unit of each ZNS SSD from a cache line corresponding to each ZNS SSD to a first storage location corresponding to each ZNS SSD.

10. The non-transitory, machine-readable storage medium of claim 9 , wherein the machine executable code which when executed, further causes the machine to:

to determine the horizontal parity for the current cycle, XOR the data unit stored across the first storage location corresponding to each ZNS SSD.

11. The non-transitory, machine-readable storage medium of claim 9 , wherein the machine executable code which when executed, further causes the machine to:

to determine the vertical parity for the current cycle, retrieve the vertical parity for the previous cycle from a second storage location corresponding to each ZNS SSD; and

XORing the data unit of each of the first storage location corresponding to each ZNS SSD with the retrieved vertical parity for the previous cycle.

12. The non-transitory, machine-readable storage medium of claim 8 , wherein the machine executable code which when executed, further causes the machine to:

store the vertical parity for the current cycle at a second storage location corresponding to each ZNS SSD.

13. The non-transitory, machine-readable storage medium of claim 12 , wherein the machine executable code which when executed, further causes the machine to:

store the horizontal parity for the ZNS SSD set at a ZNS SSD configured to operate as a parity drive.

14. A system comprising:

a plurality of zoned namespace solid-state drive (ZNS SSD) of a ZNS SSD set of a storage system;

a first storage location corresponding to each ZNS SSD;

a horizontal parity XOR module for the ZNS SSD set;

a vertical parity XOR module for each ZNS SSD;

a memory containing non-transitory machine readable medium comprising machine executable code having stored thereon instructions; and

one or more processors configured to execute the machine executable code to:

retrieve a data unit from the first storage location of each ZNS SSD; and

simultaneously determine for a current cycle, a horizontal parity and a vertical parity, the horizontal parity determined by the horizontal parity XOR module using a data unit stored across each ZNS SSD and the vertical parity determined by each of the vertical parity XOR module from the data unit retrieved from each of the first storage location and a vertical parity for each ZNS SSD determined from a previous cycle.

15. The system of claim 14 , wherein the machine executable code further causes to:

transfer the data unit of each ZNS SSD from a cache line corresponding to each ZNS SSD to the first storage location corresponding to each ZNS SSD.

16. The system of claim 15 , wherein the machine executable code further causes to:

to determine the vertical parity for the current cycle, retrieve the vertical parity for the previous cycle from a second storage location corresponding to each ZNS SSD; and

XOR the data unit of each of the first storage location corresponding to each ZNS SSD with the retrieved vertical parity for the previous cycle.

17. The system of claim 16 , wherein the machine executable code further causes to:

store the vertical parity for the current cycle at the second storage location corresponding to each ZNS SSD.

18. The system of claim 14 , wherein the machine executable code further causes to:

store the horizontal parity for the ZNS SSD set at a ZNS SSD configured to operate as a parity drive.

19. The system of claim 16 , wherein the first storage location is a first register, and the second storage location is a second register.

20. A system comprising:

means for retrieving a data unit from each zoned namespace solid-state drive (ZNS SSD) of a ZNS SSD set of a storage system; and

means for simultaneously determining for a current cycle, a horizontal parity and a vertical parity, the horizontal parity determined using a data unit stored across each ZNS SSD and the vertical parity determined from the data unit of each ZNS SSD and a vertical parity for each ZNS SSD determined from a previous cycle.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2023
From: GOLE, ABHIJEET PRAKASH
To: NETAPP, INC.
Reel/Frame 065147/0075 →
Continuity (2)
Continuation 17494684 · Oct 5, 2021
Related Publication 20240045760A1 · Feb 8, 2024
References Cited (168)
US 5664187A · Burkes et al. · 1997 [cited by applicant]
US 6101615A · Lyons · 2000 [cited by applicant]
US 8074021B1 · Miller et al. · 2011 [cited by applicant]
US 8463991B2 · Colgrove et al. · 2013 [cited by applicant]
US 8549222B1 · Kleiman et al. · 2013 [cited by applicant]
US 8775868B2 · Colgrove et al. · 2014 [cited by applicant]
US 8832373B2 · Colgrove et al. · 2014 [cited by applicant]
US 8850108B1 · Hayes et al. · 2014 [cited by applicant]
US 8862820B2 · Colgrove et al. · 2014 [cited by applicant]
US 9003144B1 · Hayes et al. · 2015 [cited by applicant]
US 9021297B1 · Hayes et al. · 2015 [cited by applicant]
US 9134917B2 · Kimmel et al. · 2015 [cited by applicant]
US 9201600B1 · Hayes et al. · 2015 [cited by applicant]
US 9218244B1 · Hayes et al. · 2015 [cited by applicant]
US 9229808B2 · Colgrove et al. · 2016 [cited by applicant]
US 9244769B2 · Colgrove et al. · 2016 [cited by applicant]
US 9367243B1 · Hayes et al. · 2016 [cited by applicant]
US 9483346B2 · Davis et al. · 2016 [cited by applicant]
US 9495255B2 · Davis et al. · 2016 [cited by applicant]
US 9525738B2 · Hayes et al. · 2016 [cited by applicant]
US 9563506B2 · Hayes et al. · 2017 [cited by applicant]
US 9588842B1 · Sanvido et al. · 2017 [cited by applicant]
US 9594633B2 · Colgrove et al. · 2017 [cited by applicant]
US 9672125B2 · Botes et al. · 2017 [cited by applicant]
US 9672905B1 · Gold et al. · 2017 [cited by applicant]
US 9798477B2 · Botes et al. · 2017 [cited by applicant]
US 9880899B2 · Davis et al. · 2018 [cited by applicant]
US 9934089B2 · Hayes et al. · 2018 [cited by applicant]
US 9967342B2 · Colgrove et al. · 2018 [cited by applicant]
US 10180879B1 · Colgrove et al. · 2019 [cited by applicant]
US 10248516B1 · Sanvido et al. · 2019 [cited by applicant]
US 10303547B2 · Hayes et al. · 2019 [cited by applicant]
US 10353777B2 · Bernat et al. · 2019 [cited by applicant]
US 10372506B2 · Baptist et al. · 2019 [cited by applicant]
US 10379763B2 · Colgrove et al. · 2019 [cited by applicant]
US 10387247B2 · Baptist et al. · 2019 [cited by applicant]
US 10387250B2 · Resch et al. · 2019 [cited by applicant]
US 10387256B2 · Dhuse et al. · 2019 [cited by applicant]
US 10402266B1 · Kirkpatrick et al. · 2019 [cited by applicant]
US 10417092B2 · Brennan et al. · 2019 [cited by applicant]
US 10432233B1 · Colgrove et al. · 2019 [cited by applicant]
US 10437673B2 · Baptist et al. · 2019 [cited by applicant]
US 10437678B2 · Resch · 2019 [cited by applicant]
US 10452289B1 · Colgrove et al. · 2019 [cited by applicant]
US 10467107B1 · Abrol et al. · 2019 [cited by applicant]
US 10489256B2 · Hayes et al. · 2019 [cited by applicant]
US 10503598B2 · Trichardt et al. · 2019 [cited by applicant]
US 10521120B1 · Miller et al. · 2019 [cited by applicant]
US 10530862B2 · Isely et al. · 2020 [cited by applicant]
US 10534661B2 · Resch · 2020 [cited by applicant]
US 10572176B2 · Davis et al. · 2020 [cited by applicant]
US 10579450B2 · Khadiwala et al. · 2020 [cited by applicant]
US 10606700B2 · Alnafoosi et al. · 2020 [cited by applicant]
US 10613974B2 · Dreier et al. · 2020 [cited by applicant]
US 10656871B2 · Peake · 2020 [cited by applicant]
US 10657000B2 · Resch · 2020 [cited by applicant]
US 10671480B2 · Hayes et al. · 2020 [cited by applicant]
US RE48222E · Colgrove et al. · 2020 [cited by applicant]
US 10776200B2 · McVay · 2020 [cited by examiner]
US 10776204B2 · Resch et al. · 2020 [cited by applicant]
US 10810083B1 · Colgrove et al. · 2020 [cited by applicant]
US 10817375B2 · Colgrove et al. · 2020 [cited by applicant]
US 10838834B1 · Sanvido et al. · 2020 [cited by applicant]
US 10860424B1 · Dhuse et al. · 2020 [cited by applicant]
US 10891192B1 · Brennan et al. · 2021 [cited by applicant]
US RE48448E · Colgrove et al. · 2021 [cited by applicant]
US 11269778B1 · Kanteti · 2022 [cited by applicant]
US 11340987B1 · Gole et al. · 2022 [cited by applicant]
US 11442646B2 · Agarwal · 2022 [cited by applicant]
US 11698836B2 · Gole et al. · 2023 [cited by applicant]
US 11709734B2 · Kaynak · 2023 [cited by examiner]
US 11789611B2 · Singh et al. · 2023 [cited by applicant]
US 11797377B2 · Gole · 2023 [cited by applicant]
US 11803329B2 · Doucette et al. · 2023 [cited by applicant]
US 11816359B2 · Gole et al. · 2023 [cited by applicant]
US 11861195B2 · Gorobets · 2024 [cited by examiner]
US 11861231B2 · Gole et al. · 2024 [cited by applicant]
US 20060129873A1 · Hafner et al. · 2006 [cited by applicant]
US 20060242539A1 · Kang et al. · 2006 [cited by applicant]
US 20100332401A1 · Prahlad et al. · 2010 [cited by applicant]
US 20120084506A1 · Colgrove et al. · 2012 [cited by applicant]
US 20120151118A1 · Flynn et al. · 2012 [cited by applicant]
US 20130151646A1 · Chidambaram et al. · 2013 [cited by applicant]
US 20140281227A1 · Herron et al. · 2014 [cited by applicant]
US 20150169244A1 · Asnaashari et al. · 2015 [cited by applicant]
US 20150199151A1 · Klemm et al. · 2015 [cited by applicant]
US 20160313943A1 · Hashimoto et al. · 2016 [cited by applicant]
US 20160342470A1 · Cudak et al. · 2016 [cited by applicant]
US 20170124345A1 · Christiansen et al. · 2017 [cited by applicant]
US 20170220264A1 · Sokolov et al. · 2017 [cited by applicant]
US 20190004964A1 · Kanno · 2019 [cited by applicant]
US 20190018788A1 · Yoshida et al. · 2019 [cited by applicant]
US 20190278663A1 · Mehta et al. · 2019 [cited by applicant]
US 20200089407A1 · Baca et al. · 2020 [cited by applicant]
US 20200394112A1 · Gupta et al. · 2020 [cited by applicant]
US 20200409601A1 · Helmick et al. · 2020 [cited by applicant]
US 20210026717A1 · Krasner et al. · 2021 [cited by applicant]
US 20210081273A1 · Helmick et al. · 2021 [cited by applicant]
US 20210081330A1 · Bennett et al. · 2021 [cited by applicant]
US 20210132827A1 · Helmick et al. · 2021 [cited by applicant]
US 20210132860A1 · Kou et al. · 2021 [cited by applicant]
US 20210303188A1 · Bazarsky et al. · 2021 [cited by applicant]
US 20210326048A1 · Karr · 2021 [cited by applicant]
US 20210334006A1 · Singh et al. · 2021 [cited by applicant]
US 20220027051A1 · Kant et al. · 2022 [cited by applicant]
US 20220137844A1 · Goss et al. · 2022 [cited by applicant]
US 20220197553A1 · Benhanokh et al. · 2022 [cited by applicant]
US 20220227051A1 · Regehly · 2022 [cited by applicant]
US 20220229596A1 · Jung · 2022 [cited by applicant]
US 20220244869A1 · Kanteti · 2022 [cited by applicant]
US 20220291838A1 · Gorobets et al. · 2022 [cited by applicant]
US 20230022758A1 · Sears et al. · 2023 [cited by applicant]
US 20230082636A1 · Zhu et al. · 2023 [cited by applicant]
US 20230107466A1 · Gole · 2023 [cited by applicant]
US 20230161500A1 · Doucette et al. · 2023 [cited by applicant]
US 20230195382A1 · Gole et al. · 2023 [cited by applicant]
US 20230195383A1 · Gole et al. · 2023 [cited by applicant]
US 20230325279A1 · Gole et al. · 2023 [cited by applicant]
US 20230333740A1 · Singh et al. · 2023 [cited by applicant]
US 20230350858A1 · Karr et al. · 2023 [cited by applicant]
US 20240028262A1 · Gole et al. · 2024 [cited by applicant]
EP 1343087A2 · 2003 [cited by applicant]
Dholakia A., et al., “A New Intra-disk Redundancy Scheme for High-Reliability RAID Storage Systems in the Presence of Unrecoverable Errors,” ACM Transactions on Storage, May 2008, vol. 4 (1), Article 1,42 pages. [cited by applicant]
European Search Report for Application No. EP22157793 mailed on Jul. 19, 2022, 16 pages. [cited by applicant]
International Preliminary Report on Patentability for Application No. PCT/US2021/028879, mailed on Nov. 3, 2022, 7 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2021/028879, dated Aug. 5, 2021, 9 pages. [cited by applicant]
International Search Report and Written Opinion for Patent Application No. PCT/US2022/049431, mailed on Mar. 3, 2023, 13 pages. [cited by applicant]
Mao B., et al., “HPDA: A Hybrid Parity-Based Disk Array for Enhanced Performance and reliability,” ACM Transactions on Storage (TOS), vol. 8(1), Publication [online), Feb. 2012 [retrieved Apr. 4, 2016]. Retrieved from t… [cited by applicant]
Mao B., et al., “HPDA: A Hybrid Parity-Based Disk Array for Enhanced Performance and Reliability,” Retrieved from Internet URL: https://www.researchgate.net/publication/224140602, May 2020; 13 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7 .3 Data Protection Online Backup and Recovery Guide,” Feb. 22, 2011, Part No. 210-05212_A0, 432 pages. [cited by applicant]
NetApp, Inc., “Data [email protected] Active/Active Configuration Guide,” Jun. 16, 2011, Part No. 210-05247_ A0, 214 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Archive and Compliance Management Guide,” Mar. 4, 2010, Part No. 210-04827_A0, 180 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Block Access Management Guide for iSCSI and FC,” Mar. 4, 2010, Part No. 210-04752_B0, 202 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Data Protection Tape Backup and Recovery Guide,” Jan. 15, 2010, Part No. 210-04762_A0, 142 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Documentation Roadmap,” Jul. 9, 2008, Part No. 210-04229_A0, 8 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 File Access and Protocols Management Guide,” Sep. 10, 2009, Part No. 210-04505_B0, 382 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 MultiStore Management Guide,” Mar. 4, 2010, Part No. 210-04855_A0, 144 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Network Management Guide,” Jan. 15, 2010, Part No. 210-04757_A0, 222 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Software Setup Guide,” Nov. 4, 2010, Part No. 210-05045_A0, 116 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Storage Efficiency Management Guide,” Mar. 4, 2010, Part No. 210-04856_A0, 76 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Storage Management Guide,” May 3, 2012, Part No. 210-04766_B0, 356 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 System Administration Guide,” Nov. 11, 2010, Part No. 210-05043_A0, 350 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3 Upgrade Guide,” Nov. 11, 2010, Part No. 210-05042_A0, 200 pages. [cited by applicant]
NetApp, Inc., “Data ONTAP7.3.7 Release Notes,” May 31, 2012, Part No. 215-06916_A0, 182 pages. [cited by applicant]
NetApp, Inc., “Date ONTAP7.3 Core Commands Quick Reference,” Jun. 2008, Part No. 215-03893 A0, 1 page. [cited by applicant]
NetApp, Inc., “Notices,” 2010, Part No. 215-05705_A0, 46 pages. [cited by applicant]
NetApp, Inc., “V-Series Systems Hardware Maintenance Guide,” Jul. 2006, Part No. 210-00975_A0, 202 pages. [cited by applicant]
NetApp, Inc., “V-Series Systems Implementation Guide for Hitachi Storage,” Dec. 2009, Part No. 210-04694_A0, 66 pages. [cited by applicant]
NetApp, Inc., “V-Series Systems Installation Requirements and Reference Guide,” Oct. 2010, Part No. 210-05064_A0, 214 pages. [cited by applicant]
NetApp, Inc., “V-Series Systems MetroCiuster Guide,” Jul. 2009, Part No. 210-04515_A0, 80 pages. [cited by applicant]
Non-Final Office Action for Co-pending U.S. Appl. No. 17/650,940, dated Feb. 16, 2023, 24 pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 18, 2023 for U.S. Appl. No. 17/456,012, filed Nov. 22, 2021, 34 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 30, 2023 for U.S. Appl. No. 17/494,684, filed Oct. 5, 2021, 8 pages. [cited by applicant]
Non-Final Office Action mailed on May 15, 2023 for U.S. Appl. No. 17/650,936, filed Feb. 14, 2022, 19 pages. [cited by applicant]
Notice of Allowance for Co-pending U.S. Appl. No. 17/192,606, dated Jan. 28, 2022. [cited by applicant]
Notice of Allowance mailed on Aug. 9, 2023 for U.S. Appl. No. 17/650,936, filed Feb. 14, 2022, 05 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 30, 2023 for U.S. Appl. No. 17/456,012, filed Nov. 22, 2021, 10 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 19, 2023 for U.S. Appl. No. 17/650,940, filed Feb. 14, 2022, 9 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 16, 2023 for U.S. Appl. No. 16/858,019, filed Apr. 24, 2020, 10 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 26, 2023 for U.S. Appl. No. 17/494,684, filed Oct. 5, 2021, 8 pages. [cited by applicant]
Notice of Allowance mailed on Mar. 1, 2023 for U.S. Appl. No. 17/727,511, filed Apr. 22, 2022, 15 pages. [cited by applicant]
Notice of Allowance on co-pending U.S. Appl. No. 16/858,019, dated Dec. 20, 2022, 11 pages. [cited by applicant]
Notice of Allowance on co-pending U.S. Appl. No. 17/727,511, dated Dec. 14, 2022, 12 pages. [cited by applicant]
NVM Express Base Specification, Mar. 9, 2020, Revision 1.4a; NVM Express Workgroup, 405 pages. [cited by applicant]
U.S. Appl. No. 17/494,684, filed Oct. 5, 2021. [cited by applicant]
Notice of Allowance mailed on Jul. 5, 2024 for U.S. Appl. No. 18/474,988, filed Sep. 26, 2023, 02 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 26, 2024 for U.S. Appl. No. 18/474,988, filed Sep. 26, 2023, 08 pages. [cited by applicant]
Non-Final Office Action mailed on Sep. 19, 2024 for U.S. Appl. No. 18/343,149, filed Jun. 28, 2023, 16 pages. [cited by applicant]