IP Library Granted Patent US 10,437,501
Granted Patent B1
US 10,437,501 · App. 15/933,503 · Granted Oct 8, 2019

Storage system with detection and correction of reference count based leaks in physical capacity

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,437,501
App. No.
15/933,503
Granted
Oct 8, 2019
Kind
B1
Abstract

A storage system in one embodiment comprises a plurality of storage devices and an associated storage controller. The storage controller implements a logical storage layer in which logical blocks are associated with respective content-based signatures and a physical storage layer in which the content-based signatures are associated with respective physical blocks in the storage devices. The storage controller maintains reference counts for respective ones of the physical blocks, with a given such reference count indicating a number of the logical blocks that map via their respective content-based signatures to the same physical block, groups the content-based signatures into one or more subsets, and for a given one of the subsets, executes a scan of the logical blocks to detect any discrepancies in the maintained reference counts for the given subset, and corrects detected discrepancies by updating the reference counts for the given subset based at least in part on results of the scan.

Claims (54)

1. An apparatus comprising:

a storage system comprising a plurality of storage devices and an associated storage controller;

the storage controller being configured to implement a logical storage layer in which logical blocks are associated with respective content-based signatures and a physical storage layer in which the content-based signatures are associated with respective physical blocks in the storage devices;

wherein the storage controller is further configured:

to maintain reference counts for respective ones of the physical blocks, with a given such reference count indicating a number of the logical blocks that map via their respective content-based signatures to the same physical block;

to group the content-based signatures into one or more subsets; and

for a given one of the subsets:

to execute a scan of the logical blocks to detect any discrepancies in the maintained reference counts for the given subset; and

to correct detected discrepancies by updating the reference counts for the given subset based at least in part on results of the scan;

wherein the storage controller is implemented using at least one processing device comprising a processor coupled to a memory.

2. The apparatus of claim 1 wherein the storage controller is further configured:

to detect a potentially content-altering access to at least one of the logical blocks having a content-based signature in the given subset that occurs during the scan of that subset; and

to invalidate the scan of the given subset responsive to detection of the potentially content-altering access.

3. The apparatus of claim 1 wherein grouping the content-based signatures into one or more subsets comprises grouping the content-based signatures such that the content-based signatures in the given subset all share a common prefix.

4. The apparatus of claim 3 wherein the common prefix comprises a specified number of initial bytes of each of the content-based signatures in the given subset with the initial bytes each having a designated value.

5. The apparatus of claim 4 wherein the common prefix comprises x initial bytes of the content-based signatures having respective designated values y 1 , . . . y x and further wherein the given subset represents a fraction

1

256

x

of a total scan space or at least one logical storage volume of the logical storage layer.

6. The apparatus of claim 3 wherein the storage controller is further configured to control a size of the given subset by altering one or more parameters of the common prefix shared by the content-based signatures of the given subset.

7. The apparatus of claim 1 wherein the scan is initiated as a background process of the physical storage layer.

8. The apparatus of claim 1 wherein the storage controller is further configured to generate as part of the scan an additional set of reference counts for respective ones of the physical blocks associated with respective ones of the content-based signatures of the given subset.

9. The apparatus of claim 8 wherein the results of the scan comprise differences between particular ones of the additional reference counts generated as part of the scan and corresponding ones of the maintained reference counts with each such difference indicating a reference count discrepancy.

10. The apparatus of claim 1 wherein the storage controller is further configured:

to utilize a first portion of a designated number of bits for the maintained reference count for a corresponding one of the physical blocks; and

to utilize a second portion of the designated number of bits for an additional reference count generated as part of the scan for the corresponding physical block.

11. The apparatus of claim 10 wherein the designated number of bits comprises one or more bytes and the first and second portions of the designated number of bits comprise respective lower order and upper order portions of the one or more bytes.

12. The apparatus of claim 1 wherein the storage controller is further configured:

to utilize a first portion of a designated number of bits for the maintained reference count for a corresponding one of the physical blocks; and

to utilize a second portion of the designated number of bits to indicate whether or not at least one logical block having the content-based signature associated with the corresponding physical block was identified during the scan.

13. The apparatus of claim 12 wherein the second portion comprises a single bit of the designated number of bits.

14. The apparatus of claim 1 wherein the storage controller is further configured to initiate a scan of another one of the subsets of content-based signatures responsive to the scan of the given subset of content-based signatures resulting in detection of at least a threshold number of reference count discrepancies.

15. A method comprising:

associating logical blocks of a storage system with respective content-based signatures;

associating the content-based signatures with respective physical blocks in a plurality of storage devices of the storage system;

maintaining reference counts for respective ones of the physical blocks, with a given such reference count indicating a number of the logical blocks that map via their respective content-based signatures to the same physical block;

grouping the content-based signatures into one or more subsets; and

for a given one of the subsets:

executing a scan of the logical blocks to detect any discrepancies in the maintained reference counts for the given subset; and

correcting detected discrepancies by updating the reference counts for the given subset based at least in part on results of the scan;

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein grouping the content-based signatures into one or more subsets comprises grouping the content-based signatures such that the content-based signatures in the given subset all share a common prefix.

17. The method of claim 15 further comprising generating as part of the scan an additional set of reference counts for respective ones of the physical blocks associated with respective ones of the content-based signatures of the given subset.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

to associate logical blocks of a storage system with respective content-based signatures;

to associate the content-based signatures with respective physical blocks in a plurality of storage devices of the storage system;

to maintain reference counts for respective ones of the physical blocks, with a given such reference count indicating a number of the logical blocks that map via their respective content-based signatures to the same physical block;

to group the content-based signatures into one or more subsets; and

for a given one of the subsets:

to execute a scan of the logical blocks to detect any discrepancies in the maintained reference counts for the given subset; and

to correct detected discrepancies by updating the reference counts for the given subset based at least in part on results of the scan.

19. The computer program product of claim 18 wherein grouping the content-based signatures into one or more subsets comprises grouping the content-based signatures such that the content-based signatures in the given subset all share a common prefix.

20. The computer program product of claim 18 further comprising generating as part of the scan an additional set of reference counts for respective ones of the physical blocks associated with respective ones of the content-based signatures of the given subset.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2018
From: KUCHEROV, ANTON; FLIESS, LERON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046503/0750 →
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 →