IP Library Granted Patent US 11,385,822
Granted Patent B2
US 11,385,822 · App. 16/845,263 · Granted Jul 12, 2022

Moving data from a first group of slices to a second group of slices

Inventors: Rongrong Shang (Beijing, CN); Haiying Tang (Beijing, CN); Xiaobo Zhang (Beijing, CN); Shuai Ni (Beijing, CN); Changrui Shao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0647G06F3/0604G06F3/0673
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,822
App. No.
16/845,263
Granted
Jul 12, 2022
Kind
B2
Abstract

Techniques for processing data involve: receiving a request for moving data from a first slice group in a first logical unit to a second logical unit; determining, based on the request, a second slice group from the second logical unit, the size of the second slice group being larger than or equal to the size of the first slice group; and moving data in the first slice group into the second slice group. Such techniques enable moving data into slices in a specified address range in a specified logical unit, moving data into appropriate slices in a target logical unit when data cannot be moved to slices in a specific address range because an address range is not specified or a specified address range is unavailable can be achieved, and moving disk extents (DEs) by a Redundant Array of Multi-Core Disks (MCR) and redistributing IOs between disk extents.

Claims (93)

1. A method for processing data, the method comprising:

receiving a request for moving data from a first group of slices in a first logical unit to a second logical unit;

determining, based on the request, a second group of slices from the second logical unit, the size of the second group of slices being larger than or equal to the size of the first group of slices; and

moving data in the first group of slices into the second group of slices;

wherein determining the second group of slices comprises:

determining, based on the request, the size of the first group of slices;

determining that the request does not specify an address range associated with multiple slices in the second logical unit; and

in response to determining that the request does not specify the address range, determining, based on the size of the first group of slices, the second group of slices from the second logical unit.

2. The method according to claim 1 , wherein moving data in the first group of slices into the second group of slices comprises:

determining whether the second group of slices contain the same data as the data; and

in response to determining that the second group of slices do not contain the same data, moving the data in the first group of slices into the second group of slices.

3. The method according to claim 2 , wherein determining whether the second group of slices contain the same data as the data comprises:

obtaining, from the request, an identifier associated with the data; and

determining whether the second group of slices contain data associated with the identifier.

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

determining, based on the request, the second logical unit from multiple candidate logical units.

5. The method according to claim 1 , wherein determination of the second group of slices is further based on at least one of:

performance associated with the second group of slices;

a Redundant Array of Independent Disks group associated with the second group of slices; and

a storage processor associated with the second group of slices.

6. A method for processing data, the method comprising:

receiving a request for moving data from a first group of slices in a first logical unit to a second logical unit;

determining, based on the request, a second group of slices from the second logical unit, the size of the second group of slices being larger than or equal to the size of the first group of slices; and

moving data in the first group of slices into the second group of slices;

wherein determining the second group of slices comprises:

determining, based on the request, the size of the first group of slices;

determining that a number of address ranges specified by the request is zero; and

in response to determining that the number of address ranges specified by the request is zero, determining, based on the size of the first group of slices, the second group of slices from the second logical unit.

7. The method according to claim 6 ,

wherein determination of the second group of slices is further based on at least one of:

performance associated with the second group of slices;

a Redundant Array of Independent Disks group associated with the second group of slices; and

a storage processor associated with the second group of slices.

8. A device for processing data, comprising:

at least one processing unit;

at least one memory, coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts, including:

receiving a request for moving data from a first group of slices in a first logical unit to a second logical unit;

determining, based on the request, a second group of slices from the second logical unit, the size of the second group of slices being larger than or equal to the size of the first group of slices; and

moving data in the first group of slices into the second group of slices;

wherein determining the second group of slices comprises:

determining, based on the request, the size of the first group of slices;

determining whether the request specifies an address range associated with multiple slices in the second logical unit; and

in response to determining that the request specifies the address range, determining, based on the size of the first group of slices, the second group of slices from the multiple slices; and

in response to determining that the request does not specify the address range, determining, based on the size of the first group of slices, the second group of slices from the second logical unit.

9. The device according to claim 8 ,

wherein determination of the second group of slices is further based on at least one of:

performance associated with the second group of slices;

a Redundant Array of Independent Disks group associated with the second group of slices; and

a storage processor associated with the second group of slices.

10. The device according to claim 8 , wherein moving data in the first group of slices into the second group of slices comprises:

determining whether the second group of slices contain the same data as the data; and

in response to determining that the second group of slices do not contain the same data, moving the data in the first group of slices into the second group of slices.

11. The device according to claim 10 , wherein determining whether the second group of slices contain the same data as the data comprises:

obtaining, from the request, an identifier associated with the data; and

determining whether the second group of slices contain data associated with the identifier.

12. The device according to claim 8 , wherein the acts further comprise:

determining, based on the request, the second logical unit from multiple candidate logical units.

13. A device for processing data, comprising:

at least one processing unit;

at least one memory, coupled to the at least one processing unit and storing instructions executed by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts, including:

receiving a request for moving data from a first group of slices in a first logical unit to a second logical unit;

determining, based on the request, a second group of slices from the second logical unit, the size of the second group of slices being larger than or equal to the size of the first group of slices; and

moving data in the first group of slices into the second group of slices;

wherein determining the second group of slices comprises:

determining, based on the request, the size of the first group of slices;

determining whether the request specifies an address range associated with multiple slices in the second logical unit; and

in response to determining that the request specifies the address range, determining, based on the size of the first group of slices, the second group of slices from the multiple slices; and

in response to determining that the number of address ranges specified by the request is zero, determining, based on the size of the first group of slices, the second group of slices from the second logical unit.

14. The device according to claim 13 , wherein determination of the second group of slices is further based on at least one of:

performance associated with the second group of slices;

a Redundant Array of Independent Disks group associated with the second group of slices; and

a storage processor associated with the second group of slices.

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

receiving a request for moving data from a first group of slices in a first logical unit to a second logical unit;

determining, based on the request, a second group of slices from the second logical unit, the size of the second group of slices being larger than or equal to the size of the first group of slices; and

moving data in the first group of slices into the second group of slices;

wherein determining the second group of slices comprises:

determining, based on the request, the size of the first group of slices;

determining whether the request specifies an address range associated with multiple slices in the second logical unit; and

in response to determining that the request specifies the address range, determining, based on the size of the first group of slices, the second group of slices from the multiple slices; and

in response to determining that the request does not specify the address range, determining, based on the size of the first group of slices, the second group of slices from the second logical unit.

16. The computer program product according to claim 15 , wherein moving data in the first group of slices into the second group of slices comprises:

determining whether the second group of slices contain the same data as the data; and

in response to determining that the second group of slices do not contain the same data, moving the data in the first group of slices into the second group of slices.

17. The computer program product according to claim 16 , wherein determining whether the second group of slices contain the same data as the data comprises:

obtaining, from the request, an identifier associated with the data; and

determining whether the second group of slices contain data associated with the identifier.

18. The computer program product according to claim 15 , further comprising:

determining, based on the request, the second logical unit from multiple candidate logical units.

19. The computer program product according to claim 15 , wherein determination of the second group of slices is further based on at least one of:

performance associated with the second group of slices;

a Redundant Array of Independent Disks group associated with the second group of slices; and

a storage processor associated with the second group of slices.

Assignments (9)
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 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 052852/0022 →
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 052851/0917 →
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: SHANG, RONGRONG; TANG, HAIYING; ZHANG, XIAOBO; NI, SHUAI; SHAO, CHANGRUI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052758/0181 →