IP Library Granted Patent US 11,385,813
Granted Patent B2
US 11,385,813 · App. 17/020,016 · Granted Jul 12, 2022

Method, device, and computer program product for managing stripe in storage system

Inventors: Xiaobo Zhang (Beijing, CN); Sihang Xia (Beijing, CN); Shaoqin Gong (Beijing, CN); Baote Zhuo (Beijing, CN); Geng Han (Beijing, CN); Jian Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0631G06F3/0604G06F3/0689G06F3/064G06F3/0607G06F3/0632G06F3/0644G06F3/0647
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,385,813
App. No.
17/020,016
Granted
Jul 12, 2022
Kind
B2
Abstract

Techniques involve: determining, according to a received request for creating a stripe in a storage system, a type of the stripe; acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among a first number of storage devices, of multiple extents in a set of stripes of this type in the storage system; selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type; and using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type. The stripes can be managed in a more effective manner.

Claims (91)

1. A method for managing stripes in a storage system which includes a first number of storage devices, the method comprising:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type;

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type; and

according to a determination that the number of the storage devices in the storage system is changed from the first number to a second number,

acquiring a second workload distribution corresponding to the determined type, wherein the second workload distribution describes the distribution, among the second number of storage devices, of multiple extents in a set of stripes of this type in the storage system; and

migrating at least a portion of the extents in the set of stripes based on the second workload distribution.

2. The method according to claim 1 , wherein migrating the at least a portion of the extents in the set of stripes based on the second workload distribution includes: for a given storage device in the first number of storage devices,

determining source extents to be migrated in the first number of storage devices based on storage capacities of the first number of storage devices and storage capacities of the second number of storage devices;

selecting destination extents from the second number of storage devices based on the second workload distribution; and

migrating data in the source extents to the destination extents.

3. The method according to claim 2 , wherein the type of the stripe includes user data, and determining source extents to be migrated in the first number of storage devices further includes:

determining the number of extents to be migrated in the given storage device based on a relation between a given storage capacity of the given storage device and an extreme storage capacity of the first number of storage devices; and

selecting the source extents based on the determined number.

4. The method according to claim 1 , wherein the type of the stripe includes metadata which indicates that metadata of user data will be stored in the stripe, and the preset distribution condition includes a polling condition; and selecting a set of extents from the first number of storage devices based on the first workload distribution includes:

according to the first workload distribution, selecting the set of storage devices from the first number of storage devices in accordance with the polling condition; and

selecting the set of extents respectively from the selected set of storage devices.

5. The method according to claim 1 , further comprising:

determining the number of valid storage extents involved in a given storage device in the first number of storage devices based on the first workload distribution.

6. A method for managing stripes in a storage system which includes a first number of storage devices, the method comprising:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type; and

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type;

wherein acquiring the first workload distribution corresponding to the determined type includes: according to a determination that the storage system does not include a stripe of this type,

creating the first workload distribution according to the first number, wherein the first workload distribution indicates that there is no stripe of this type in the first number of storage devices.

7. The method according to claim 6 , further comprising:

determining a set of storage devices in which the selected set of extents are located, respectively; and

updating the first workload distribution based on the determined set of storage devices.

8. The method according to claim 7 , wherein the type of the stripe includes user data which indicates that user data from a user of the storage system will be stored in the stripe; and updating the first workload distribution based on the determined set of storage devices includes:

determining corresponding storage capacities of corresponding storage devices in the first number of storage devices; and

updating the first workload distribution based on the corresponding storage capacities and the selected set of storage devices.

9. The method according to claim 8 , wherein updating the first workload distribution based on the corresponding storage capacities and the selected set of storage devices includes:

determining corresponding workloads of the corresponding storage devices based on a relation between the corresponding storage capacities and a maximum storage capacity of the first number of storage devices; and

updating the first workload distribution based on the determined corresponding workloads.

10. An electronic device, comprising:

at least one processor; and

a memory coupled to the at least one processor, wherein the memory has instructions stored therein, the instructions, when executed by the at least one processor, cause the device to perform an action for managing stripes in a storage system that includes a first number of storage devices, and the action includes:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type;

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type; and

according to a determination that the number of the storage devices in the storage system is changed from the first number to a second number,

acquiring a second workload distribution corresponding to the determined type, wherein the second workload distribution describes the distribution, among the second number of storage devices, of multiple extents in a set of stripes of this type in the storage system; and

migrating at least a portion of the extents in the set of stripes based on the second workload distribution.

11. The electronic device according to claim 10 , wherein migrating the at least a portion of the extents in the set of stripes based on the second workload distribution includes: for a given storage device in the first number of storage devices,

determining source extents to be migrated in the first number of storage devices based on storage capacities of the first number of storage devices and storage capacities of the second number of storage devices;

selecting destination extents from the second number of storage devices based on the second workload distribution; and

migrating data in the source extents to the destination extents.

12. The electronic device according to claim 11 , wherein the type of the stripe includes user data, and determining source extents to be migrated in the first number of storage devices further includes:

determining the number of extents to be migrated in the given storage device based on a relation between a given storage capacity of the given storage device and an extreme storage capacity of the first number of storage devices; and

selecting the source extents based on the determined number.

13. The electronic device according to claim 10 , wherein the type of the stripe includes metadata which indicates that metadata of user data will be stored in the stripe, and the preset distribution condition includes a polling condition; and selecting a set of extents from the first number of storage devices based on the first workload distribution includes:

according to the first workload distribution, selecting the set of storage devices from the first number of storage devices in accordance with the polling condition; and

selecting the set of extents respectively from the selected set of storage devices.

14. The electronic device according to claim 10 , wherein the action further includes:

determining the number of valid storage extents involved in a given storage device in the first number of storage devices based on the first workload distribution.

15. An electronic device, comprising:

at least one processor; and

a memory coupled to the at least one processor, wherein the memory has instructions stored therein, the instructions, when executed by the at least one processor, cause the device to perform an action for managing stripes in a storage system that includes a first number of storage devices, and the action includes:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type; and

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type;

wherein acquiring the first workload distribution corresponding to the determined type includes: according to a determination that the storage system does not include a stripe of this type,

creating the first workload distribution according to the first number, wherein the first workload distribution indicates that there is no stripe of this type in the first number of storage devices.

16. The electronic device according to claim 15 , wherein the action further includes:

determining a set of storage devices in which the selected set of extents are located, respectively; and

updating the first workload distribution based on the determined set of storage devices.

17. The electronic device according to claim 16 , wherein the type of the stripe includes user data which indicates that user data from a user of the storage system will be stored in the stripe; and updating the first workload distribution based on the determined set of storage devices includes:

determining corresponding storage capacities of corresponding storage devices in the first number of storage devices; and

updating the first workload distribution based on the corresponding storage capacities and the selected set of storage devices.

18. The electronic device according to claim 17 , wherein updating the first workload distribution based on the corresponding storage capacities and the selected set of storage devices includes:

determining corresponding workloads of the corresponding storage devices based on a relation between the corresponding storage capacities and a maximum storage capacity of the first number of storage devices; and

updating the first workload distribution based on the determined corresponding workloads.

19. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage stripes in a storage system which includes a first number of storage devices; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type;

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type; and

according to a determination that the number of the storage devices in the storage system is changed from the first number to a second number,

acquiring a second workload distribution corresponding to the determined type, wherein the second workload distribution describes the distribution, among the second number of storage devices, of multiple extents in a set of stripes of this type in the storage system; and

migrating at least a portion of the extents in the set of stripes based on the second workload distribution.

20. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage stripes in a storage system which includes a first number of storage devices; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

determining, according to a received request for creating a stripe in the storage system, a type of the stripe;

acquiring a first workload distribution corresponding to the determined type, wherein the first workload distribution describes the distribution, among the first number of storage devices, of multiple extents in a set of stripes of this type in the storage system;

selecting a set of extents from the first number of storage devices based on the first workload distribution, so that the distribution, among the first number of storage devices, of the selected set of extents and the multiple extents in the set of stripes of this type satisfies a preset distribution condition associated with the type; and

using the selected set of extents to create the requested stripe based on a stripe creation rule associated with the type;

wherein acquiring the first workload distribution corresponding to the determined type includes: according to a determination that the storage system does not include a stripe of this type,

creating the first workload distribution according to the first number, wherein the first workload distribution indicates that there is no stripe of this type in the first number of storage devices.

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 →
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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2020
From: ZHANG, XIAOBO; XIA, SIHANG; GONG, SHAOQIN; ZHUO, BAOTE; HAN, GENG; GAO, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054063/0736 →