IP Library Granted Patent US 10,802,755
Granted Patent B2
US 10,802,755 · App. 15/955,004 · Granted Oct 13, 2020

Method and manager for managing storage system

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 10,802,755
App. No.
15/955,004
Granted
Oct 13, 2020
Kind
B2
Abstract

A method and a manager for managing a storage system including a manager and a storage device. The storage device includes a data region and a metadata region. The data region is divided into data blocks. The metadata region stores metadata describing zeroing states of the data blocks. The method comprises allocating a metadata cache in a memory of the manager. The metadata cache includes respective zeroing indication bits indicative of the zeroing states of the corresponding data blocks. The allocating procedure comprises allocating a user data cache for reading or writing user data and allocating a background zeroing cache for a background zeroing operation of the storage device. The method further comprises, in response to receiving an I/O request for the storage system, processing the I/O request with the metadata cache.

Claims (84)

1. A method of managing a storage system, the storage system including a manager and a storage device, the storage device including a data region being divided into data blocks and a metadata region storing metadata describing zeroing states of the data blocks, the method comprising:

allocating a metadata cache in a memory of the manager, the metadata cache including respective zeroing indication bits indicative of the zeroing states of the corresponding data blocks, the allocating comprising:

allocating a user data cache for reading or writing user data, and

allocating a background zeroing cache for a background zeroing operation of the storage device; and

in response to receiving an I/O request for the storage system, processing the I/O request with the metadata cache.

2. The method of claim 1 , wherein processing the I/O request with the metadata cache comprises:

in response to the I/O request being a read request, determining whether zeroing indication bits in the metadata cache associated with data blocks corresponding to the read request are all set as a predetermined value; and

in response to the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the read request being all set as the predetermined value, sending the read request to the storage device.

3. The method of claim 2 , further comprising:

in response to at least one of the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the read request being not set as the predetermined value,

reading metadata associated with the data blocks corresponding to the read request; and

updating the metadata cache with the read metadata.

4. The method of claim 1 , wherein updating the metadata cache with the read metadata comprises:

in response to the I/O request being a write request, determining whether zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request are all set as a predetermined value; and

in response to the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request being all set as the predetermined value, performing a write operation to the storage device.

5. The method of claim 4 , further comprising:

in response to at least one of the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request being not set as the predetermined value,

reading metadata associated with the data blocks corresponding to the write request; and

updating, with the read metadata, the metadata cache associated with the data blocks corresponding to the write request.

6. The method of claim 5 , wherein updating, with the read metadata, the metadata cache associated with the data blocks corresponding to the write request comprises:

determining whether the data blocks corresponding to the write request have been zeroed; and

in response to the data blocks corresponding to the write request having not been zeroed,

zeroing the data blocks corresponding to the write request;

performing a write operation to the storage device;

updating the metadata associated with the data blocks corresponding to the write request; and

updating the metadata cache associated with the data blocks corresponding to the write request.

7. The method of claim 1 , wherein processing the I/O request with the metadata cache comprises:

obtaining a range of data blocks corresponding to the I/O request;

determining whether the range of data blocks corresponding to the I/O request overlaps with a range of data blocks corresponding to the background zeroing cache;

in response to the range of data blocks corresponding to the I/O request overlapping with the range of data blocks corresponding to the background zeroing cache, invalidating the overlapping portion in the background zeroing cache; and

in response to the range of data blocks corresponding to the I/O request not overlapping with the range of data blocks corresponding to the background zeroing cache, determining whether the range of data blocks corresponding to the I/O request overlaps with the user data cache.

8. The method of claim 7 , further comprising:

in response to the range of data blocks corresponding to the I/O request overlapping with the range of data blocks corresponding to the user data cache, updating the user data cache; and

in response to the range of data blocks corresponding to the I/O request not overlapping with the range of data blocks corresponding to the user data cache, obtaining a free user data cache.

9. The method of claim 1 , wherein the background zeroing operation comprises:

looking up a data block to be zeroed with a checkpoint, the checkpoint indicating an index of the data block to be zeroed;

determining whether zeroing indication bits in the background zeroing cache corresponding to the data block to be zeroed are all set as a predetermined value; and

in response to the zeroing indication bits in the background zeroing cache associated with the data block to be zeroed being all set as the predetermined value, updating the checkpoint to a next data block.

10. The method of claim 9 , further comprising:

in response to at least one of the zeroing indication bits in the background zeroing cache associated with the data block to be zeroed being not set as the predetermined value,

reading metadata corresponding to the data block to be zeroed; and

updating the metadata cache with the read metadata.

11. A manager for managing a storage system, the storage system including the manager and a storage device, the storage device including a data region and a metadata region, the data region being divided into data blocks, the metadata region storing metadata describing zeroing states of the data blocks, the manager including a processor and a memory coupled to the processor and having instructions stored thereon, the instructions, when executed by the processor, causing the manager to perform acts including:

allocating a metadata cache in the memory, the metadata cache including respective zeroing indication bits indicative of the zeroing states of the corresponding data blocks, the allocating comprising:

allocating a user data cache for reading or writing user data, and

allocating a background zeroing cache for a background zeroing operation of the storage device; and

in response to receiving an I/O request for the storage system, processing the I/O request with the metadata cache.

12. The manager of claim 11 , wherein processing the I/O request with the metadata cache comprises:

in response to the I/O request being a read request, determining whether zeroing indication bits in the metadata cache associated with the data blocks corresponding to the read request are all set as a predetermined value; and

in response to the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the read request being all set as the predetermined value, sending the read request to the storage device.

13. The manager of claim 12 , wherein the acts further include:

in response to at least one of the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the read request being not set as the predetermined value,

reading metadata associated with the data blocks corresponding to the read request; and

updating the metadata cache with the read metadata.

14. The manager of claim 11 , wherein updating the metadata cache with the read metadata comprises:

in response to the I/O request being a write request, determining whether zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request are all set as a predetermined value; and

in response to the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request being all set as the predetermined value, performing a write operation to the storage device.

15. The manager of claim 14 , the acts further comprising:

in response to at least one of the zeroing indication bits in the metadata cache associated with the data blocks corresponding to the write request being not set as the predetermined value,

reading metadata associated with the data blocks corresponding to the write request; and

updating, with the read metadata, the metadata cache associated with the data blocks corresponding to the write request.

16. The manager of claim 15 , wherein updating, with the read metadata, the metadata cache associated with the data blocks corresponding to the write request comprises:

determining whether the data blocks corresponding to the write request have been zeroed; and

in response to the data blocks corresponding to the write request having not been zeroed,

zeroing the data blocks corresponding to the write request;

performing a write operation to the storage device;

updating the metadata associated with the data blocks corresponding to the write request; and

updating the metadata cache associated with the data blocks corresponding to the write request.

17. The manager of claim 11 , wherein processing the I/O request with the metadata cache comprises:

obtaining a range of data blocks corresponding to the I/O request;

determining whether the range of data blocks corresponding to the I/O request overlaps with a range of data blocks corresponding to the background zeroing cache;

in response to the range of the data blocks corresponding to the I/O request overlapping with the range of the data blocks corresponding to the background zeroing cache, invalidating the overlapping portion in the background zeroing cache; and

in response to the range of the data blocks corresponding to the I/O request not overlapping with the range of the data blocks corresponding to the background zeroing cache, determining whether the range of the data blocks corresponding to the I/O request overlaps with the user data cache.

18. The manager of claim 17 , further comprising:

in response to the range of the data blocks corresponding to the I/O request overlapping with the range of the data blocks corresponding to the user data cache, updating the user data cache; and

in response to the range of the data blocks corresponding to the I/O request not overlapping with the range of the data blocks corresponding to the user data cache, obtaining a free user data cache.

19. The manager of claim 11 , wherein the background zeroing operation comprises:

looking up a data block to be zeroed with a checkpoint, the checkpoint indicating an index of the data block to be zeroed;

determining whether zeroing indication bits in the background zeroing cache corresponding to the data block to be zeroed are all set as a predetermined value; and

in response to the zeroing indication bits in the background zeroing cache associated with the data block to be zeroed being all set as the predetermined value, updating the checkpoint to a next data block.

20. The manager of claim 19 , wherein the background zeroing operation comprises:

in response to at least one of the zeroing indication bits in the background zeroing cache associated with the data block to be zeroed being not set as the predetermined value,

reading the metadata corresponding to the data block to be zeroed; and

updating the metadata cache with the read metadata.

Assignments (8)
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 (046366/0014) Recorded May 20, 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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 058298/0093 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
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 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2018
From: HAN, GENG; GAO, JIAN; DONG, JIBING; XU, XINLEI; FENG, CHANGYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045587/0487 →