Ensuring crash-safe forward progress of a system configuration update

US10353777B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10353777-B2
Application numberUS-201514927977-A
CountryUS
Kind codeB2
Filing dateOct 30, 2015
Priority dateOct 30, 2015
Publication dateJul 16, 2019
Grant dateJul 16, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, including: determining a number of storage devices in the storage system; determining a number of unavailable storage devices in the storage system; and determining, for the one or more system configurations, whether the system configuration can be reconstructed in dependence upon the number of storage devices in the storage system and the number of unavailable storage devices in the storage system.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, the method comprising: by the storage array controller in response to detecting a failure to write each portion of the system configuration update to the storage devices in the storage system: counting, by the storage array controller, a number of unavailable storage devices in the storage system, wherein a storage device is considered unavailable if the storage array controller is not able to determine contents of the storage device; determining, for one or more system configurations, whether each system configuration can be reconstructed in dependence upon the number of unavailable storage devices in the storage system; selecting, from each system configuration that can be reconstructed, a most recent system configuration; and responsive to determining that the most recent system configuration can be reconstructed, reconstructing the most recent system configuration using portions of the most recent system configuration stored separately on the storage devices included in the storage system, wherein the reconstructed most recent system configuration is used by the storage array controller to access the storage devices in the storage system. 2. The method of claim 1 further comprising: determining, for a particular configuration, a number of storage devices in the storage system that have stored a portion of the particular system configuration; and determining whether the particular system configuration can be reconstructed in dependence upon the number of storage devices in the storage system that have stored a portion of the particular system configuration. 3. The method of claim 2 wherein the number of storage devices in the storage system is greater than the number of storage devices that have stored the particular system configuration. 4. The method of claim 1 further comprising reconstructing a missing portion of the selected most recent system configuration utilizing redundancy information. 5. The method of claim 1 , wherein the storage array controller is stateless and does not maintain a copy of the system configuration describing storage devices included in the storage system. 6. An apparatus for ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: by the storage array controller in response to detecting a failure to write each portion of the system configuration update to the storage devices in the storage system: counting, by the storage array controller, a number of unavailable storage devices in the storage system, wherein a storage device is considered unavailable if the storage array controller is not able to determine the contents of the storage device; determining, for one or more system configurations, whether the system configuration can be reconstructed in dependence upon the number of unavailable storage devices in the storage system; selecting, from the system configuration that can be reconstructed, a most recent system configuration; and responsive to determining that the most recent system configuration can be reconstructed, reconstructing the most recent system configuration using portions of the most recent system configuration stored separately on the storage devices included in the storage system, wherein the reconstructed most recent system configuration is used by the storage array controller to access the storage devices in the storage system. 7. The apparatus of claim 6 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: determining, for a particular configuration, a number of storage devices in the storage system that have stored a portion of the particular system configuration; and determining whether the particular system configuration can be reconstructed in dependence upon the number of storage devices in the storage system that have stored a portion of the particular system configuration. 8. The apparatus of claim 7 wherein the number of storage devices in the storage system is greater than the number of storage devices that have stored the particular system configuration. 9. The apparatus of claim 6 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: reconstructing a missing portion of the selected most recent system configuration utilizing redundancy information. 10. The apparatus of claim 6 , wherein the storage array controller is stateless and does not maintain a copy of the system configuration describing storage devices included in the storage system. 11. A computer program product for ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, the computer program product including a non-transitory computer readable medium comprising computer program instructions that, when executed, cause a computer to carry out the steps of: by the storage array controller in response to detecting a failure to write each portion of the system configuration update to the storage devices in the storage system: counting, by the storage array controller, a number of unavailable storage devices in the storage system, wherein a storage device is considered unavailable if the storage array controller is not able to determine the contents of the storage device; determining, for one or more system configurations, whether the system configuration can be reconstructed in dependence upon the number of unavailable storage devices in the storage system; selecting, from the system configuration that can be reconstructed, a most recent system configuration; and responsive to determining that the most recent system configuration can be reconstructed, reconstructing the most recent system configuration using portions of the most recent system configuration stored separately on the storage devices included in the storage system, wherein the reconstructed most recent system configuration is used by the storage array controller to access the storage devices in the storage system. 12. The computer program product of claim 11 further comprising computer program instructions that, when executed, cause the computer to carry out the steps of: determining, for a particular configuration, a number of storage devices in the storage system that have stored a portion of the particular system configuration; and determining whether the particular system configuration can be reconstructed in dependence upon the number of storage devices in the storage system that have stored a portion of the particular system configuration. 13. The computer program product of claim 12 wherein the number of storage devices in the storage system is greater than the number of storage devices that have stored the particular system configuration. 14. The computer program product of claim 11 further comprising computer program instructions that, when executed, cause the computer to carry out the steps of: reconstructing a missing portion of the selected most rec

Assignees

Inventors

Classifications

  • Configuration or reconfiguration of storage systems · CPC title

  • Replication mechanisms · CPC title

  • G06F3/0614Primary

    Improving the reliability of storage systems · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10353777B2 cover?
Ensuring crash-safe forward progress of a system configuration update in a storage system that includes a storage array controller and a plurality of storage devices, including: determining a number of storage devices in the storage system; determining a number of unavailable storage devices in the storage system; and determining, for the one or more system configurations, whether the system co…
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0614. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 16 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).