IP Library › Granted Patent US 10,817,392
Granted Patent B1
US 10,817,392 · App. 16/263,345 · Granted Oct 27, 2020

Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices

Inventors: Mark McAuliffe (East Palo Alto, CA); Neil Vachharajani (Menlo Park, CA); Farhan Abrol (San Francisco, CA)
Assignee: Pure Storage, Inc.
G06F11/2058G06F11/076G06F11/0727G06F11/1441G06F11/2023G06F11/2064G06F11/2094H04L67/1097
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 10,817,392
App. No.
16/263,345
Filed
Jan 31, 2019
Granted
Oct 27, 2020
Kind
B1
Art Unit
2114
USPC
714/6.3
Abstract

Ensuring resiliency to storage device failures in a storage system, including: determining a number of storage device failures within a particular write group that are to be tolerated by the storage system; for a plurality of datasets stored within the storage system, writing each dataset to at least a predetermined number of storage devices within the particular write group, wherein the predetermined number of storage devices is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system; and responsive to recovering from a system interruption: determining a number of readable storage devices that contain a copy of the dataset; and if the number of readable storage devices that contain a copy of the dataset is not greater than the number of failures that are to be tolerated, writing the dataset to one or more additional storage devices.

Claims (35)

1. A method of ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices, the method comprising:

determining a number of storage device failures within a particular write group that are to be tolerated by the storage system;

for a plurality of datasets stored within the storage system, writing each dataset to at least a predetermined number of storage devices within the particular write group, wherein the predetermined number of storage devices is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system; and

responsive to recovering from a system interruption:

determining a number of readable storage devices that contain a copy of the dataset; and

if the number of readable storage devices that contain a copy of the dataset is not greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system, writing the dataset to one or more additional storage devices such that the number of readable storage devices that contain a copy of the dataset is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system.

2. The method of claim 1 further comprising determining whether the dataset has been written to at least the predetermined number of storage devices within the particular write group.

3. The method of claim 2 further comprising responsive to determining that the data has been written to at least the predetermined number of storage devices within the particular write group, acknowledging that the dataset has been written to the storage system.

4. The method of claim 2 further comprising responsive to determining that the data has not been written to at least the predetermined number of storage devices within the particular write group, withholding acknowledgement that the dataset has been written to the storage system.

5. The method of claim 1 wherein each dataset is associated with a unique identifier, the method further comprising, responsive to recovering from the system interruption, generating a catalog of valid datasets based on one or more identifiers stored among readable storage devices of the respective write groups.

6. The method of claim 5 wherein generating the catalog of valid datasets includes detecting each of the valid datasets by scanning at least a subset of storage devices in each write group of the storage system.

7. The method of claim 1 wherein each dataset is associated with a unique identifier and each identifier is written within a respective metadata section of a respective allocation unit or of a respective dataset.

8. An apparatus for ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices, the apparatus comprising a computer processor, 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:

determining a number of storage device failures within a particular write group that are to be tolerated by the storage system;

for a plurality of datasets stored within the storage system, writing each dataset to at least a predetermined number of storage devices within the particular write group, wherein the predetermined number of storage devices is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system; and

responsive to recovering from a system interruption:

determining a number of readable storage devices that contain a copy of the dataset; and

if the number of readable storage devices that contain a copy of the dataset is not greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system, writing the dataset to one or more additional storage devices such that the number of readable storage devices that contain a copy of the dataset is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system.

9. The apparatus of claim 8 , further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of determining whether the dataset has been written to at least the predetermined number of storage devices within the particular write group.

10. The apparatus of claim 9 , further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of responsive to determining that the data has been written to at least the predetermined number of storage devices within the particular write group, acknowledging that the dataset has been written to the storage system.

11. The apparatus of claim 9 , further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of responsive to determining that the data has not been written to at least the predetermined number of storage devices within the particular write group, withholding acknowledgement that the dataset has been written to the storage system.

12. The apparatus of claim 8 , wherein each dataset is associated with a unique identifier, the apparatus further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of, responsive to recovering from the system interruption, generating a catalog of valid datasets based on one or more identifiers stored among readable storage devices of the respective write groups.

13. The apparatus of claim 12 , wherein generating the catalog of valid datasets includes detecting each of the valid datasets by scanning at least a subset of storage devices in each write group of the storage system.

14. The apparatus of claim 8 wherein each dataset is associated with a unique identifier and each identifier is written within a respective metadata section of a respective allocation unit or of a respective dataset.

15. A storage system for ensuring resiliency to storage device failures, the storage system including a plurality of storage devices, the storage system also including 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 storage system to carry out the steps of:

determining a number of storage device failures within a particular write group that are to be tolerated by the storage system;

for a plurality of datasets stored within the storage system, writing each dataset to at least a predetermined number of storage devices within the particular write group, wherein the predetermined number of storage devices is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system; and

responsive to recovering from a system interruption:

determining a number of readable storage devices that contain a copy of the dataset; and

if the number of readable storage devices that contain a copy of the dataset is not greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system, writing the dataset to one or more additional storage devices such that the number of readable storage devices that contain a copy of the dataset is greater than the number of storage device failures within the particular write group that are to be tolerated by the storage system.

16. The storage system of claim 15 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the step of determining whether the dataset has been written to at least the predetermined number of storage devices within the particular write group.

17. The storage system of claim 16 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the step of responsive to determining that the data has been written to at least the predetermined number of storage devices within the particular write group, acknowledging that the dataset has been written to the storage system.

18. The storage system of claim 16 further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the step of responsive to determining that the data has not been written to at least the predetermined number of storage devices within the particular write group, withholding acknowledgement that the dataset has been written to the storage system.

19. The storage system of claim 15 wherein each dataset is associated with a unique identifier, the storage system further comprising computer program instructions that, when executed by the computer processor, cause the storage system to carry out the step of, responsive to recovering from the system interruption, generating a catalog of valid datasets based on one or more identifiers stored among readable storage devices of the respective write groups.

20. The storage system of claim 19 wherein generating the catalog of valid datasets includes detecting each of the valid datasets by scanning at least a subset of storage devices in each write group of the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2019
From: MCAULIFFE, MARK; VACHHARAJANI, NEIL; ABROL, FARHAN
To: PURE STORAGE, INC.
Reel/Frame 048391/0941 →
Continuity (3)
Continuation In Part 15800451 · Nov 1, 2017
Provisional Application 62668299 · May 8, 2018
Provisional Application 62628379 · Feb 9, 2018
Cited By (11)
US 12,248,379 US 12,248,690 US 12,299,302 US 12,321,625 US 12,367,320 US 12,375,542 US 12,393,485 US 12,517,998 US 12,613,788 US 12,639,172 US 12,748,714