IP Library Granted Patent US 11,287,996
Granted Patent B2
US 11,287,996 · App. 16/877,871 · Granted Mar 29, 2022

Method, device and computer program product for storing data

Inventors: Jianbin Kang (Beijing, CN); Geng Han (Beijing, CN); Jian Gao (Beijing, CN); Jibing Dong (Beijing, CN); Xinlei Xu (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/0604G06F3/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,287,996
App. No.
16/877,871
Granted
Mar 29, 2022
Kind
B2
Abstract

Techniques involve dividing a disk in RAID into a plurality of slices, and the plurality of slices include a first slice and a second slice with a first size. The techniques further involve dividing the second slice into a plurality of sub-slices, and each sub-slice in the plurality of sub-slices has a second size smaller than the first size. The techniques further involve forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices. Such techniques enable configuring a smaller slice size for the set stripe for the metadata, and thus the granularity of storage and migration for the metadata can be reduced, and the metadata can be distributed into more disks in the RAID.

Claims (72)

1. A method for storing data, comprising:

dividing a disk in a Redundant Array of Independent Disks (RAID) into a plurality of slices, the plurality of slices comprising a first slice and a second slice with a first size;

dividing the second slice into a plurality of sub-slices, a sub-slice in the plurality of sub-slices having a second size smaller than the first size; and

forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices;

wherein dividing the second slice into a plurality of sub-slices comprises:

adding a predetermined size of storage space into slice metadata; and

setting a sub-slice bitmap of the second slice using the storage space, each bit in the sub-slice bitmap indicating whether each sub-slice has been allocated.

2. The method of claim 1 , wherein forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices comprises:

forming the first stripe set based on RAID 5 using five slices in five disks of the RAID; and

forming the second stripe set based on RAID 1 using two sub-slices in two disks of the RAID.

3. The method of claim 1 , wherein the first stripe set is a first type of stripe set and the second stripe set is a second type of stripe set, and the method further comprises:

combining a plurality of first type of stripe sets into a user data tier for a mapper; and

combining a plurality of second type of stripe sets into a metadata tier for the mapper.

4. The method of claim 1 , wherein forming a second stripe set for storing metadata using the sub-slices comprises:

recording sub-slice indexes of the sub-slices in stripe set metadata, so as to determine logical block addresses of the sub-slices based on a logical block address of the second slice and the sub-slice indexes.

5. The method of claim 4 , further comprising:

allocating, from a given disk, a given slice for storing metadata;

allocating one sub-slice from the given slice; and

modifying, a bit in a sub-slice bitmap of the given slice corresponding to the one sub-slice, from a first value to a second value.

6. The method of claim 5 , further comprising:

determining whether all bits in the sub-slice bitmap of the given slice contain the first value;

in accordance with a determination that no bit in the sub-slice bitmap of the given slice contains the first value, allocating, from the given disk, a third slice for storing metadata; and

in accordance with a determination that one or more bits in the sub-slice bitmap of the given slice contain the first value, allocating a further sub-slice from the given slice.

7. The method of claim 5 , further comprising:

in accordance with determining to release the one sub-slice, modifying, the bit in a sub-slice bitmap of the given slice corresponding to the one sub-slice, from the second value to the first value.

8. The method of claim 7 , further comprising:

in accordance with a determination that all bits in a sub-slice bitmap of the given slice are set to the first value, releasing the given slice to the given disk.

9. An electronic device, comprising:

a processing unit; and

a memory coupled to the processing unit and stored with instructions, the instructions, when executed by the processing unit, performing acts of:

dividing a disk in a Redundant Array of Independent Disks (RAID) into a plurality of slices, the plurality of slices comprising a first slice and a second slice with a first size;

dividing the second slice into a plurality of sub-slices, a sub-slice in the plurality of sub-slices having a second size smaller than the first size; and

forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices;

wherein dividing the second slice into a plurality of sub-slices comprises:

adding a predetermined size of storage space into slice metadata; and

setting a sub-slice bitmap of the second slice using the storage space, each bit in the sub-slice bitmap indicating whether each sub-slice has been allocated.

10. The device of claim 9 , wherein forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices comprises:

forming the first stripe set based on RAID 5 using five slices in five disks of the RAID; and

forming the second stripe set based on RAID 1 using two sub-slices in two disks of the RAID.

11. The device of claim 9 , wherein the first stripe set is a first type of stripe set and the second stripe set is a second type of stripe set, wherein the acts further comprise:

combining a plurality of first type of stripe sets into a user data tier for a mapper; and

combining a plurality of second type of stripe sets into a metadata tier for the mapper.

12. The device of claim 9 , wherein forming a second stripe set for storing metadata using the sub-slices comprises:

recording sub-slice indexes of the sub-slices in stripe set metadata, so as to determine logical block addresses of the sub-slices based on a logical block address of the second slice and the sub-slice indexes.

13. The device of claim 12 , the acts further comprising:

allocating, from a given disk, a given slice for storing metadata;

allocating one sub-slice from the given slice; and

modifying, a bit in a sub-slice bitmap of the given slice corresponding to the one sub-slice, from a first value to a second value.

14. The device of claim 13 , the acts further comprising:

determining whether all bits in the sub-slice bitmap of the given slice contain the first value;

in accordance with a determination that no bit in the sub-slice bitmap of the given slice contains the first value, allocating, from the given disk, a third slice for storing metadata; and

in accordance with a determination that one or more bits in the sub-slice bitmap of the given slice contain the first value, allocating a further sub-slice from the given slice.

15. The device of claim 13 , the acts further comprising:

in accordance with determining to release the one sub-slice, modifying, the bit in a sub-slice bitmap of the given slice corresponding to the one sub-slice, from the second value to the first value.

16. The device of claim 15 , the acts further comprising:

in accordance with a determination that all bits in a sub-slice bitmap of the given slice are set to the first value, releasing the given slice to the given disk.

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

dividing a disk in a Redundant Array of Independent Disks (RAID) into a plurality of slices, the plurality of slices comprising a first slice and a second slice with a first size;

dividing the second slice into a plurality of sub-slices, a sub-slice in the plurality of sub-slices having a second size smaller than the first size; and

forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices;

wherein dividing the second slice into a plurality of sub-slices comprises:

adding a predetermined size of storage space into slice metadata; and

setting a sub-slice bitmap of the second slice using the storage space, each bit in the sub-slice bitmap indicating whether each sub-slice has been allocated.

18. The method of claim 1 , wherein dividing the disk in the RAID into the plurality of slices includes:

forming, as the first slice, a first storage space on the disk; and

forming, as the second slice, a second storage space on the disk, the first storage space and the second storage space being adjacent to each other on the disk.

19. The computer program product of claim 17 , wherein forming a first stripe set for storing user data using the first slice and forming a second stripe set for storing metadata using the sub-slices comprises:

forming the first stripe set based on RAID 5 using five slices in five disks of the RAID; and

forming the second stripe set based on RAID 1 using two sub-slices in two disks of the RAID.

20. The computer program product of claim 17 , wherein the first stripe set is a first type of stripe set and the second stripe set is a second type of stripe set, and the method further comprises:

combining a plurality of first type of stripe sets into a user data tier for a mapper; and

combining a plurality of second type of stripe sets into a metadata tier for the mapper.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2020
From: KANG, JIANBIN; HAN, GENG; GAO, JIAN; DONG, JIBING; XU, XINLEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053025/0135 →