IP Library › Granted Patent US 10,838,834
Granted Patent B1
US 10,838,834 · App. 16/279,174 · Granted Nov 17, 2020

Managing read and write requests targeting a failed storage region in a storage system

Inventors: Marco Sanvido (Belmont, CA); Richard Hankins (San Jose, CA); Naveen Neelakantam (Mountain View, CA); Xiaohui Wang (Mountain View, CA); Mark McAuliffe (East Palo Alto, CA); Taher Vohra (Sunnyvale, CA)
Assignee: Pure Storage, Inc.
G06F11/2094G06F11/108G06F11/1088G06F11/1092G06F2201/805G06F2201/82
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,838,834
App. No.
16/279,174
Granted
Nov 17, 2020
Kind
B1
Abstract

A system and method for efficiently distributing data among multiple storage devices. A data storage array receives read and write requests from multiple client computers. The data storage array includes multiple storage devices, each with multiple allocation units (AUs). A storage controller within the data storage array determines a RAID layout for use in storing data. In response to determining a failure of a first AU, the storage controller begins reconstructing in a second AU the data stored in the first AU. For read and write requests targeting data in the first AU, the request is serviced by the first AU responsive to determining no error occurs when accessing the first AU.

Claims (36)

1. A method comprising:

detecting a failure associated with a first storage region;

in response to detecting the failure, reconstructing, at a second storage region, data stored at the first storage region;

receiving an I/O request targeting the first storage region during reconstruction of the data stored at the first storage region;

in response to receiving the I/O request targeting the first storage region during reconstruction of the data, accessing both the first storage region and the second storage region in order to service the I/O request; and

servicing the received I/O request with the requested data from the storage region that is identified as responding first with the requested data.

2. The method as recited in claim 1 , further comprising:

in response to determining an error occurs when accessing the given data storage location, using reconstructed data to both service the received I/O request and copy data in the given data storage location in the second storage region.

3. The method as recited in claim 1 , further comprising:

in response to determining an error occurs when accessing the given data storage location, servicing the received I/O request using the second storage region.

4. The method as recited in claim 1 , wherein detecting the failure associated with a first storage region comprises determining a number of errors when accessing data in the first storage region exceeds a threshold.

5. The method as recited in claim 1 , wherein detecting the failure associated with a first storage region comprises determining an error rate when accessing data in the first storage region exceeds a threshold.

6. An apparatus including a computer processor coupled to computer memory, the computer memory including computer program instructions that when executed by the computer processor cause the apparatus to:

detect a failure associated with a first storage region;

in response to detecting the failure, reconstruct, at a second storage region, data stored at the first storage region;

receive a I/O request targeting the first storage region during reconstruction of the data; and

in response to receiving the I/O request targeting the first storage region during reconstruction of the data, access both the first storage region and the second storage region in order to service the I/O request, and

service the received I/O request with the requested data from the storage region that is identified as responding first with the requested data.

7. The apparatus of claim 6 , wherein the computer memory includes computer program instructions that when executed by the computer processor cause the apparatus to:

in response to determining an error occurs when accessing the given data storage location, use reconstructed data to both service the received I/O request and copy data in the given data storage location in the second storage region.

8. The apparatus of claim 6 , wherein the computer memory includes computer program instructions that when executed by the computer processor cause the apparatus to:

in response to determining an error occurs when accessing the given data storage location, service the received I/O request using the second storage region.

9. The apparatus of claim 6 , wherein detecting the failure associated with a first storage region comprises determining a number of errors when accessing data in the first storage region exceeds a threshold.

10. The apparatus of claim 6 , wherein detecting the failure associated with a first storage region comprises determining an error rate when accessing data in the first storage region exceeds a threshold.

11. A non-transitory computer readable storage medium storing program instructions that when executed by a computer processor cause the computer processor to:

detect a failure associated with a first storage region;

in response to detecting the failure, reconstruct, at a second storage region, data stored at the first storage region;

receive a I/O request targeting the first storage region during reconstruction of the data; and

in response to receiving the I/O request targeting the first storage region during reconstruction of the data, simultaneously access, in parallel, the first storage region and the second storage region in order to service the I/O request; and

service the received I/O request with the requested data from the storage region that is identified as responding first with the requested data.

12. The computer readable storage medium of claim 11 , wherein the computer memory includes computer program instructions when executed by a computer processor cause the computer processor to:

in response to determining an error occurs when accessing the given data storage location, use reconstructed data to both service the received I/O request and copy data in the given data storage location in the second storage region.

13. The computer readable storage medium of claim 11 , wherein the computer memory includes computer program instructions when executed by a computer processor cause the computer processor to:

in response to determining an error occurs when accessing the given data storage location, service the received I/O request using the second storage region.

14. The computer readable storage medium of claim 11 , wherein detecting the failure associated with a first storage region comprises determining a number of errors when accessing data in the first storage region exceeds a threshold.

15. The computer readable storage medium of claim 11 , wherein detecting the failure associated with a first storage region comprises determining an error rate when accessing data in the first storage region exceeds a threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2019
From: SANVIDO, MARCO; HANKINS, RICHARD; NEELAKANTAM, NAVEEN; WANG, XIAOHUI; MCAULIFFE, MARK; VOHRA, TAHER
To: PURE STORAGE, INC.
Reel/Frame 048370/0994 →
Continuity (2)
Continuation 15416151 · Jan 26, 2017
Continuation 14567960 · Dec 11, 2014
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176