IP Library Granted Patent US 11,093,389
Granted Patent B2
US 11,093,389 · App. 16/456,934 · Granted Aug 17, 2021

Method, apparatus, and computer program product for managing storage system

Inventor: Richard Chenyu Ding (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/0646G06F3/064G06F3/0604G06F3/0679G06F12/0802G06F2212/461G06F2212/7201
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,093,389
App. No.
16/456,934
Granted
Aug 17, 2021
Kind
B2
Abstract

Storage system management is provided. Metadata in a first version at a first time point of the storage system is obtained, here the metadata in the first version describes reference relations between at least one data block in a chunk included in the storage system and at least one object stored in the storage system at the first time point. Metadata in a second version at a second time point of the storage system is obtained, the second time point being after the first time point. The chunk included in the storage system is managed based on a determined difference between the metadata in the first version and the metadata in the second version. By means of the technical solution of the present disclosure, chunks in the storage system may be managed more effectively, and the chunk reclaiming efficiency may be increased.

Claims (75)

1. A method, comprising:

obtaining, by a system comprising a processor, first metadata in a first version at a first time point of a storage system, the first metadata in the first version describing reference relations between at least one data block in a chunk included in the storage system and at least one object stored in the storage system at the first time point;

obtaining second metadata in a second version at a second time point of the storage system, the second time point being after the first time point;

determining a difference between the first metadata in the first version and the second metadata in the second version;

managing the chunk included in the storage system based on the difference, wherein the managing the chunk based on the difference comprises:

determining a data block of the at least one data block in the chunk associated with the difference,

updating a reference counter of the data block, the reference counter describing a count of objects, of the at least one object, that reference the data block, the updating resulting in an updated reference counter, and

managing the chunk based on the updated reference counter, wherein the managing the chunk based on the updated reference counter comprises:

determining an allocation state of storage space in the chunk, and

in response to determining, based on the allocation state, that the storage space in the chunk has been allocated, reclaiming the chunk according to respective reference counters describing respective counts of objects of the at least one data block in the chunk.

2. The method of claim 1 , wherein the obtaining the first metadata in the first version at the first time point of the storage system comprises:

obtaining the first metadata in the first version from a persistent memory of the storage system, the persistent memory comprising metadata persisted from a metadata cache of the storage system to the persistent memory at the first time point.

3. The method of claim 1 , wherein the updating the reference counter of the data block comprises:

increasing the reference counter in response to the difference indicating the data block is referenced by another object in the storage system; and

reducing the reference counter in response to indicating the data block is no longer referenced by an object of the at least one object.

4. The method of claim 1 , wherein the reclaiming the chunk according to the respective reference counters comprises:

notifying the storage system to reclaim the chunk in response to the respective reference counters indicating that all of the at least one data block are no longer referenced by any object of the at least one object in the storage system, or

wherein the reclaiming the chunk according to the respective reference counters comprises:

copying data in a given data block of the at least one data block to another chunk in the storage system in response to determining a corresponding reference counter of the given data block in the chunk indicates the given data block is referenced by an object of the at least one object in the storage system.

5. The method of claim 1 , further comprising:

recording an access request for the at least one object in response to determining the access request changes a reference relation of the reference relations.

6. The method of claim 5 , wherein the determining the difference between the first metadata in the first version and the second metadata in the second version comprises:

determining an accessed object accessed by a recorded access request; and

determining the difference based on the accessed object.

7. The method of claim 5 , wherein the access request comprises at least one of:

a request to add a first object to the storage system;

a request to delete a second object from the storage system; and

a request to modify a third object in the storage system.

8. The method of claim 1 , wherein the at least one object is a set of objects, wherein the respective reference counters of the at least one data block comprise the updated reference counter of the data block, and wherein the respective reference counters describe respective counts of objects, of respective sets of objects, that respectively reference respective data blocks of the at least one data block.

9. An apparatus, comprising:

at least one processor;

and

a memory coupled to the at least one processor and having instructions stored thereon, the instructions, when executed by the at least one processor, causing the apparatus to perform acts comprising:

obtaining first metadata in a first version at a first time point of a storage system, the first metadata in the first version describing reference relations between at least one data block in a chunk included in the storage system and at least one object stored in the storage system at the first time point;

obtaining second metadata in a second version at a second time point of the storage system, the second time point being after the first time point;

determining a difference between the first metadata in the first version and the second metadata in the second version; and

managing the chunk included in the storage system based on the difference, wherein the managing the chunk based on the difference comprises:

determining a data block of the at least one data block in the chunk associated with the difference,

updating a reference counter of the data block, the reference counter describing a count of objects, of the at least one object, that reference the data block, the updating resulting in an updated reference counter, and

managing the chunk based on the updated reference counter, wherein the managing the chunk based on the updated reference counter comprises:

determining an allocation state of storage space in the chunk, and

in response to determining, based on the allocation state, that the storage space in the chunk has been allocated, reclaiming the chunk according to respective reference counters of the at least one data block in the chunk, wherein the respective reference counters of the at least one data block comprise the updated reference counter of the data block.

10. The apparatus of claim 9 , wherein the obtaining the first metadata in the first version at the first time point of the storage system comprises:

obtaining the first metadata in the first version from a persistent memory of the storage system, the persistent memory comprising metadata persisted from a metadata cache of the storage system to the persistent memory at the first time point.

11. The apparatus of claim 9 , wherein the updating the reference counter of the data block comprises:

increasing the reference counter in response to the difference indicating the data block is referenced by another object in the storage system; and

reducing the reference counter in response to indicating the data block is no longer referenced by an object of the at least one object.

12. The apparatus of claim 9 , wherein the reclaiming the chunk according to a reference counter of a data block in the chunk comprises:

notifying the storage system to reclaim the chunk in response to the respective reference counters indicate that respective ones of the at least one data block are no longer referenced by any object in the storage system.

13. The apparatus of claim 9 , wherein the reclaiming the chunk according to the respective reference counters of the at least one data block comprises:

copying data in a given data block to a different chunk, other than the chunk, in the storage system in response to determining that a corresponding reference counter, corresponding to the given data block, indicates that the given data block is referenced by an object of the at least one object in the storage system.

14. The apparatus of claim 9 , wherein the acts further comprise:

recording an access request for the at least one object in response to determining the access request changes a reference relation of the reference relation.

15. The apparatus of claim 14 , wherein the determining the difference between the first metadata in the first version and the second metadata in the second version comprises:

determining an accessed object accessed by a recorded access request; and

determining the difference based on the accessed object.

16. The apparatus of claim 14 , wherein the access request comprises at least one of:

a request for an addition of a first object to the storage system;

a request for a deletion of a second object from the storage system; and

a request for a modification of a third object in the storage system.

17. A computer program product, stored on a non-transitory computer readable medium and comprising machine executable instructions which are used to execute operations, comprising:

obtaining first metadata in a first version at a first time point of a storage system, the first metadata in the first version describing reference relations between at least one data block in a chunk included in the storage system and at least one object stored in the storage system at the first time point;

obtaining second metadata in a second version at a second time point of the storage system, the second time point being after the first time point;

determining a difference between the first metadata in the first version and the second metadata in the second version;

managing the chunk included in the storage system based on the difference, wherein the managing the chunk based on the difference comprises:

determining a data block of the at least one data block associated with the difference,

updating a reference counter corresponding to the data block in the chunk, the reference counter describing a number of objects, of the at least one object, that reference the data block, the updating resulting in an updated reference counter, and

managing the chunk based on the updated reference counter, wherein the managing the chunk based on the updated reference counter comprises, in response to determining, based on an allocation state of storage space in the chunk, that the storage space in the chunk has been allocated, reclaiming the chunk according to at least one reference counter corresponding to each of the at least one data block in the chunk, wherein the at least one reference counter comprises the updated reference counter.

18. The computer program product of claim 17 , wherein the operations further comprise:

recording an access request for the at least one object in response to determining the access request changes the reference relations.

19. The computer program product of claim 17 , wherein the determining the difference between the first metadata in the first version and the second metadata in the second version comprises:

determining an accessed object accessed by a recorded access request; and

determining the difference based on the accessed object.

20. The computer program product of claim 17 , wherein the reclaiming the chunk according to the at least one reference counter comprises:

notifying the storage system to reclaim the chunk in response to the at least one reference counter indicating each of the at least one data block are no longer referenced by any object in the storage system.

Assignments (9)
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 (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 (050724/0571) 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
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 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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2019
From: DING, RICHARD CHENYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049625/0500 →