IP Library Granted Patent US 10,929,342
Granted Patent B2
US 10,929,342 · App. 16/048,944 · Granted Feb 23, 2021

Techniques for limiting the maximum storage consumed by a file system without shrinking an underlying volume

Inventors: Ahsan Rashid (Edison, NJ); Walter C. Forrester (Berkeley Heights, NJ); Marc De Souter (Wayne, NJ); Morgan A. Clark (South Orange, NJ)
Assignee: EMC IP Holding Company LLC
G06F16/122
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,929,342
App. No.
16/048,944
Granted
Feb 23, 2021
Kind
B2
Abstract

Techniques for limiting storage consumed by a file system without shrinking a volume upon which the file system is deployed. The techniques are employed in a clustered environment including multiple NAS nodes, each having access to block storage including multiple storage devices. By deploying the file system on a volume of a NAS node within the clustered environment, setting the value of the FS user size to be equal to the FS volume size, and if, at a later time, it is desired to reduce the file system size, setting the value of the FS user size to a lesser value than the FS volume size, IO requests received at the NAS node can be satisfied within the logical limit of the lesser value of the FS user size without shrinking the local volume, allowing the file system size to be reduced without requiring close coordination with the block storage.

Claims (65)

1. A method of limiting the maximum data storage consumed by a file system, without shrinking a local volume upon which the file system is deployed, comprising:

deploying the file system on a local volume of a data storage node, the file system having a file system user size, and the local volume having a local volume size;

setting the file system user size to be equal to the local volume size;

determining that storage space requirements of the file system are less than the file system user size;

reducing the file system user size in accordance with the storage space requirements of the file system, without reducing the local volume size;

receiving, at the data storage node, a first write request to write first data to the file system;

determining whether the first write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the first write request cannot be satisfied within the logical limit of the reduced file system user size, performing one of:

(i) increasing the file system user size up to or less than the local volume size, without extending the local volume size;

(ii) extending the local volume size in accordance with the storage space requirements of the file system and setting the file system user size to be equal to the extended local volume size to obtain an increased file system user size; and

(iii) issuing a write failure indication with respect to the file system due to insufficient storage space.

2. The method of claim 1 further comprising:

receiving, at the data storage node, a second write request to write second data to the file system;

determining whether the second write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the second write request can be satisfied within the logical limit of the reduced file system user size, writing the second data to the file system deployed on the local volume.

3. The method of claim 1 further comprising:

performing, in a background process, a scavenging operation to un-map or de-allocate at least some address blocks within an address space of the local volume that were previously written to and subsequently freed.

4. The method of claim 1 further comprising:

having set the file system user size to be equal to the extended local volume size to obtain the increased file system user size:

determining whether the first write request can be satisfied within a logical limit of the increased file system user size; and

having determined that the first write request can be satisfied within the logical limit of the increased file system user size, writing the first data to the file system deployed on the local volume.

5. In a clustered storage environment, a data storage node connected to a host computer by a computer network, the data storage node comprising:

an interface to the computer network;

a memory; and

one or more processing units configured to execute one or more programs out of the memory:

to deploy a file system on a local volume of the data storage node, the file system having a file system user size, and the local volume having a local volume size;

to facilitate setting the file system user size to be equal to the local volume size;

to facilitate determining that storage space requirements of the file system are less than the file system user size;

to facilitate reducing the file system user size in accordance with the storage space requirements of the file system, without reducing the local volume size;

to receive a first write request to write first data to the file system;

to determine whether the first write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the first write request cannot be satisfied within the logical limit of the reduced file system user size, to perform one of:

(i) increasing the file system user size up to or less than the local volume size, without extending the local volume size;

(ii) facilitating setting the file system user size to be equal to an extended local volume size to obtain an increased file system user size, the local volume size being extended in accordance with the storage space requirements of the file system; and

(iii) issuing a write failure indication with respect to the file system due to insufficient storage space.

6. The data storage node of claim 5 wherein the one or more processing units are further configured to execute the one or more programs out of the memory:

to receive a second write request to write second data to the file system;

to determine whether the second write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the second write request can be satisfied within the logical limit of the reduced file system user size, to write the second data to the file system deployed on the local volume.

7. The data storage node of claim 5 wherein the one or more processing units are further configured to execute the one or more programs out of the memory to perform, in a background process, a scavenging operation to un-map or de-allocate at least some address blocks within an address space of the local volume that were previously written to and subsequently freed.

8. The data storage node of claim 5 wherein the one or more processing units are further configured to execute the one or more programs out of the memory:

having facilitated the setting of the file system user size to be equal to the extended local volume size to obtain the increased file system user size:

to determine whether the first write request can be satisfied within a logical limit of the increased file system user size; and

having determined that the first write request can be satisfied within the logical limit of the increased file system user size, to write the first data to the file system deployed on the local volume.

9. A computer program product including a set of non-transitory, computer-readable media having instructions that, when executed by control circuitry of a computerized apparatus, cause the control circuitry to perform a method of operating a file system, the method comprising:

deploying the file system on a local volume of a data storage node, the file system having a file system user size, and the local volume having a local volume size;

setting the file system user size to be equal to the local volume size;

determining that storage space requirements of the file system are less than the file system user size;

reducing the file system user size in accordance with the storage space requirements of the file system, without reducing the local volume size;

receiving, at the data storage node, a first write request to write first data to the file system;

determining whether the first write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the first write request cannot be satisfied within the logical limit of the reduced file system user size, performing one of:

(i) increasing the file system user size up to or less than the local volume size, without extending the local volume size;

(ii) extending the local volume size in accordance with the storage space requirements of the file system and setting the file system user size to be equal to the extended local volume size to obtain an increased file system user size; and

(iii) issuing a write failure indication with respect to the file system due to insufficient storage space.

10. The method of claim 9 further comprising:

receiving, at the data storage node, a second write request to write second data to the file system;

determining whether the second write request can be satisfied within a logical limit of the reduced file system user size; and

having determined that the second write request can be satisfied within the logical limit of the reduced file system user size, writing the second data to the file system deployed on the local volume.

11. The method of claim 9 further comprising:

performing, in a background process, a scavenging operation to un-map or de-allocate at least some address blocks within an address space of the local volume that were previously written to and subsequently freed.

12. The method of claim 9 further comprising:

having set the file system user size to be equal to the extended local volume size to obtain the increased file system user size:

determining whether the first write request can be satisfied within a logical limit of the increased file system user size; and

having determined that the first write request can be satisfied within the logical limit of the increased file system user size, writing the first data to the file system deployed on the local volume.

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 (047648/0422) 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 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/0510 →
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 Oct 12, 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 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 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 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2018
From: RASHID, AHSAN; FORRESTER, WALTER C.; DE SOUTER, MARC; CLARK, MORGAN A.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046700/0951 →