IP Library › Granted Patent US 11,507,461
Granted Patent B2
US 11,507,461 · App. 16/587,970 · Granted Nov 22, 2022

Method, apparatus, and computer readable medium for I/O control

Inventors: Geng Han (Beijing, CN); Jianbin Kang (Beijing, CN); Jibing Dong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F11/1096G06F3/0611G06F3/0653G06F3/0659G06F3/0689G06F11/2094G06F11/3034
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,507,461
App. No.
16/587,970
Filed
Sep 30, 2019
Granted
Nov 22, 2022
Kind
B2
Examiner
OTTO, ALAN
Art Unit
2132
USPC
711/114
Abstract

Techniques providing I/O control involve: in response to receiving an I/O request, detecting a first set bits for a stripe in a RAID. The RAID is built on disk slices divided from disks. The stripes include extents. Each of the first set bits indicates whether a disk slice where a corresponding extent in the stripe is located is in a failure state. The techniques further involve determining, from the stripe and based on the first set bits, a first set of extents in the failure state and a second set of extents out of the failure state. The techniques further involve executing the I/O request on the second set of extents without executing the I/O request on the first set of extents. Such techniques can simplify storage bits in I/O control, support the degraded stripe write request for the RAID and enhance performance executing the I/O control.

Claims (57)

1. A method for I/O control, comprising the steps, performed for a write request, of:

in response to receiving the write request, detecting a first set of information bits for a stripe in a Redundant Array of Independent Disks (RAID) related to the write request, the RAID being built on a plurality of disk slices divided from a plurality of disks, the stripe comprising a plurality of extents, and each of the first set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a failure state, the failure state being a condition in which a disk slice has failed but has not yet been replaced;

determining, from the stripe and based on the first set of information bits, a first set of extents in the failure state and a second set of extents out of the failure state;

based on the determining, and without allocating a new disk slice to replace a disk slice indicated to be in the failure state, executing the write request as a first degraded write request on the second set of extents without executing the first degraded write request on the first set of extents;

detecting whether data of the first degraded write request is successfully written into the second set of extents; and

in response to determining that the data of the first degraded write request fails to be written into one of the second set of extents:

(1) updating the first set of information bits such that an information bit, which corresponds to a failed disk slice where the one extent in the failure state is located, is updated to indicate that the one extent is included in the first set of extents and not in the second set of extents; and

(2) re-executing the write request as a second degraded write request based on the updated first set of information bits, the second degraded write request being executed on the second set of extents without executing the degraded write request on the first set of extents.

2. The method of claim 1 , wherein the write request is followed by a read request executed as a degraded read request on the second set of extents by:

detecting a second set of information bits for the stripe, each of the second set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located includes valid data;

determining, from the second set of extents and based on the second set of information bits, a third set of extents including the valid data and a fourth set of extents without any valid data; and

executing the read request as a degraded read request on the third set of extents without executing the read request on the fourth set of extents.

3. The method of claim 2 , wherein:

the second set of information bits are determined based on whether data associated with the write request preceding the read request is successfully written into a disk slice.

4. The method of claim 1 , wherein the write request is followed by a read request executed as a degraded read request on the second set of extents by:

detecting a third set of information bits for the stripe, each of the third set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a new disk rebuild state;

determining, from the second set of extents and based on the third set of information bits, a fifth set of extents in the new disk rebuild state and a sixth set of extents out of the new disk rebuild state; and

executing the read request as a degraded read request on the sixth set of extents without executing the read request on the fifth set of extents.

5. The method of claim 2 , wherein the second set of information bits are stored in mapper metadata after completion of the write request, and the stored second set of information bits are used in the execution of the read request so as not to perform the read request on disk slices without any valid data.

6. An apparatus for I/O control, comprising:

a processor; and

a memory coupled to the processor and having instructions stored thereon, the instructions, when executed by the processor, causing the apparatus to perform acts for a write request comprising:

in response to receiving a-the write request, detecting a first set of information bits for a stripe in a Redundant Array of Independent Disks (RAID) related to the write request, the RAID being built on a plurality of disk slices divided from a plurality of disks, the stripe comprising a plurality of extents, and each of the first set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a failure state, the failure state being a condition in which a disk slice has failed but has not yet been replaced;

determining, from the stripe and based on the first set of information bits, a first set of extents in the failure state and a second set of extents out of the failure state;

based on the determining, and without allocating a new disk slice to replace a disk slice indicated to be in the failure state, executing the write request as a first degraded write request on the second set of extents without executing the first degraded write request on the first set of extents;

detecting whether data of the first degraded write request is successfully written into the second set of extents; and

in response to determining that the data of the first degraded write request fails to be written into one of the second set of extents:

(1) updating the first set of information bits such that an information bit, which corresponds to a failed disk slice where the one extent in the failure state is located, is updated to indicate that the one extent is included in the first set of extents and not in the second set of extents; and

(2) re-executing the write request as a second degraded write request based on the updated first set of information bits, the second degraded write request being executed on the second set of extents without executing the degraded write request on the first set of extents.

7. The apparatus of claim 6 , wherein the write request is followed by a read request executed as a degraded read request by:

detecting a second set of information bits for the stripe, each of the second set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located includes valid data;

determining, from the second set of extents and based on the second set of information bits, a third set of extents including the valid data and a fourth set of extents without any valid data; and

executing the read request as a degraded read request on the third set of extents without executing the read request on the fourth set of extents.

8. The apparatus of claim 7 , wherein:

the second set of information bits are determined based on whether data associated with the write request preceding the read request is successfully written into a disk slice.

9. The apparatus of claim 6 , wherein the write request is followed by a read request executed as a degraded read request on the second set of extents by:

detecting a third set of information bits for the stripe, each of the third set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a new disk rebuild state;

determining, from the second set of extents and based on the third set of information bits, a fifth set of extents in the new disk rebuild state and a sixth set of extents out of the new disk rebuild state; and

executing the read request as a degraded read request on the sixth set of extents without executing the read request on the fifth set of extents.

10. A non-transitory computer-readable medium having computer-readable instructions stored thereon, the computer-readable instructions, when executed, causing a device to perform acts for a write request including:

in response to receiving the write request, detecting a first set of information bits for a stripe in a Redundant Array of Independent Disks (RAID) related to the write request, the RAID being built on a plurality of disk slices divided from a plurality of disks, the stripe comprising a plurality of extents, and each of the first set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a failure state, the failure state being a condition in which a disk slice has failed but has not yet been replaced;

determining from the stripe and based on the first set of information bits, a first set of extents in the failure state and a second set of extents out of the failure state;

based on the determining, and without allocating a new disk slice to replace a disk slice indicated to be in the failure state, executing the write request as a first degraded write request on the second set of extents without executing the first degraded write request on the first set of extents;

detecting whether data of the first degraded write request is successfully written into the second set of extents; and

in response to determining that the data of the first degraded write request fails to be written into one of the second set of extents:

(1) updating the first set of information bits such that an information bit, which corresponds to a failed disk slice where the one extent in the failure state is located, is updated to indicate that the one extent is included in the first set of extents and not in the second set of extents; and

(2) re-executing the write request as a second degraded write request based on the updated first set of information bits, the second degraded write request being executed on the second set of extents without executing the degraded write request on the first set of extents.

11. The non-transitory computer-readable medium of claim 10 , wherein the write request is followed by a read request, and the computer-readable instructions, when executed, cause the device to execute the read request as a degraded read request by:

detecting a second set of information bits for the stripe, each of the second set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located includes valid data;

determining, from the second set of extents and based on the second set of information bits, a third set of extents including the valid data and a fourth set of extents without any valid data; and

executing the read request as a degraded read request on the third set of extents without executing the read request on the fourth set of extents.

12. The non-transitory computer-readable medium of claim 11 , wherein:

the second set of information bits are determined based on whether data associated with the write request preceding the read request is successfully written into a disk slice.

13. The non-transitory computer-readable medium of claim 10 , wherein the write request is followed by a read request, and the computer-readable instructions, when executed, cause the device to execute the read request as a degraded read request by:

detecting a third set of information bits for the stripe, wherein each of the third set of information bits indicating whether a disk slice where a corresponding extent in the stripe is located is in a new disk rebuild state;

determining, from the second set of extents and based on the third set of information bits, a fifth set of extents in the new disk rebuild state and a sixth set of extents out of the new disk rebuild state; and

executing the read request as a degraded read request on the sixth set of extents without executing the read request on the fifth set of extents.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2019
From: HAN, GENG; KANG, JIANBIN; DONG, JIBING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050792/0407 →
Priority Claims (1)
CN 201811280028.X · Oct 30, 2018 · national
Continuity (1)
Related Publication 20200133779A1 · Apr 30, 2020