IP Library Granted Patent US 11,429,500
Granted Patent B2
US 11,429,500 · App. 17/038,534 · Granted Aug 30, 2022

Selective utilization of processor cores while rebuilding data previously stored on a failed data storage drive

Inventors: Hongpo Gao (Beijing, CN); Philippe Armangau (Acton, MA); Geng Han (Beijing, CN); Jian Gao (Beijing, CN); Shaoqin Gong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F11/2094G06F3/0613G06F11/1092G06F13/1668G06F2201/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 11,429,500
App. No.
17/038,534
Granted
Aug 30, 2022
Kind
B2
Abstract

In response to failure of a data storage drive, data previously stored on the failed drive is rebuilt on a replacement data storage drive by executing drive rebuild jobs on a first set of processor cores. While the data previously stored on the failed data storage drive is being rebuilt, a second set of processor cores is used to process host I/O (Input/Output) requests. The host I/O requests processed by the second set of processor cores may be a first set of host I/O requests processed during the data rebuild. When a current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, at least one processor core in the first set of processor cores may be used to process a second set of host I/O requests while the data previously stored on the failed data storage drive is being rebuilt.

Claims (42)

1. A method comprising:

in response to detecting failure of a data storage drive, rebuilding data previously stored on the failed data storage drive on a replacement data storage drive by executing a plurality of rebuild jobs on a first set of processor cores;

while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive, using a second set of processor cores to process host I/O (Input/Output) requests, wherein the host I/O requests processed by the second set of processor cores while rebuilding the data previously stored on the failed storage drive comprise a first set of host I/O requests; and

further while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive:

calculating a current total number of outstanding host I/O requests,

determining whether the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, and

in response to determining that the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, using at least one processor core in the first set of processor cores to process a second set of host I/O requests.

2. The method of claim 1 , wherein using the at least one processor core in the first set of processor cores to process the second set of host I/O requests comprises using the at least one processor core in the first set of processor cores to process the second set of host I/O requests while the at least one processor core in the first set of processor cores additionally executes at least one of the plurality of drive rebuild jobs.

3. The method of claim 2 , wherein using the at least one processor core in the first set of processor cores to process the second set of host I/O requests comprises using the at least one processor core in the first set of processor cores to process the second set of host I/O requests while at least one processor core in the second set of processor cores processes at least one host I/O request in the first set of host I/O requests in parallel.

4. The method of claim 1 , wherein the processor cores in the first set of processor cores comprise processor cores that are connected to a first physical socket; and

wherein the processor cores in the second set of processor cores comprise processor cores that are connected to a second physical socket.

5. The method of claim 1 , wherein calculating the current total number of outstanding host I/O requests comprises maintaining a count of host I/O requests for which:

processing has previously been started on one of the processor cores, and

processing has not yet completed.

6. The method of claim 1 , further comprising dividing the current total number of outstanding host I/O requests by a total number of processor cores in the first set of processor cores and the second set of processor cores before determining whether the current total number of outstanding host I/O requests exceeds the threshold maximum number of outstanding host I/O requests.

7. The method of claim 1 , wherein the threshold maximum number of outstanding host I/O requests comprises a value that limits an average host I/O request processing latency obtained while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive to less than a specific latency value.

8. A data storage system comprising:

at least one storage processor including processing circuitry and a memory;

a plurality of non-volatile data storage drives communicably coupled to the storage processor; and

wherein the memory has program code stored thereon, wherein the program code, when executed by the processing circuitry, causes the processing circuitry to:

in response to detecting failure of a data storage drive, rebuild data previously stored on the failed data storage drive on a replacement data storage drive by executing a plurality of rebuild jobs on a first set of processor cores;

while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive, use a second set of processor cores to process host I/O (Input/Output) requests, wherein the host I/O requests processed by the second set of processor cores while rebuilding the data previously stored on the failed storage drive comprise a first set of host I/O requests; and

further while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive:

calculate a current total number of outstanding host I/O requests,

determine whether the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, and

in response to a determination that the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, use at least one processor core in the first set of processor cores to process a second set of host I/O requests.

9. The data storage system of claim 8 , wherein the program code, when executed by the processing circuitry, uses the at least one processor core in the first set of processor cores to process the second set of host I/O requests at least in part by using the at least one processor core in the first set of processor cores to process the second set of host I/O requests while the at least one processor core in the first set of processor cores additionally executes at least one of the plurality of drive rebuild jobs.

10. The data storage system of claim 9 , wherein the program code, when executed by the processing circuitry, uses the at least one processor core in the first set of processor cores to process the second set of host I/O requests at least in part by using the at least one processor core in the first set of processor cores to process the second set of host I/O requests while at least one processor core in the second set of processor cores processes at least one host I/O request in the first set of host I/O requests in parallel.

11. The data storage system of claim 8 , wherein the processor cores in the first set of processor cores comprise processor cores that are connected to a first physical socket; and

wherein the processor cores in the second set of processor cores comprise processor cores that are connected to a second physical socket.

12. The data storage system of claim 8 , wherein the program code, when executed by the processing circuitry, calculates the current total number of outstanding host I/O requests at least in part by maintaining a count of host I/O requests for which:

processing has previously been started on one of the processor cores, and

processing has not yet completed.

13. The data storage system of claim 8 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to divide the current total number of outstanding host I/O requests by a total number of processor cores in the first set of processor cores and the second set of processor cores before causing the processing circuitry to determine whether the current total number of outstanding host I/O requests exceeds the threshold maximum number of outstanding host I/O requests.

14. The data storage system of claim 8 , wherein the threshold maximum number of outstanding host I/O requests comprises a value that limits an average host I/O request processing latency obtained while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive to less than a specific latency value.

15. A computer program product including a non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed on processing circuitry, cause the processing circuitry to perform steps including:

in response to detecting failure of a data storage drive, rebuilding data previously stored on the failed data storage drive on a replacement data storage drive by executing a plurality of rebuild jobs on a first set of processor cores;

while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive, using a second set of processor cores to process host I/O (Input/Output) requests, wherein the host I/O requests processed by the second set of processor cores while rebuilding the data previously stored on the failed storage drive comprise a first set of host I/O requests; and

further while rebuilding the data previously stored on the failed data storage drive on the replacement data storage drive:

calculating a current total number of outstanding host I/O requests,

determining whether the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, and

in response to determining that the current total number of outstanding host I/O requests exceeds a threshold maximum number of outstanding host I/O requests, using at least one processor core in the first set of processor cores to process a second set of host I/O requests.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2021
From: GAO, HONGPO; ARMANGAU, PHILIPPE; HAN, GENG; GAO, JIAN; GONG, SHAOQIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054857/0339 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →