IP Library Granted Patent US 10,983,964
Granted Patent B1
US 10,983,964 · App. 15/664,993 · Granted Apr 20, 2021

Managing file system tailored for cluster deployment

Inventors: Jean-Pierre Bono (Westborough, MA); Marc DeSouter (Wayne, NJ)
Assignee: EMC IP Holding Company LLC
G06F16/1827G06F3/0604G06F3/067G06F3/0631G06F3/0659G06F16/1727
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,983,964
App. No.
15/664,993
Filed
Jul 31, 2017
Granted
Apr 20, 2021
Kind
B1
Art Unit
2167
USPC
707/827
Abstract

A technique for operating a file system in a NAS (network attached storage) cluster includes discovering, by a data node running in the NAS cluster, a LUN (Logical UNit) provisioned from block storage. The data node renders the LUN as a block device and creates a local volume, built on the block device. The data node then deploys the file system on the local volume. The file system, the local volume, the block device, and the LUN all have address spaces, and the address space of each corresponds one-to-one with the address space of each of the others. Write requests directed to addresses in the file system propagate to the LUN, where they effect writes at corresponding addresses in the LUN.

Claims (55)

1. A method of operating a file system, the method comprising:

discovering, by a data node running in a NAS (network attached storage) cluster, a LUN (Logical UNit) provisioned from block storage to the data node;

rendering a block device built on the LUN, the block device being a file that resides on the data node and is mapped to the LUN discovered by the data node;

creating a local volume built on the block device as a separate structure from the block device, the LUN, the block device, and the local volume each having an address space;

deploying a file system on the local volume, the file system having an address space in which each address corresponds one-to-one with a respective address in the local volume, with a respective address in the block device, and with a respective address in the LUN;

receiving a write request to write a set of data to the file system, the write request resolving to a mapped address in the file system; and

propagating the write request from the file system to the local volume, to the block device, and to the LUN, whereupon the block storage is directed to write the set of data at an address of the LUN that corresponds to the mapped address in the file system,

wherein rendering the block device based on the LUN includes realizing the block device in a kernel of an operating system running on the data node,

wherein creating the local volume built on the block device includes realizing the local volume in userspace of the operating system,

wherein the operating system runs in a virtual machine running within a virtual machine environment on the data node, wherein provisioning the LUN from the block storage to the data node effects provisioning of the LUN to the virtual machine server, and wherein the method further comprises:

the virtual machine environment expressing the LUN as a vdisk (virtual disk);

the virtual machine environment presenting the vdisk to the virtual machine; and

the operating system discovering the vdisk presented to the virtual machine,

wherein rendering the block device built on the LUN includes expressing the discovered vdisk as the block device.

2. The method of claim 1 , wherein the file system has a maximum specified size that is established when the file system is created and that does not change over a lifecycle of the file system.

3. The method of claim 2 , wherein the LUN is a thin LUN having an initial size and a maximum allowable size, the maximum allowable size based on the maximum specified size of the file system, the LUN having no space guarantee that storage space will be available from the block storage for enabling the LUN to reach the maximum allowable size.

4. The method of claim 3 , wherein the LUN is an only LUN that backs the file system, such that all of the contents of the file system are stored in the LUN.

5. The method of claim 1 , wherein the vdisk has an address space, and wherein each address of the file system corresponds one-to-one with a respective address in the address space of the vdisk.

6. The method of claim 1 , wherein the local volume, the block device, and the LUN each have a respective address space, and wherein the address space of the file system, the address space of the local volume, the address space of the block device, and the address space of the LUN are all the same size.

7. The method of claim 1 , wherein creating the local volume built on the block device is performed under control of a file system manager running on the data node.

8. 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:

discover, by a data node running in a NAS (network attached storage) cluster, a LUN (Logical UNit) provisioned from block storage to the data node;

render a block device built on the LUN, the block device being a file that resides on the data node and is mapped to the LUN discovered by the data node;

create a local volume built on the block device as a separate structure from the block device, the LUN, the block device, and the local volume each having an address space;

deploying a file system on the local volume, the file system having an address space in which each address corresponds one-to-one with a respective address in the local volume, with a respective address in the block device, and with a respective address in the LUN;

receive a write request to write a set of data to the file system, the write request resolving to a mapped address in the file system; and

propagate the write request from the file system to the local volume, to the block device, and to the LUN, whereupon the block storage is directed to write the set of data at an address of the LUN that corresponds to the mapped address in the file system,

wherein the control circuitry constructed and arranged to render the block device based on the LUN is further constructed and arranged to realize the block device in a kernel of an operating system running on the data node,

wherein the control circuitry constructed and arranged to create the local volume built on the block device is further constructed and arranged to realize the local volume in userspace of the operating system,

wherein the control circuitry is constructed and arranged to run the operating system in a virtual machine within a virtual machine environment on the data node,

wherein the control circuitry constructed and arranged to provision the LUN from the block storage to the data node is further constructed and arranged to effect provisioning of the LUN to the virtual machine server, and

wherein the control circuitry is further constructed and arranged to:

express, by the virtual machine environment, the LUN as a vdisk (virtual disk);

present, by the virtual machine environment, the vdisk to the virtual machine; and

discover, by the operating system, the vdisk presented to the virtual machine,

wherein the control circuitry constructed and arranged to render the block device built on the LUN is further constructed and arranged to express the discovered vdisk as the block device.

9. The computerized apparatus of claim 8 , wherein the vdisk has an address space, and wherein each address of the file system corresponds one-to-one with a respective address in the address space of the vdisk.

10. 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:

discovering, by a data node running in a NAS (network attached storage) cluster, a LUN (Logical UNit) provisioned from block storage to the data node;

rendering a block device built on the LUN, the block device being a file that resides on the data node and is mapped to the LUN discovered by the data node;

creating a local volume built on the block device as a separate structure from the block device, the LUN, the block device, and the local volume each having an address space;

deploying a file system on the local volume, the file system having an address space in which each address corresponds one-to-one with a respective address in the local volume, with a respective address in the block device, and with a respective address in the LUN;

receiving a write request to write a set of data to the file system, the write request resolving to a mapped address in the file system; and

propagating the write request from the file system to the local volume, to the block device, and to the LUN, whereupon the block storage is directed to write the set of data at an address of the LUN that corresponds to the mapped address in the file system,

wherein rendering the block device based on the LUN includes realizing the block device in a kernel of an operating system running on the data node,

wherein creating the local volume built on the block device includes realizing the local volume in userspace of the operating system,

wherein the operating system runs in a virtual machine running within a virtual machine environment on the data node, wherein provisioning the LUN from the block storage to the data node effects provisioning of the LUN to the virtual machine server, and wherein the method further comprises:

the virtual machine environment expressing the LUN as a vdisk (virtual disk);

the virtual machine environment and presenting the vdisk to the virtual machine; and

the operating system discovering the vdisk presented to the virtual machine,

wherein rendering the block device built on the LUN includes expressing the discovered vdisk as the block device.

11. The computer program product of claim 10 , wherein the file system has a maximum specified size that is established when the file system is created and that does not change over a lifecycle of the file system.

12. The computer program product of claim 11 , wherein the LUN is a thin LUN having an initial size and a maximum allowable size, the maximum allowable size based on the maximum specified size of the file system, the LUN having no space guarantee that storage space will be available from the block storage for enabling the LUN to reach the maximum allowable size.

13. The computer program product of claim 12 , wherein the LUN is an only LUN that backs the file system, such that all of the contents of the file system are stored in the LUN.

14. The computer program product of claim 10 , wherein the vdisk has an address space, and wherein each address of the file system corresponds one-to-one with a respective address in the address space of the vdisk.

Assignments (9)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: DESOUTER, MARC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043665/0616 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2017
From: BONO, JEAN-PIERRE
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043464/0705 →
Cited By (4)
US 12,216,615 US 12,367,178 US 12,450,174 US 12,481,429