IP Library Granted Patent US 11,556,260
Granted Patent B2
US 11,556,260 · App. 16/815,348 · Granted Jan 17, 2023

Providing coordination between mapper circuitry and redundant array of independent disks (RAID) circuitry to manage RAID storage space

Inventors: Geng Han (Beijing, CN); Vamsi K. Vankamamidi (Hopkinton, MA); Shuyu Lee (Acton, MA); Jian Gao (Beijing, CN); Xiaobo Zhang (Beijing, CN); Rongrong Shang (Beijing, CN); Ajay Karri (South Grafton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/0604G06F3/0659G06F3/0689G06F11/2069G06F2201/82
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,556,260
App. No.
16/815,348
Granted
Jan 17, 2023
Kind
B2
Abstract

Techniques are directed to managing Redundant Array of Independent Disks (RAID) storage space. One technique involves providing, by RAID circuitry, a storage space request to mapper circuitry; receiving, by the RAID circuitry, a storage space reply from the mapper circuitry in response to the storage space request; and performing, by the RAID circuitry, a follow-up operation based on the storage space reply from the mapper circuitry. Another technique involves, receiving, by mapper circuitry, a storage space request from RAID circuitry; performing, by the mapper circuitry, a storage space management operation in response to the storage space request; and providing, by the mapper circuitry, a storage space reply to the RAID circuitry, the storage space reply identifying a result of the storage space management operation.

Claims (108)

1. A method of managing Redundant Array of Independent Disks (RAID) storage space, the method comprising:

providing, by RAID circuitry, a storage space request to mapper circuitry;

receiving, by the RAID circuitry, a storage space reply from the mapper circuitry in response to the storage space request; and

performing, by the RAID circuitry, a follow-up operation based on the storage space reply from the mapper circuitry;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

receiving, by the RAID circuitry, an unmap opcode from the mapper circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

2. A method as in claim 1 wherein providing the storage space request to the mapper circuitry includes:

sending, as the storage space request, an unmap call to the mapper circuitry through an application programming interface (API), the unmap call identifying a requested amount of space.

3. A method as in claim 2 wherein receiving the storage space reply from the mapper circuitry in response to the storage space request includes:

obtaining, as the storage space reply, an unmap status from the mapper circuitry through the API, the unmap status identifying an answered amount of space.

4. A method as in claim 3 wherein the answered amount of space identified by the unmap status equals the requested amount of space; and

wherein performing the follow-up operation based on the storage space reply from the mapper circuitry includes:

decreasing the mapper capacity value by the requested amount of space, and

increasing the spare capacity value by the requested amount of space to support rebuilding an entire storage device in response to a storage device failure.

5. A method as in claim 3 wherein the answered amount of space identified by the unmap status is more than zero and is less than the requested amount of space; and

wherein performing the follow-up operation based on the storage space reply from the mapper circuitry includes:

decreasing the mapper capacity value by the answered amount of space,

increasing the spare capacity value by the answered amount of space, and

sending additional unmap calls to the mapper circuitry through the API to request additional storage space to reach a level that supports rebuilding an entire storage device in response to a storage device failure.

6. A method as in claim 3 wherein the answered amount of space identified by the unmap status is zero; and

wherein performing the follow-up operation based on the storage space reply from the mapper circuitry includes:

sending additional unmap calls to the mapper circuitry through the API to request storage space.

7. A method as in claim 1 wherein the method further comprises:

identifying, by the RAID circuitry, added space from a newly added storage device,

apportioning, by the RAID circuitry, a first amount of the added space to the spare capacity value to increase the spare capacity value to a level that supports rebuilding an entire storage device in response to a storage device failure, and

apportioning, by the RAID circuitry, a remaining amount of the added space to the mapper capacity value.

8. Data storage equipment, comprising:

a storage device interface;

mapper circuitry; and

Redundant Array of Independent Disks (RAID) circuitry coupled to the storage device interface and the mapper circuitry, the RAID circuitry being constructed and arranged to manage RAID storage space through the storage device interface by performing a method of:

providing a storage space request to the mapper circuitry,

receiving a storage space reply from the mapper circuitry in response to the storage space request, and

performing a follow-up operation based on the storage space reply from the mapper circuitry;

wherein the RAID circuitry is further constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

receiving, by the RAID circuitry, an unmap opcode from the mapper circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

9. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage Redundant Array of Independent Disks (RAID) storage space, the set of instructions, when carried out by RAID circuitry, causing the RAID circuitry to perform a method of:

providing a storage space request to mapper circuitry;

receiving a storage space reply from the mapper circuitry in response to the storage space request; and

performing a follow-up operation based on the storage space reply from the mapper circuitry;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

receiving, by the RAID circuitry, an unmap opcode from the mapper circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

10. A method of managing Redundant Array of Independent Disks (RAID) storage space, the method comprising:

receiving, by mapper circuitry, a storage space request from RAID circuitry;

performing, by the mapper circuitry, a storage space management operation in response to the storage space request; and

providing, by the mapper circuitry, a storage space reply to the RAID circuitry, the storage space reply identifying a result of the storage space management operation;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

providing, by the mapper circuitry, an unmap opcode to the RAID circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

11. A method as in claim 10 wherein receiving the storage space request from the RAID circuitry includes:

obtaining, as the storage space request, an unmap call from the RAID circuitry through an application programming interface (API), the unmap call identifying a requested amount of space.

12. A method as in claim 11 wherein providing the storage space reply to the RAID circuitry includes:

sending, as the storage space reply, an unmap status to the RAID circuitry through the API, the unmap status identifying an answered amount of space as at least a portion of the result of the storage space management operation.

13. A method as in claim 12 wherein performing the storage space management operation in response to the storage space request includes:

determining that enough free capacity currently exists within the mapper capacity value to grant the requested amount of space, and

identifying, as the answered amount of space in the unmap status, the requested amount of space to enable the RAID circuitry to decrease the mapper capacity value by the requested amount of space and increase the spare capacity value by the requested amount of space to support rebuilding an entire storage device in response to a storage device failure.

14. A method as in claim 12 wherein performing the storage space management operation in response to the storage space request includes:

determining that some free capacity currently exists within the mapper capacity value but less than the requested amount of space currently exists within the mapper capacity value,

initiating a background garbage collection service to reclaim storage space, and

identifying, as the answered amount of space in the unmap status, more than zero and less than the requested amount of space to enable the RAID circuitry to decrease the mapper capacity value by the answered amount of space, increase the spare capacity value by the answered amount of space, and send additional unmap calls to the mapper circuitry through the API to request additional storage space to reach a level that supports rebuilding an entire storage device in response to a storage device failure.

15. A method as in claim 12 wherein performing the storage space management operation in response to the storage space request includes:

determining that no space capacity is currently exists for the RAID circuitry based on the mapper capacity value, and

identifying, as the answered amount of space in the unmap status, zero to cause the RAID circuitry to send additional unmap calls to the mapper circuitry through the API to request storage space.

16. Data storage equipment, comprising:

a storage device interface;

Redundant Array of Independent Disks (RAID) circuitry; and

mapper circuitry coupled to the storage device interface and the RAID circuitry, the mapper circuitry being constructed and arranged to manage RAID storage space through the storage device interface by performing a method of:

receiving a storage space request from the RAID circuitry;

performing a storage space management operation in response to the storage space request; and

providing a storage space reply to the RAID circuitry, the storage space reply identifying a result of the storage space management operation;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

providing, by the mapper circuitry, an unmap opcode to the RAID circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

17. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage Redundant Array of Independent Disks (RAID) storage space, the set of instructions, when carried out by mapper circuitry, causing the mapper circuitry to perform a method of:

receiving a storage space request from RAID circuitry;

performing a storage space management operation in response to the storage space request; and

providing a storage space reply to the RAID circuitry, the storage space reply identifying a result of the storage space management operation;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

providing, by the mapper circuitry, an unmap opcode to the RAID circuitry, the unmap opcode indicating whether the mapper circuitry has released reservable space available for use by the RAID circuitry in response to a storage device failure or whether the mapper circuitry has released unreservable space for use by the mapper circuitry.

18. A method as in claim 10 wherein the RAID circuitry:

identifies added space from a newly added storage device,

apportions a first amount of the added space to the spare capacity value to increase the spare capacity value to a level that supports rebuilding an entire storage device in response to a storage device failure, and

apportions a remaining amount of the added space to the mapper capacity value; and

wherein the method further comprises:

receiving, by the mapper circuitry, the remaining amount of the added space based on the RAID circuitry apportioning the remaining amount to the mapper capacity value.

19. A method of managing Redundant Array of Independent Disks (RAID) storage space, the method comprising:

providing, by RAID circuitry, a storage space request to mapper circuitry;

receiving, by the RAID circuitry, a storage space reply from the mapper circuitry in response to the storage space request; and

performing, by the RAID circuitry, a follow-up operation based on the storage space reply from the mapper circuitry;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure; and

wherein the method further comprises:

identifying, by the RAID circuitry, added space from a newly added storage device,

apportioning, by the RAID circuitry, a first amount of the added space to the spare capacity value to increase the spare capacity value to a level that supports rebuilding an entire storage device in response to a storage device failure, and

apportioning, by the RAID circuitry, a remaining amount of the added space to the mapper capacity value.

20. A method of managing Redundant Array of Independent Disks (RAID) storage space, the method comprising:

receiving, by mapper circuitry, a storage space request from RAID circuitry;

performing, by the mapper circuitry, a storage space management operation in response to the storage space request; and

providing, by the mapper circuitry, a storage space reply to the RAID circuitry, the storage space reply identifying a result of the storage space management operation;

wherein the RAID circuitry is constructed and arranged to persistently maintain a mapper capacity value and a spare capacity value, the mapper capacity value identifying a maximum amount of storage space that is consumable by the mapper circuitry, and the spare capacity value identifying an amount of storage space that is reserved as spare space for use in response to a storage device failure;

wherein the RAID circuitry:

identifies added space from a newly added storage device,

apportions a first amount of the added space to the spare capacity value to increase the spare capacity value to a level that supports rebuilding an entire storage device in response to a storage device failure, and

apportions a remaining amount of the added space to the mapper capacity value; and

wherein the method further comprises:

receiving, by the mapper circuitry, the remaining amount of the added space based on the RAID circuitry apportioning the remaining amount to the mapper capacity value.

Assignments (13)
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 (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 (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 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 (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 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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2020
From: HAN, GENG; VANKAMAMIDI, VAMSI K.; LEE, SHUYU; GAO, JIAN; ZHANG, XIAOBO; SHANG, RONGRONG; KARRI, AJAY
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052808/0576 →
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 →
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 →
Cited By (1)
US 12,405,733