IP Library Granted Patent US 12,596,598
Granted Patent B2
US 12,596,598 · App. 18/398,361 · Granted Apr 7, 2026

Maintaining availability of critical information in a distributed storage network

Inventors: Thomas D. Cocagne (Elk Grove Village, IL); Asimuddin Kazi (Naperville, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F11/008G06F11/1092H04L41/0806H04L67/1097G06F11/0727G06F2211/1028
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,596,598
App. No.
18/398,361
Granted
Apr 7, 2026
Kind
B2
Abstract

Methods and apparatus for maintaining availability of critical information in a storage network that includes a plurality of storage units. In an embodiment, a processing module(s) of the storage network identifies critical information stored in one or more memory devices of a computing device. Critical information can include, for example, information required for operation of one or more storage units to perform data access operations. The processing module obtains the critical information from the one or more memory devices, and dispersed storage error encodes the critical information to produce one or more sets of encoded critical slices. The processing module further selects a set of storage units of the storage network and facilitates storage of the one or more sets of encoded critical slices in the selected set of storage units.

Claims (68)

1 . A method comprises:

identifying, by one or more processing modules of a storage network, critical information stored in one or more memory devices of a computing device, wherein the identifying includes initiating a query and receiving a query response;

obtaining the critical information from the one or more memory devices;

dispersed storage error encoding the critical information to produce one or more sets of encoded critical slices;

selecting a set of storage units of the storage network; and

facilitating storage of the one or more sets of encoded critical slices in the selected set of storage units.

2 . The method of claim 1 , further comprising:

aggregating the identified critical information to produce aggregated critical information,

wherein producing the one or more sets of encoded critical slices includes dispersed storage error encoding the aggregated critical information to produce the one or more sets of encoded critical slices.

3 . The method of claim 1 , wherein the critical information is required for operation of one or more storage units of the storage network to perform data retrieval functions.

4 . The method of claim 3 , wherein critical information includes at least one of BIOS software, bootstrap software, operating system software, application software, memory configuration information, system registry information, access list information, security information, encoded slice storage location information, or an index node file.

5 . The method of claim 1 , wherein identifying critical information stored in one or more memory devices of the computing device further includes at least one of:

searching by a critical information type;

receiving a request;

interpreting system registry information; or

comparing stored data to a list.

6 . The method of claim 1 , further comprising:

detecting, by one or more processing modules of the storage network, an unavailability of a memory device of the one or more memory devices;

identifying unavailable critical information associated with the memory device;

determining whether to remedy the unavailable critical information;

in response to determining to remedy the unavailable critical information, identifying the selected set of storage units;

facilitating retrieval, from the selected set of storage units, of at least a decode threshold number of encoded critical slices per set of encoded critical slices corresponding to the unavailable critical information;

for each set of encoded critical slices, dispersed storage error decoding at least a decode threshold number of encoded critical slices to produce rebuilt critical information;

identifying a storage location for the rebuilt critical information; and

facilitating storage of the rebuilt critical information in the identified storage location.

7 . The method of claim 6 , wherein determining to remedy the unavailable critical information includes detecting a replacement memory device for the unavailable memory device.

8 . The method of claim 6 , wherein determining to remedy the unavailable critical information includes detecting availability of the previously unavailable memory device.

9 . The method of claim 6 , wherein dispersed storage error decoding at least a decode threshold number of encoded critical slices for each set of encoded critical slices to produce rebuilt critical information includes reproducing one or more data segments and aggregating the one or more data segments to produce the rebuilt critical information corresponding to the unavailable critical information.

10 . The method of claim 6 , wherein identifying the storage location for the rebuilt critical information includes at least one of interpreting a directory entry or identifying a replacement memory device.

11 . The method of claim 6 , wherein facilitating storage of the rebuilt critical information includes writing the rebuilt critical information to a storage unit of the storage network.

12 . A computing device comprises:

at least one interface;

memory that stores operational instructions; and

a processing module operably coupled to the memory and the at least one interface, wherein the processing module is configured to execute the operational instructions to:

identify critical information stored in one or more memory devices of a computing device of a storage network, wherein the identifying includes initiating a query and receiving a query response;

dispersed storage error encode the critical information to produce one or more sets of encoded critical slices;

select a set of storage units of the storage network; and

facilitate storage of the one or more sets of encoded critical slices in the selected set of storage units.

13 . The computing device of claim 12 , wherein the processing module is further configured to execute the operational instructions to:

aggregate the identified critical information to produce aggregated critical information, wherein producing the one or more sets of encoded critical slices includes dispersed storage error encoding the aggregated critical information to produce the one or more sets of encoded critical slices.

14 . The computing device of claim 12 , wherein the critical information is required for operation of one or more storage units of the storage network to perform data retrieval functions.

15 . The computing device of claim 12 , wherein the processing module is further configured to execute the operational instructions to:

detect an unavailability of a memory device of the one or more memory devices;

identify unavailable critical information associated with the memory device;

determine whether to remedy the unavailable critical information;

in response to determining to remedy the unavailable critical information, identify the selected set of storage units;

facilitate retrieval, from the selected set of storage units, of at least a decode threshold number of encoded critical slices per set of encoded critical slices corresponding to the unavailable critical information;

for each set of encoded critical slices, dispersed storage error decode at least a decode threshold number of encoded critical slices to produce rebuilt critical information;

identify a storage location for the rebuilt critical information; and

facilitate storage of the rebuilt critical information in the identified storage location.

16 . The computing device of claim 15 , wherein determining to remedy the unavailable critical information includes at least one of detecting a replacement memory device for the unavailable memory device or detecting availability of the previously unavailable memory device.

17 . The computing device of claim 15 , wherein facilitating storage of the rebuilt critical information includes writing the rebuilt critical information to a storage unit of the storage network.

18 . A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of a storage network, causes the one or more processing modules to:

initiate a query response to identify critical information stored in one or more memory devices of a computing device of a storage network;

receive a query response including the critical information;

dispersed storage error encode the critical information to produce one or more sets of encoded critical slices;

select a set of storage units of the storage network; and

facilitate storage of the one or more sets of encoded critical slices in the selected set of storage units.

19 . The non-transitory computer readable storage medium of claim 18 , wherein the critical information is required to perform a data retrieval operation.

20 . The non-transitory computer readable storage medium of claim 18 , wherein the operational instructions, when executed by one or more processing modules of a storage network, further cause the one or more processing modules to:

detect an unavailability of a memory device of the one or more memory devices;

identify unavailable critical information associated with the memory device;

identify the selected set of storage units;

facilitate retrieval, from the selected set of storage units, of at least a decode threshold number of encoded critical slices per set of encoded critical slices corresponding to the unavailable critical information;

for each set of encoded critical slices, dispersed storage error decode at least a decode threshold number of encoded critical slices to produce rebuilt critical information;

identify a storage location for the rebuilt critical information; and

facilitate storage of the rebuilt critical information in the identified storage location.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2026
From: COCAGNE, THOMAS D.; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 074010/0076 →
Continuity (6)
Continuation 17827888 · May 30, 2022
Continuation 16850434 · Apr 16, 2020
Continuation In Part 16029898 · Jul 9, 2018
Continuation In Part 14613899 · Feb 4, 2015
Provisional Application 61974110 · Apr 2, 2014
Related Publication 20240184654A1 · Jun 6, 2024
References Cited (124)
US 580956A · Xin · 1897 [cited by applicant]
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · Mackay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5774643A · Lubbers · 1998 [cited by applicant]
US 5802364A · Senator · 1998 [cited by applicant]
US 5809285A · Hilland · 1998 [cited by applicant]
US 5890156A · Rekieta · 1999 [cited by applicant]
US 5987622A · Lo Verso · 1999 [cited by applicant]
US 5991414A · Garay · 1999 [cited by applicant]
US 6012159A · Fischer · 2000 [cited by applicant]
US 6058454A · Gerlach · 2000 [cited by applicant]
US 6128277A · Bruck · 2000 [cited by applicant]
US 6175571B1 · Haddock · 2001 [cited by applicant]
US 6192472B1 · Garay · 2001 [cited by applicant]
US 6256688B1 · Suetaka · 2001 [cited by applicant]
US 6272658B1 · Steele · 2001 [cited by applicant]
US 6301604B1 · Nojima · 2001 [cited by applicant]
US 6356949B1 · Katsandres · 2002 [cited by applicant]
US 6366995B1 · Nikolaevich · 2002 [cited by applicant]
US 6374336B1 · Peters · 2002 [cited by applicant]
US 6415373B1 · Peters · 2002 [cited by applicant]
US 6418539B1 · Walker · 2002 [cited by applicant]
US 6449688B1 · Peters · 2002 [cited by applicant]
US 6567948B2 · Steele · 2003 [cited by applicant]
US 6571282B1 · Bowman-Amuah · 2003 [cited by applicant]
US 6609223B1 · Wolfgang · 2003 [cited by applicant]
US 6718361B1 · Basani · 2004 [cited by applicant]
US 6760808B2 · Peters · 2004 [cited by applicant]
US 6785768B2 · Peters · 2004 [cited by applicant]
US 6785783B2 · Buckland · 2004 [cited by applicant]
US 6826711B2 · Moulton · 2004 [cited by applicant]
US 6879596B1 · Dooply · 2005 [cited by applicant]
US 7003688B1 · Pittelkow · 2006 [cited by applicant]
US 7024451B2 · Jorgenson · 2006 [cited by applicant]
US 7024609B2 · Wolfgang · 2006 [cited by applicant]
US 7080101B1 · Watson · 2006 [cited by applicant]
US 7103824B2 · Halford · 2006 [cited by applicant]
US 7103915B2 · Redlich · 2006 [cited by applicant]
US 7111115B2 · Peters · 2006 [cited by applicant]
US 7140044B2 · Redlich · 2006 [cited by applicant]
US 7146644B2 · Redlich · 2006 [cited by applicant]
US 7171493B2 · Shu · 2007 [cited by applicant]
US 7222133B1 · Raipurkar · 2007 [cited by applicant]
US 7240236B2 · Cutts · 2007 [cited by applicant]
US 7272613B2 · Sim · 2007 [cited by applicant]
US 7580956B1 · Xin · 2009 [cited by applicant]
US 7636724B2 · De La Torre · 2009 [cited by applicant]
US 9141458B2 · Grube · 2015 [cited by applicant]
US 9560133B2 · Gladwin · 2017 [cited by applicant]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020166079A1 · Ulrich · 2002 [cited by applicant]
US 20030018927A1 · Gadir · 2003 [cited by applicant]
US 20030037261A1 · Meffert · 2003 [cited by applicant]
US 20030055571A1 · Sakakibara · 2003 [cited by applicant]
US 20030065617A1 · Watkins · 2003 [cited by applicant]
US 20030084020A1 · Shu · 2003 [cited by applicant]
US 20040024963A1 · Talagala · 2004 [cited by applicant]
US 20040122917A1 · Menon · 2004 [cited by applicant]
US 20040215998A1 · Buxton · 2004 [cited by applicant]
US 20040228493A1 · Ma · 2004 [cited by applicant]
US 20050100022A1 · Ramprashad · 2005 [cited by applicant]
US 20050114594A1 · Corbett · 2005 [cited by applicant]
US 20050125593A1 · Karpoff · 2005 [cited by applicant]
US 20050131993A1 · Fatula, Jr. · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060024733A1 · Wong · 2006 [cited by applicant]
US 20060041580A1 · Ozdemier et al. · 2006 [cited by applicant]
US 20060047907A1 · Shiga · 2006 [cited by applicant]
US 20060106898A1 · Frondozo · 2006 [cited by examiner]
US 20060136448A1 · Cialini · 2006 [cited by applicant]
US 20060156059A1 · Kitamura · 2006 [cited by applicant]
US 20060224603A1 · Correll, Jr. · 2006 [cited by applicant]
US 20060236061A1 · Koclanes · 2006 [cited by applicant]
US 20070050543A1 · Pomerantz · 2007 [cited by applicant]
US 20070079081A1 · Gladwin · 2007 [cited by applicant]
US 20070079082A1 · Gladwin · 2007 [cited by applicant]
US 20070079083A1 · Gladwin · 2007 [cited by applicant]
US 20070088970A1 · Buxton · 2007 [cited by applicant]
US 20070174192A1 · Gladwin · 2007 [cited by applicant]
US 20070214285A1 · Au · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070269804A1 · Liew · 2007 [cited by applicant]
US 20070283167A1 · Venters, III · 2007 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20090157991A1 · Rajan · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20100281063A1 · Ushiyama et al. · 2010 [cited by applicant]
US 20110029836A1 · Dhuse · 2011 [cited by applicant]
US 20110161680A1 · Grube · 2011 [cited by applicant]
US 20110231733A1 · Cilfone · 2011 [cited by examiner]
US 20120185513A1 · Samukawa · 2012 [cited by applicant]
US 20120284257A1 · Mousses et al. · 2012 [cited by applicant]
US 20120290868A1 · Gladwin · 2012 [cited by applicant]
US 20130013959A1 · Grube · 2013 [cited by examiner]
US 20130086642A1 · Resch · 2013 [cited by examiner]
US 20130290809A1 · Resch et al. · 2013 [cited by applicant]
US 20140297776A1 · Volvovski · 2014 [cited by examiner]
US 20150220400A1 · Resch · 2015 [cited by applicant]
US 20150242273A1 · Resch · 2015 [cited by examiner]
JP 2006522356A · 2006 [cited by applicant]
KR 20070088887A · 2007 [cited by applicant]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [cited by applicant]
Harrison; Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms; IETF Network Working Group; RFC 4513; Jun. 2006; pp. 1-32. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2015/14625; May 14, 2015; 11 pgs. [cited by applicant]
Kubiatowicz, et al.; OceanStore: An Architecture for Global-Scale Persistent Storage; Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 20… [cited by applicant]
Legg; Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules; IETF Network Working Group; RFC 4517; Jun. 2006; pp. 1-50. [cited by applicant]
Plank, T1: Erasure Codes for Storage Applications; FAST2005, 4th Usenix Conference on File Storage Technologies; Dec. 13-16, 2005; pp. 1-74. [cited by applicant]
Rabin; Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance; Journal of the Association for Computer Machinery; vol. 36, No. 2; Apr. 1989; pp. 335-348. [cited by applicant]
Satran, et al.; Internet Small Computer Systems Interface (ISCSI); IETF Network Working Group; RFC 3720; Apr. 2004; pp. 1-257. [cited by applicant]
Sciberras; Lightweight Directory Access Protocol (LDAP): Schema for User Applications; IETF Network Working Group; RFC 4519; Jun. 2006; pp. 1-33. [cited by applicant]
Sermersheim; Lightweight Directory Access Protocol (LDAP): The Protocol; IETF Network Working Group; RFC 4511; Jun. 2006; pp. 1-68. [cited by applicant]
Shamir; How to Share a Secret; Communications of the ACM; vol. 22, No. 11; Nov. 1979; pp. 612-613. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator; IETF Network Working Group; RFC 4516; Jun. 2006; pp. 1-15. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters; IETF Network Working Group; RFC 4515; Jun. 2006; pp. 1-12. [cited by applicant]
Wildi; Java iSCSi Initiator; Master Thesis; Department of Computer and Information Science, University of Konstanz; Feb. 2007; 60 pgs. [cited by applicant]
Xin, et al.; Evaluation of Distributed Recovery in Large-Scale Storage Systems; 13th IEEE International Symposium on High Performance Distributed Computing; Jun. 2004; pp. 172-181. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Directory Information Models; IETF Network Working Group; RFC 4512; Jun. 2006; pp. 1-49. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation; IETF Network Working Group; RFC 4518; Jun. 2006; pp. 1-14. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names; IETF Network Working Group; RFC 4514; Jun. 2006; pp. 1-15. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map; IETF Network Working Group; RFC 4510; Jun. 2006; pp. 1-8. [cited by applicant]