IP Library Granted Patent US 10,613,787
Granted Patent B2
US 10,613,787 · App. 15/885,025 · Granted Apr 7, 2020

Techniques for rebalancing storage between subspaces

Inventors: Piers Yu (Shanghai, CN); Banghui Luo (Shanghai, CN); Ruiling Dou (Shanghai, CN); Ahsan Rashid (Edison, NJ); Jun Liu (Shanghai, CN); Xianlong Liu (Shanghai, CN); Walter C. Forrester (Berkeley Heights, NJ)
Assignee: EMC IP Holding Company LLC
G06F3/0646G06F3/0608G06F3/0643G06F12/023
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,613,787
App. No.
15/885,025
Granted
Apr 7, 2020
Kind
B2
Abstract

Techniques for improving storage efficiency of a data storage system are provided. The techniques include (a) performing a testing operation to evaluate whether a test condition is satisfied for a filesystem having a plurality of subspaces, each subspace being provisioned with a respective amount of storage, each subspace of the filesystem being dedicated to storing different respective types of filesystem content, wherein the test condition indicates that a first subspace has available space in excess of a threshold percentage, (b) in response to determining that the test condition is satisfied for the filesystem, performing a reduction operation on the first subspace to remove a portion of storage provisioned to that subspace while retaining the removed portion for use by the filesystem, and (c) upon a second subspace reaching a fullness threshold, provisioning the removed portion to the second subspace and storing content of the respective type of the second subspace thereon.

Claims (55)

1. A method of improving storage efficiency of a data storage system, the method comprising:

performing a testing operation to evaluate whether a test condition is satisfied for a filesystem hosted by the data storage system, the filesystem having a plurality of subspaces, each subspace of the filesystem being provisioned with a respective amount of storage, each subspace of the filesystem being dedicated to storing different respective types of filesystem content, wherein the test condition indicates that a first subspace of the plurality of subspaces has available space in excess of a threshold percentage;

in response to determining that the test condition is satisfied for the filesystem, performing a reduction operation on the first subspace to remove a portion of storage provisioned to that subspace while retaining the removed portion of storage for use by the filesystem; and

upon a second subspace of the plurality of subspaces reaching a fullness threshold, provisioning the removed portion of storage to the second subspace and storing content of the respective type of the second subspace thereon; wherein:

the test condition further indicates that a third subspace of the plurality of subspaces has available space below a minimum threshold percentage, the third subspace being different than the first subspace; and

the second subspace reaching the fullness threshold indicates that the second subspace has less than a critical amount of available storage, the critical amount of storage being less than the minimum threshold percentage.

2. The method of claim 1 wherein performing the testing operation to evaluate whether the test condition is satisfied is done periodically.

3. The method of claim 2 ,

wherein the method further comprises periodically performing a filesystem shrink operation at a first frequency, the filesystem shrink operation being configured to rearrange content of the filesystem into a more compact arrangement and to return unused storage provisioned to the filesystem to no longer be provisioned to the filesystem; and

wherein periodically performing the testing operation is performed at a second frequency, the second frequency being more frequent than the first frequency.

4. The method of claim 1 wherein performing the testing operation to evaluate whether the test condition is satisfied is done in response to a deletion of content from the filesystem.

5. The method of claim 1 ,

wherein the filesystem is one of a plurality of filesystems hosted on the data storage system; and

performing the testing operation is performed for each filesystem of the plurality of filesystems by a respective thread assigned to that filesystem.

6. The method of claim 1 wherein the filesystem is configured with an intermediate threshold percentage and a differential value, the threshold percentage being equal to the intermediate threshold percentage plus the differential value and the minimum threshold percentage being equal to the intermediate threshold percentage minus the differential value, wherein a given subspace having an available space below the intermediate threshold percentage triggers an attempt to provision the filesystem with more storage.

7. The method of claim 1 wherein the filesystem is a thickly-provisioned filesystem.

8. The method of claim 1 ,

wherein the respective amount of storage provisioned to each subspace is a respective integer multiple of a size of an allocation slice, an allocation slice being a smallest unit of storage that can be provisioned to the filesystem, each allocation slice including a plurality of contiguously-arranged blocks of content;

wherein removing the portion of storage provisioned to the first subspace includes:

moving all content from a first allocation slice of the first subspace to one or more other allocation slices of the first subspace; and

removing the first allocation slice from being provisioned to the first subspace and storing the first allocation slice within a pool of available allocation slices for the filesystem; and

wherein provisioning the removed portion of storage to the second subspace includes:

removing the first allocation slice from the pool of available allocation slices for the filesystem; and

provisioning the first allocation slice to the second subspace.

9. The method of claim 8 wherein each allocation slice has a fixed size in the range of 128 megabytes to 256 gigabytes.

10. The method of claim 1 wherein the plurality of subspaces of the filesystem includes:

a data subspace dedicated to storing file data; and

a metadata subspace assigned to store indirect blocks that include pointers to blocks of file data.

11. The method of claim 10 , wherein the plurality of subspaces of the filesystem further includes an inode subspace dedicated to storing inodes that define files of the filesystem.

12. The method of claim 10 , wherein the plurality of subspaces of the filesystem further includes a shadow subspace assigned to store descriptive information about layout and allocation of data blocks within the data subspace.

13. 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, cause the control circuitry to improve storage efficiency of the data storage system by:

performing a testing operation to evaluate whether a test condition is satisfied for a filesystem hosted by the data storage system, the filesystem having a plurality of subspaces, each subspace of the filesystem being provisioned with a respective amount of storage, each subspace of the filesystem being dedicated to storing different respective types of filesystem content, wherein the test condition indicates that a first subspace of the plurality of subspaces has available space in excess of a threshold percentage;

in response to determining that the test condition is satisfied for the filesystem, performing a reduction operation on the first subspace to remove a portion of storage provisioned to that subspace while retaining the removed portion of storage for use by the filesystem; and

upon a second subspace of the plurality of subspaces reaching a fullness threshold, provisioning the removed portion of storage to the second subspace and storing content of the respective type of the second subspace thereon;

wherein the respective amount of storage provisioned to each subspace is a respective integer multiple of a size of an allocation slice, an allocation slice being a smallest unit of storage that can be provisioned to the filesystem, each allocation slice including a plurality of contiguously-arranged blocks of content;

wherein removing the portion of storage provisioned to the first subspace includes:

moving all content from a first allocation slice of the first subspace to one or more other allocation slices of the first subspace; and

removing the first allocation slice from being provisioned to the first subspace and storing the first allocation slice within a pool of available allocation slices for the filesystem; and

wherein provisioning the removed portion of storage to the second subspace includes:

removing the first allocation slice from the pool of available allocation slices for the filesystem; and

provisioning the first allocation slice to the second subspace.

14. The computer program product of claim 13 wherein the test condition further indicates that a third subspace of the plurality of subspaces has available space below a minimum threshold percentage, the third subspace being different than the first subspace.

15. The computer program product of claim 14 wherein the filesystem is configured with an intermediate threshold percentage and a differential value, the threshold percentage being equal to the intermediate threshold percentage plus the differential value and the minimum threshold percentage being equal to the intermediate threshold percentage minus the differential value, wherein a given subspace having an available space below the intermediate threshold percentage triggers an attempt to provision the filesystem with more storage.

16. 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 storage efficiency by:

performing a testing operation to evaluate whether a test condition is satisfied for a filesystem hosted by the apparatus, the filesystem having a plurality of subspaces, each subspace of the filesystem being provisioned with a respective amount of storage, each subspace of the filesystem being dedicated to storing different respective types of filesystem content, wherein the test condition indicates that a first subspace of the plurality of subspaces has available space in excess of a threshold percentage;

in response to determining that the test condition is satisfied for the filesystem, performing a reduction operation on the first subspace to remove a portion of storage provisioned to that subspace while retaining the removed portion of storage for use by the filesystem; and

upon a second subspace of the plurality of subspaces reaching a fullness threshold, provisioning the removed portion of storage to the second subspace and storing content of the respective type of the second subspace thereon;

wherein:

the test condition further indicates that a third subspace of the plurality of subspaces has available space below a minimum threshold percentage, the third subspace being different than the first subspace; and

the filesystem is configured with an intermediate threshold percentage and a differential value, the threshold percentage being equal to the intermediate threshold percentage plus the differential value and the minimum threshold percentage being equal to the intermediate threshold percentage minus the differential value, wherein a given subspace having an available space below the intermediate threshold percentage triggers an attempt to provision the filesystem with more storage.

17. The method of claim 1 wherein the test condition indicates that the third subspace has available space below the minimum threshold percentage prior to the second subspace reaching the fullness threshold.

18. The computer program product of claim 13 wherein each allocation slice has a fixed size in the range of 128 megabytes to 256 gigabytes.

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: YU, PIERS; LUO, BANGHUI; DOU, RUILING; RASHID, AHSAN; LIU, JUN; LIU, XIANLONG; FORRESTER, WALTER C.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045471/0845 →
Continuity (1)
Related Publication 20190235782A1 · Aug 1, 2019