IP Library Granted Patent US 11,061,618
Granted Patent B1
US 11,061,618 · App. 16/800,200 · Granted Jul 13, 2021

Disk array enclosure configured to determine metadata page location based on metadata identifier

Inventors: Boris Glimcher (Bnei Brak, IL); Amitai Alkalay (Kadima, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/0604G06F3/0644G06F3/0689G06F16/2379
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,061,618
App. No.
16/800,200
Granted
Jul 13, 2021
Kind
B1
Abstract

A storage system comprises a disk array enclosure comprising an enclosure controller, a plurality of data storage devices and a plurality of metadata storage devices. The enclosure controller is configured to receive a write operation comprising data to be stored on at least one of the plurality of data storage devices and to determine a logical identifier for the data based at least in part on the received write operation. The enclosure controller is further configured to determine a metadata identifier corresponding to a metadata page stored on the at least one metadata storage device that is associated with the logical identifier and to update the metadata page based at least in part on the metadata identifier. The enclosure controller is further configured to return the logical identifier and the metadata identifier as a response to the received write operation.

Claims (85)

1. An apparatus comprising:

a storage system comprising a disk array enclosure, the disk array enclosure comprising:

at least one enclosure controller comprising at least one processing device coupled to memory;

a plurality of data storage devices in communication with the at least one enclosure controller; and

at least one metadata storage device in communication with the at least one enclosure controller;

wherein the at least one enclosure controller is configured:

to receive a write operation comprising data to be stored on at least one of the plurality of data storage devices;

to determine a logical identifier for the data based at least in part on the received write operation;

to determine a metadata identifier corresponding to a metadata page stored on the at least one metadata storage device that is associated with the logical identifier;

to update the metadata page based at least in part on the metadata identifier; and

to return the logical identifier and the metadata identifier as a response to the received write operation.

2. The apparatus of claim 1 wherein the metadata identifier comprises a stripe index corresponding to the metadata page.

3. The apparatus of claim 2 wherein determining the metadata identifier corresponding to the metadata page comprises determining a bucket comprising the stripe index based at least in part on the logical identifier.

4. The apparatus of claim 1 wherein the at least one enclosure controller is further configured:

to receive a read operation comprising the logical identifier and the metadata identifier;

to obtain the metadata page based at least in part on the metadata identifier included in the read operation;

to determine a physical location of the data on the at least one of the plurality of data storage devices based at least in part on the logical identifier and the obtained metadata page;

to read the data from the determined physical location; and

to return the data as a response to the received read operation.

5. The apparatus of claim 1 wherein the at least one enclosure controller is further configured:

to receive an increment operation comprising the logical identifier and the metadata identifier;

to identify the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the increment operation; and

to increment a reference count associated with the identified metadata page.

6. The apparatus of claim 1 wherein the at least one enclosure controller is further configured:

to receive a decrement operation comprising the logical identifier and the metadata identifier;

to identify the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the decrement operation; and

to decrement a reference count associated with the identified metadata page.

7. The apparatus of claim 1 wherein the at least one enclosure controller is further configured:

to receive a metadata identifier operation comprising the logical identifier;

to determine the metadata identifier based at least in part on the logical identifier; and

to return the metadata identifier as a response to the received metadata identifier operation.

8. A method comprising:

receiving a write operation comprising data to be stored on at least one of a plurality of data storage devices of a disk array enclosure;

determining a logical identifier for the data based at least in part on the received write operation;

determining a metadata identifier corresponding to a metadata page stored on at least one metadata storage device of the disk array enclosure that is associated with the logical identifier;

updating the metadata page based at least in part on the metadata identifier; and

returning the logical identifier and the metadata identifier as a response to the received write operation;

wherein the method is implemented by at least one enclosure controller of the disk array enclosure.

9. The method of claim 8 wherein the metadata identifier comprises a stripe index corresponding to the metadata page.

10. The method of claim 9 wherein determining the metadata identifier corresponding to the metadata page comprises determining a bucket comprising the stripe index based at least in part on the logical identifier.

11. The method of claim 8 wherein the method further comprises:

receiving a read operation comprising the logical identifier and the metadata identifier;

obtaining the metadata page based at least in part on the metadata identifier included in the read operation;

determining a physical location of the data on the at least one of the plurality of data storage devices based at least in part on the logical identifier and the obtained metadata page;

reading the data from the determined physical location; and

returning the data as a response to the received read operation.

12. The method of claim 8 wherein the method further comprises:

receiving an increment operation comprising the logical identifier and the metadata identifier;

identifying the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the increment operation; and

incrementing a reference count associated with the identified metadata page.

13. The method of claim 8 wherein the method further comprises:

receiving a decrement operation comprising the logical identifier and the metadata identifier;

identifying the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the decrement operation; and

decrementing a reference count associated with the identified metadata page.

14. The method of claim 11 wherein the method further comprises:

receiving a metadata identifier operation comprising the logical identifier;

determining the metadata identifier based at least in part on the logical identifier; and

returning the metadata identifier as a response to the received metadata identifier operation.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, the program code when executed by at least one enclosure controller of a disk array enclosure of a storage system, causes the at least one enclosure controller:

to receive a write operation comprising data to be stored on at least one of a plurality of data storage devices of the disk array enclosure;

to determine a logical identifier for the data based at least in part on the received write operation;

to determine a metadata identifier corresponding to a metadata page stored on at least one metadata storage device of the disk array enclosure that is associated with the logical identifier;

to update the metadata page based at least in part on the metadata identifier; and

to return the logical identifier and the metadata identifier as a response to the received write operation.

16. The computer program product of claim 15 wherein:

the metadata identifier comprises a stripe index corresponding to the metadata page; and

determining the metadata identifier corresponding to the metadata page comprises determining a bucket comprising the stripe index based at least in part on the logical identifier.

17. The computer program product of claim 15 wherein the program code further causes the at least one enclosure controller:

to receive a read operation comprising the logical identifier and the metadata identifier;

to obtain the metadata page based at least in part on the metadata identifier included in the read operation;

to determine a physical location of the data on the at least one of the plurality of data storage devices based at least in part on the logical identifier and the obtained metadata page;

to read the data from the determined physical location; and

to return the data as a response to the received read operation.

18. The computer program product of claim 15 wherein the program code further causes the at least one enclosure controller:

to receive an increment operation comprising the logical identifier and the metadata identifier;

to identify the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the increment operation; and

to increment a reference count associated with the identified metadata page.

19. The computer program product of claim 15 wherein the program code further causes the at least one enclosure controller:

to receive a decrement operation comprising the logical identifier and the metadata identifier;

to identify the metadata page corresponding to the logical identifier based at least in part on the metadata identifier included in the decrement operation; and

to decrement a reference count associated with the identified metadata page.

20. The computer program product of claim 15 wherein the program code further causes the at least one enclosure controller:

to receive a metadata identifier operation comprising the logical identifier;

to determine the metadata identifier based at least in part on the logical identifier; and

to return the metadata identifier as a response to the received metadata identifier operation.

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 (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 (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 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; 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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2020
From: GLIMCHER, BORIS; ALKALAY, AMITAI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051920/0694 →
Cited By (5)
US 12,321,645 US 12,346,684 US 12,380,021 US 12,650,788 US 12,675,323