IP Library Granted Patent US 11,320,988
Granted Patent B2
US 11,320,988 · App. 16/819,979 · Granted May 3, 2022

Method, apparatus and computer program product for managing disk array

Inventors: Jianbin Kang (Beijing, CN); Changyu Feng (Beijing, CN); Jibing Dong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0616G06F3/0631G06F3/0644G06F3/0647G06F3/0689
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,320,988
App. No.
16/819,979
Granted
May 3, 2022
Kind
B2
Abstract

Techniques manage a disk array. Such techniques involve determining, from one or more disk arrays constructed based on a plurality of disks, a target disk array to be restriped, the target disk array being associated with disk slices on different disks and including a stripe to be reconstructed, the stripe including extents located in the disk slices; determining, from the disk slices, a first disk slice on which data migration is to be performed, a first extent of the extents being located in the first disk slice; allocating, on the plurality of disks, a second disk slice for storing data from the first disk slice; and reconstructing the stripe by migrating data from the first extent of the first disk slice into the second disk slice. Such techniques significantly reduce the number of input/output operations during stripe reconstruction while avoiding waste of storage space.

Claims (73)

1. A method for managing a disk array, comprising:

determining, from one or more disk arrays constructed based on a plurality of disks, a target disk array to be restriped, the target disk array being associated with a plurality of disk slices on different individual disks and including a stripe to be reconstructed, the stripe comprising a plurality of extents located in the plurality of disk slices, wherein each disk slice is located completely within a single one of the plurality of disks, and wherein each extent is located completely within a single one of the plurality of disk slices;

determining, from the plurality of disk slices, a first disk slice on which data migration is to be performed, a first extent of the plurality of extents being located in the first disk slice;

allocating, on the plurality of disks, a second disk slice for storing data from the first disk slice; and

reconstructing the stripe by migrating data only from the first extent of the first disk slice into a corresponding position within the second disk slice, wherein migrating data from the first extent of the first disk slice into the corresponding position within the second disk slice completely reconstructs the stripe.

2. The method of claim 1 , wherein determining the target disk array comprises:

selecting, from the plurality of disks, a disk with a wear level exceeding a threshold wear level; and

selecting, from the one or more disk arrays, a disk array constructed based on at least the disk as the target disk array.

3. The method of claim 1 , wherein determining the target disk array comprises:

selecting, from the plurality of disks, a disk with an input/output load level exceeding a threshold load levels; and

selecting, from the one or more disk arrays, a disk array constructed based on at least the disk as the target disk array.

4. The method of claim 2 , wherein determining the first disk slice comprises:

determining, from the plurality of disk slices, a disk slice located on the disk as the first disk slice.

5. The method of claim 1 , wherein the first disk slice is located on a first disk of the plurality of disks, and allocating the second disk slice comprises:

selecting, from the plurality of disks, a second disk different from the first disk; and

allocating the second disk slice on the second disk.

6. The method of claim 5 , wherein the first disk has a first wear level, and selecting the second disk comprises:

selecting, from the plurality of disks, the second disk with a second wear level below the first wear level.

7. The method of claim 5 , wherein the first disk has a first input/output load level, and selecting the second disk comprises:

selecting, from the plurality of disks, a second disk with a second input/output load level below the first input/output load level.

8. The method of claim 1 , wherein migrating data from the first extent of the first disk slice into the corresponding position within the second disk slice comprises:

determining a first location of a first extent in the first disk slice;

determining, based on the first location, a second location in the second disk slice for storing data from the first extent; and

migrating the data from the first location in the first disk slice to the second location in the second disk slice.

9. The method of claim 1 , further comprising:

obtaining metadata of the target disk array, the metadata indicating that the target disk array is associated with the plurality of disk slices; and

in response to the second disk slice being allocated, updating the metadata to indicate that the target disk array is associated with the second disk slice.

10. The method of claim 9 , further comprising:

in response to completion of the reconstruction of the stripe, updating the metadata to indicate that the target disk array is disassociated from the first disk slice.

11. An apparatus for managing a disk array, comprising:

at least one processing unit; and

at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the apparatus to perform actions comprising:

determining, from one or more disk arrays constructed based on a plurality of disks, a target disk array to be restriped, the target disk array being associated with a plurality of disk slices on different individual disks and including a stripe to be reconstructed, the stripe comprising a plurality of extents located in the plurality of disk slices, wherein each disk slice is located completely within a single one of the plurality of disks, and wherein each extent is located completely within a single one of the plurality of disk slices;

determining, from the plurality of disk slices, a first disk slice on which data migration is to be performed, a first extent of the plurality of extents being located in the first disk slice;

allocating, on the plurality of disks, a second disk slice for storing data from the first disk slice; and

reconstructing the stripe by migrating data only from the first extent of the first disk slice into a corresponding position within the second disk slice, wherein migrating data from the first extent of the first disk slice into the corresponding position within the second disk slice completely reconstructs the stripe.

12. The apparatus of claim 11 , wherein determining the target disk array comprises:

selecting, from the plurality of disks, a disk with a wear level exceeding a threshold wear level; and

selecting, from the one or more disk arrays, a disk array constructed based on at least the disk as the target disk array.

13. The apparatus of claim 11 , wherein determining the target disk array comprises:

selecting, from the plurality of disks, a disk with an input/output load level exceeding a threshold load levels; and

selecting, from the one or more disk arrays, a disk array constructed based on at least the disk as the target disk array.

14. The apparatus of claim 12 , wherein determining the first disk slice comprises:

determining, from the plurality of disk slices, a disk slice located on the disk as the first disk slice.

15. The apparatus of claim 11 , wherein the first disk slice is located on a first disk of the plurality of disks, and allocating the second disk slice comprises:

selecting, from the plurality of disks, a second disk different from the first disk; and

allocating the second disk slice on the second disk.

16. The apparatus of claim 15 , wherein the first disk has a first wear level, and selecting the second disk comprises:

selecting, from the plurality of disks, the second disk with a second wear level below the first wear level.

17. The apparatus of claim 15 , wherein the first disk has a first input/output load level, and selecting the second disk comprises:

selecting, from the plurality of disks, a second disk with a second input/output load level below the first input/output load level.

18. The apparatus of claim 11 , wherein migrating data from the first extent of the first disk slice into a corresponding position within the second disk slice comprises:

determining a first location of a first extent in the first disk slice;

determining, based on the first location, a second location in the second disk slice for storing data from the first extent; and

migrating the data from the first location in the first disk slice to the second location in the second disk slice.

19. The apparatus of claim 11 , wherein the actions further comprise:

obtaining metadata of the target disk array, the metadata indicating that the target disk array is associated with the plurality of disk slices; and

in response to the second disk slice being allocated, updating the metadata to indicate that the target disk array is associated with the second disk slice.

20. The apparatus of claim 19 , wherein the actions further comprise:

in response to completion of the reconstruction of the stripe, updating the metadata to indicate that the target disk array is disassociated from the first disk slice.

21. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage a disk array; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

determining, from one or more disk arrays constructed based on a plurality of disks, a target disk array to be restriped, the target disk array being associated with a plurality of disk slices on different individual disks and including a stripe to be reconstructed, the stripe comprising a plurality of extents located in the plurality of disk slices, wherein each disk slice is located completely within a single one of the plurality of disks, and wherein each extent is located completely within a single one of the plurality of disk slices;

determining, from the plurality of disk slices, a first disk slice on which data migration is to be performed, a first extent of the plurality of extents being located in the first disk slice;

allocating, on the plurality of disks, a second disk slice for storing data from the first disk slice; and

reconstructing the stripe by migrating data only from the first extent of the first disk slice into a corresponding position within the second disk slice, wherein migrating data from the first extent of the first disk slice into the corresponding position within the second disk slice completely reconstructs the stripe.

22. The method of claim 1 , further comprising:

dividing each disk in the plurality of disks in the one or more disk arrays into a plurality of slices, wherein the slices are each of the same fixed size; and

wherein each one of the disk slices associated with the target disk array is located on a different disk; and

wherein each one of the extents in the stripe to be reconstructed is located in a different one of the slices associated with the target disk array.

23. The method of claim 1 , wherein the stripe to be restriped is one of a plurality of stripes that are used by a user.

24. The method of claim 23 , further comprising:

restriping each one of the plurality of stripes that are used by the user; and

responsive all of the stripes that are used by the user having been restriped, releasing the storage space occupied by the first disk slice in the first disk and disabling the first disk.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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
Reel/Frame 060436/0582 →
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 AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2020
From: KANG, JIANBIN; FENG, CHANGYU; DONG, JIBING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052768/0860 →
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 →