IP Library Granted Patent US 10,789,017
Granted Patent B1
US 10,789,017 · App. 15/664,980 · Granted Sep 29, 2020

File system provisioning and management with reduced storage communication

Inventors: Jean-Pierre Bono (Westborough, MA); Marc DeSouter (Wayne, NJ)
Assignee: EMC IP Holding Company LLC
G06F3/0665G06F3/061G06F3/0604G06F3/067G06F3/0611G06F3/0613G06F3/0631G06F3/0644G06F3/0659
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,789,017
App. No.
15/664,980
Granted
Sep 29, 2020
Kind
B1
Abstract

A technique for operating a file system in a NAS (network attached storage) cluster deploys a file system on a thin LUN in block storage and unilaterally provisions storage space to the file system without extending provisioning activities to the LUN. Rather, the file system proceeds as if the storage space is available from the LUN without reserving space or confirming availability.

Claims (59)

1. A method of operating file systems in a NAS (network attached storage) cluster, the method comprising:

deploying a file system within a data node of the NAS cluster, the data node running on a physical computing machine, the file system built upon a local volume within the data node, the local volume backed by a thin LUN (Logical UNit) provisioned from block storage, the block storage configured to host a plurality of thin-provisioned LUNs;

establishing a current size a maximum allowed size of the LUN but obtaining no reservation that storage space will be available from the block storage for the LUN to reach the maximum allowed size, the file system and the local volume each having an address space wherein each address in the file system corresponds, one-to-one, with a respective address in the local volume;

issuing a request to add an extent of additional storage space to the file system, the extent having a size; and

in response to issuance of the request, performing a provisioning operation at least in part by (i) extending provisioned space in the local volume by the size of the extent,

wherein the provisioning operation is performed without requesting additional storage space from the block storage and without correspondingly extending provisioned space in the LUN by the size of the extent, and

wherein the method further comprises, after performing the provisioning operation:

issuing a write request to write content to the file system in a region of the added extent;

sending the write request to the block storage; and

receiving, from the block storage in response to sending the write request, a message indicating that the request has failed, the message based on an out-of-space condition in the block storage that prevents additional storage space from being provisioned to the LUN for fulfilling the write request.

2. The method of claim 1 , wherein the provisioning operation is performed without checking whether the block storage has storage space available to back the added extent.

3. The method of claim 2 , wherein the file system is constructed and arranged to request additional storage space in increments of additional extents having uniform size, each extent extending over a respective range of multiple addresses in the address space of the file system.

4. The method of claim 3 , wherein the size of each extent exceeds 50 MB (Megabytes).

5. The method of claim 3 , wherein each of a set of addresses in the address space of the file system identifies a respective file system block, and wherein the method further comprises maintaining tracking metadata that describes, on a per-block basis, whether each block in the set of addresses is a provisioned free block, i.e., a block that was previously written to as part of a provisioned extent but which is now free.

6. The method of claim 5 , further comprising performing a scavenging operation in the file system that scavenges provisioned free blocks, the scavenging operation accessing the tracking metadata and, upon detecting that the tracking metadata identifies a provisioned free block at a file system address, issuing a punch-hole instruction at the file system address, the punch-hole instruction turning the provisioned free block into an unprovisioned block by unmapping the provisioned free block from the LUN, such that a block in the LUN that backed the provisioned free block becomes available for use elsewhere in the block storage.

7. The method of claim 6 ,

wherein the file system address space includes a data subspace and a metadata subspace, each subspace extending over a respective, contiguous range of file system addresses and including multiple extents,

wherein metadata in the metadata subspace supports data in the data subspace, and

wherein the method further comprises, when performing the scavenging operation, performing a punch-hole instruction on blocks of the metadata subspace which contain metadata that support data in hole-punched blocks in the data subspace.

8. The method of claim 7 , further comprising, upon detecting that all blocks in a particular extent of the file system are unprovisioned, performing a de-provisioning operation, the de-provisioning operation removing the particular extent from the file system and removing a corresponding extent from the local volume, the de-provisioning operation not informing the block storage that the particular extent has been de-provisioned.

9. The method of claim 5 , wherein the file system has a maximum size that is specified upon file system creation, the maximum file system size determining the maximum allowed size of the LUN, and wherein the file system is constructed and arranged to prohibit any changes in its maximum size once the file system has been created.

10. A computerized apparatus, comprising a set of processing units coupled to memory, the set of processing units and the memory together forming control circuitry, the control circuitry constructed and arranged to:

deploy a file system within a data node of the NAS cluster, the data node running on a physical computing machine, the file system built upon a local volume within the data node, the local volume backed by a thin LUN (Logical UNit) provisioned from block storage, the block storage configured to host a plurality of thin-provisioned LUNs;

establish a current size and a maximum allowed size of the LUN but obtaining no reservation that storage space will be available from the block storage for the LUN to reach the maximum allowed size, the file system and the local volume each having an address space wherein each address in the file system corresponds, one-to-one, with a respective address in the local volume;

issue a request to add an extent of additional storage space to the file system, the extent having a size; and

in response to issuance of the request, performing a provisioning operation at least in part by extending provisioned space in the local volume by the size of the extent,

wherein the provisioning operation is performed without any request for additional storage space from the block storage and without an corresponding extension of provisioned space in the LUN by the size of the extent, and

wherein the control circuitry, after performance of the provisioning operation, is constructed and arranged to:

issue a write request to write content to the file system in a region of the added extent;

send the write request to the block storage; and

receive, from the block storage in response to sending the write request, a message indicating that the request has failed, the message based on an out-of-space condition in the block storage that prevents additional storage space from being provisioned to the LUN for fulfilling the write request.

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

deploying a file system within a data node of the NAS (network attached storage) cluster, the data node running on computerized apparatus, file system built upon a local volume within the data node, the local volume backed by a thin LUN (Logical UNit) provisioned from block storage, the block storage configured to host a plurality of thin-provisioned LUNs;

establishing a current size and a maximum allowed size of the LUN but obtaining no reservation that storage space will be available from the block storage for the LUN to reach the maximum allowed size, the file system and the local volume each having an address space wherein each address in the file system corresponds, one-to-one, with a respective address in the local volume;

issuing a request to add an extent of additional storage space to the file system, the extent having a size; and

in response to issuance of the request, performing a provisioning operation at least in part by extending provisioned space in the local volume by the size of the extent,

wherein the provisioning operation is performed without requesting additional storage space from the block storage and without correspondingly extending provisioned space in the LUN by the size of the extent, and

wherein the method further comprises, after performing the provisioning operation:

issuing a write request to write content to the file system in a region of the added extent;

sending the write request to the block storage; and

receiving, from the block storage in response to sending the write request, a message indicating that the request has failed, the message based on an out-of-space condition in the block storage that prevents additional storage space from being provisioned to the LUN for fulfilling the write request.

12. The computer program product of claim 11 , wherein the provisioning operation is performed without checking whether the block storage has storage space available to back the added extent.

13. The computer program product of claim 12 , wherein the file system is constructed and arranged to request additional storage space in increments of additional extents having uniform size, each extent extending over a respective range of multiple addresses in the address space of the file system.

14. The computer program product of claim 13 , wherein each of a set of addresses in the address space of the file system identifies a respective file system block, and wherein the method further comprises maintaining tracking metadata that describes, on a per-block basis, whether each block in the set of addresses is a provisioned free block, i.e., a block that was previously written to as part of a provisioned extent but which is now free.

15. The computer program product of claim 14 , wherein the method further comprises performing a scavenging operation in the file system that scavenges provisioned free blocks, the scavenging operation accessing the tracking metadata and, upon detecting that the tracking metadata identifies a provisioned free block at a file system address, issuing a punch-hole instruction at the file system address, the punch-hole instruction turning the provisioned free block into an unprovisioned block by unmapping the provisioned free block from the LUN, such that a block in the LUN that backed the provisioned free block becomes available for use elsewhere in the block storage.

16. The computer program product of claim 15 ,

wherein the file system address space includes a data subspace and a metadata subspace, each subspace extending over a respective, contiguous range of file system addresses and including multiple extents,

wherein metadata in the metadata subspace supports data in the data subspace, and

wherein the method further comprises, when performing the scavenging operation, performing a punch-hole instruction on blocks of the metadata subspace which contain metadata that support data in hole-punched blocks in the data subspace.

17. The computer program product of claim 16 , wherein the method further comprises, upon detecting that all blocks in a particular extent of the file system are unprovisioned, performing a de-provisioning operation, the de-provisioning operation removing the particular extent from the file system and removing a corresponding extent from the local volume, the de-provisioning operation not informing the block storage that the particular extent has been de-provisioned.

18. The computer program product of claim 17 , wherein the file system has a maximum size that is specified upon file system creation, the maximum file system size determining the maximum allowed size of the LUN, and wherein the file system is constructed and arranged to prohibit any changes in its maximum size once the file system has been created.

19. The method of claim 1 , further comprising directing the block storage to provision the thin LUN with no space guarantee that storage space will be available from the block storage for the LUN to reach the maximum allowed size.

20. The method of claim 1 , wherein the local volume is run within userspace of the data node, and wherein the method further comprises running a kernel-based block device within an operating-system kernel of the data node, the kernel-based block device backed by the thin LUN, the local volume built upon the kernel-based block device.

21. The method of claim 19 , wherein the kernel-based block device has an address space, and wherein addresses of the kernel-based block device correspond one-to-one with addresses of the local volume.

22. The method of claim 21 , wherein deploying the file system includes:

discovering the LUN by the data node running in the NAS cluster;

rendering, within the operating-system kernel of the data node, the kernel-based block device built on the LUN;

building the local volume on the kernel-based block device; and

building the file system on the local volume.

Assignments (10)
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 (043775/0082) 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 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 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/0606 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST NAME OF <ASSIGNOR 1> PREVIOUSLY RECORDED ON REEL 043665 FRAME 0508. ASSIGNOR(S) HEREBY CONFIRMS THE FROM <MARK> TO <MARC>. Recorded Sep 7, 2018
From: DESOUTER, MARC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047525/0010 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: DESOUTER, MARK
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043665/0508 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
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 043775/0082 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2017
From: BONO, JEAN-PIERRE
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043471/0454 →
Cited By (1)
US 12,535,958