IP Library Granted Patent US 10,579,593
Granted Patent B2
US 10,579,593 · App. 15/885,037 · Granted Mar 3, 2020

Techniques for selectively deactivating storage deduplication

Inventors: Ivan Bassov (Brookline, MA); Ahsan Rashid (Edison, NJ)
Assignee: EMC IP Holding Company, LLC
G06F16/1748G06F3/0641G06F3/0643G06F16/128
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,579,593
App. No.
15/885,037
Granted
Mar 3, 2020
Kind
B2
Abstract

Techniques for effectively measuring the amount of space saved due to deduplication and selectively turning deduplication off for a filesystem if the savings are too low are provided. The techniques include maintaining both a lower bound count and an upper bound count for block savings due exclusively to deduplication rather than due to snapshots and using an average of the lower and upper bounds to estimate the actual savings due to deduplication in order decide whether to continue operating deduplication or not.

Claims (74)

1. A method of improving operation of a data storage system (DSS) device hosting a filesystem and snapshots associated with the filesystem, the method comprising:

operating the DSS device to process storage operations directed at the filesystem using a deduplication feature, the deduplication feature causing two or more identical logical data blocks at different logical addresses within the filesystem to be stored only once within persistent storage of the DSS device;

while operating the DSS device to process storage operations using the deduplication feature, maintaining a count of how many logical data blocks currently within the filesystem have been deduplicated by the deduplication feature;

while operating the DSS device to process storage operations using the deduplication feature, maintaining an estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature;

performing a comparison operation, the comparison operation testing whether an average of the count and the estimate represents less than a threshold percentage of a sum of all logical data blocks addressed by the filesystem and any additional different logical data blocks addressed by any of the associated snapshots;

in response to the comparison operation yielding a negative result, continuing to operate the DSS device to process storage operations directed at the filesystem using the deduplication feature; and

in response to the comparison operation yielding an affirmative result, turning off deduplication while continuing to operate the DSS device to process storage operations directed at the filesystem but without using the deduplication feature.

2. The method of claim 1 wherein maintaining the count of how many logical data blocks currently within the filesystem have been deduplicated by the deduplication feature includes:

upon the DSS device performing a deduplication of a first logical data block already stored within the filesystem in response to processing a storage operation directing the filesystem to write a copy of the first logical data block to a new address within the filesystem:

incrementing the count; and

incrementing a respective reference counter within a first intermediate pointing structure (IPS) that points to the first logical data block, the first IPS including a plurality of reference counters associated with respective logical data blocks to which the first IPS points, the first IPS being itself pointed to by ( 1 ) a first file mapping structure (FMS) for the new address and ( 2 ) a second FMS for an address at which the first logical data block was already stored within the filesystem; and

upon the DSS device performing a reverse deduplication of a second logical data block stored within the filesystem in response to processing a storage operation directing the filesystem to delete a copy of the second logical data block from a deletion address within the filesystem:

decrementing the count; and

decrementing a respective reference counter within a second IPS that points to the second logical data block, the second IPS including a plurality of reference counters associated with respective logical data blocks to which the second IPS points, the second IPS being itself pointed to by ( 1 ) a third FMS for the deletion address and ( 2 ) a fourth FMS for an address at which the second logical data block remains stored within the filesystem.

3. The method of claim 2 wherein maintaining the estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature includes:

upon the DSS device performing the deduplication of the first logical data block, further:

incrementing the estimate; and

setting a respective deduplication flag for the new address within the first FMS;

upon the DSS device performing the reverse deduplication of the second logical data block, further:

decrementing the estimate; and

unsetting a respective deduplication flag for the deletion address within the third FMS; and

upon the DSS device processing a storage command directing the DSS device to write to a writing address of the filesystem, the writing address being defined within a fifth FMS, the fifth FMS being shared with a snapshot associated with the filesystem:

creating a sixth FMS as a copy of the fifth FMS, the sixth FMS becoming part of the snapshot in place of the fifth FMS, the fifth FMS remaining part of the filesystem; and

incrementing the estimate by a total number of deduplication flags that are set within the sixth FMS.

4. The method of claim 3 wherein maintaining the estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature further includes, upon the DSS device processing a storage command directing the DSS device to delete the snapshot, decrementing the estimate by a total number of deduplication flags that are set within all the FMSes that are not shared with the filesystem or any other snapshot.

5. The method of claim 1 wherein the threshold percentage is a fixed value within a range of 1% to 20%.

6. The method of claim 1 ,

wherein the threshold percentage is a dynamic value; and

wherein performing the comparison operation includes setting the dynamic value of the threshold percentage to value that varies from a minimum value to a maximum value based on a computing resource utilization percentage of the DSS device.

7. The method of claim 6 ,

wherein turning off deduplication while continuing to operate the DSS device to process storage operations directed at the filesystem but without using the deduplication feature includes continuing to maintain the count and the estimate while the deduplication feature is off; and

wherein the method further comprises, subsequent to turning off deduplication:

performing an updated comparison operation, the updated comparison operation testing whether an updated average of the count and the estimate represents less than an updated threshold percentage of an updated sum of all logical data blocks addressed by the filesystem and any additional different logical data blocks addressed by any of the associated snapshots;

in response to the updated comparison operation yielding a negative result, turning deduplication back on while continuing to operate the DSS device to process storage operations directed at the filesystem while using the deduplication feature; and

in response to the updated comparison operation yielding an affirmative result, continuing to operate the DSS device to process storage operations directed at the filesystem without using the deduplication feature.

8. The method of claim 1 wherein performing the comparison operation includes computing the average as an arithmetic mean of the count and the estimate.

9. The method of claim 1 wherein performing the comparison operation includes calculating the sum of all logical data blocks addressed by the filesystem and any additional different logical data blocks addressed by any of the associated snapshots by summing:

a number of blocks backing logical data blocks currently within either the filesystem or the associated snapshots; and

the average of the count and the estimate.

10. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when executed by control circuitry of a data storage system (DSS) device, cause the control circuitry to improve operation of the DSS device hosting a filesystem and snapshots associated with the filesystem by:

operating the DSS device to process storage operations directed at the filesystem using a deduplication feature, the deduplication feature causing two or more identical logical data blocks at different logical addresses within the filesystem to be stored only once within persistent storage of the DSS device;

while operating the DSS device to process storage operations using the deduplication feature, maintaining a count of how many logical data blocks currently within the filesystem have been deduplicated by the deduplication feature;

while operating the DSS device to process storage operations using the deduplication feature, maintaining an estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature;

performing a comparison operation, the comparison operation testing whether an average of the count and the estimate represents less than a threshold percentage of a sum of all logical data blocks addressed by the filesystem and any additional different logical data blocks addressed by any of the associated snapshots;

in response to the comparison operation yielding a negative result, continuing to operate the DSS device to process storage operations directed at the filesystem using the deduplication feature; and

in response to the comparison operation yielding an affirmative result, turning off deduplication while continuing to operate the DSS device to process storage operations directed at the filesystem but without using the deduplication feature.

11. The computer program product of claim 10 wherein maintaining the count of how many logical data blocks currently within the filesystem have been deduplicated by the deduplication feature includes:

upon the DSS device performing a deduplication of a first logical data block already stored within the filesystem in response to processing a storage operation directing the filesystem to write a copy of the first logical data block to a new address within the filesystem:

incrementing the count; and

incrementing a respective reference counter within a first intermediate pointing structure (IPS) that points to the first logical data block, the first IPS including a plurality of reference counters associated with respective logical data blocks to which the first IPS points, the first IPS being itself pointed to by ( 1 ) a first file mapping structure (FMS) for the new address and ( 2 ) a second FMS for an address at which the first logical data block was already stored within the filesystem; and

upon the DSS device performing a reverse deduplication of a second logical data block stored within the filesystem in response to processing a storage operation directing the filesystem to delete a copy of the second logical data block from a deletion address within the filesystem:

decrementing the count; and

decrementing a respective reference counter within a second IPS that points to the second logical data block, the second IPS including a plurality of reference counters associated with respective logical data blocks to which the second IPS points, the second IPS being itself pointed to by ( 1 ) a third FMS for the deletion address and ( 2 ) a fourth FMS for an address at which the second logical data block remains stored within the filesystem.

12. The computer program product of claim 11 wherein maintaining the estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature includes:

upon the DSS device performing the deduplication of the first logical data block, further:

incrementing the estimate; and

setting a respective deduplication flag for the new address within the first FMS;

upon the DSS device performing the reverse deduplication of the second logical data block, further:

decrementing the estimate; and

unsetting a respective deduplication flag for the deletion address within the third FMS; and

upon the DSS device processing a storage command directing the DSS device to write to a writing address of the filesystem, the writing address being defined within a fifth FMS, the fifth FMS being shared with a snapshot associated with the filesystem:

creating a sixth FMS as a copy of the fifth FMS, the sixth FMS becoming part of the snapshot in place of the fifth FMS, the fifth FMS remaining part of the filesystem; and

incrementing the estimate by a total number of deduplication flags that are set within the sixth FMS.

13. The computer program product of claim 12 wherein maintaining the estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature further includes, upon the DSS device processing a storage command directing the DSS device to delete the snapshot, decrementing the estimate by a total number of deduplication flags that are set within all the FMSes that are not shared with the filesystem or any other snapshot.

14. An apparatus comprising:

persistent storage devices providing data storage;

network interface circuitry configured to communicate with a host over a network; and

processing circuitry coupled to memory to form a control circuit constructed and arranged to improve operation of the apparatus hosting a filesystem and snapshots associated with the filesystem by:

operating to process storage operations directed at the filesystem using a deduplication feature, the deduplication feature causing two or more identical logical data blocks at different logical addresses within the filesystem to be stored only once within the provided data storage;

while operating to process storage operations using the deduplication feature, maintaining a count of how many logical data blocks currently within the filesystem have been deduplicated by the deduplication feature;

while operating to process storage operations using the deduplication feature, maintaining an estimate of how many logical data blocks currently within either the filesystem or the associated snapshots have been deduplicated by the deduplication feature;

performing a comparison operation, the comparison operation testing whether an average of the count and the estimate represents less than a threshold percentage of a sum of all logical data blocks addressed by the filesystem and any additional different logical data blocks addressed by any of the associated snapshots;

in response to the comparison operation yielding a negative result, continuing to operate to process storage operations directed at the filesystem using the deduplication feature; and

in response to the comparison operation yielding an affirmative result, turning off deduplication while continuing to operate to process storage operations directed at the filesystem but without using the deduplication feature.

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 (045482/0131) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 061749/0924 →
RELEASE OF SECURITY INTEREST AT REEL 045482 FRAME 0395 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0314 →
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 (NOTES) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 045482/0131 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Mar 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 045482/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: BASSOV, IVAN; RASHID, AHSAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045064/0808 →
Continuity (1)
Related Publication 20190236163A1 · Aug 1, 2019