IP Library Granted Patent US 11,042,512
Granted Patent B1
US 11,042,512 · App. 15/666,863 · Granted Jun 22, 2021

Enabling granular snapshots and provisioning in NAS (network attached storage) clusters

Inventors: Jean-Pierre Bono (Westborough, MA); Himabindu Tummala (South Grafton, MA)
Assignee: EMC IP Holding Company LLC
G06F16/1827G06F3/0604G06F3/065G06F3/0619G06F3/0631G06F3/0659G06F3/0665G06F11/1464G06F2201/84
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 11,042,512
App. No.
15/666,863
Granted
Jun 22, 2021
Kind
B1
Abstract

A technique for supporting snapshots and provisioning in a NAS (network attached storage) cluster includes implementing a file system built upon a virtual disk realized in a virtualization platform, the virtual disk itself built upon a LUN (Logical UNit) in block storage. In response to a request to take a snapshot of the file system or to provision a new file system, the NAS cluster bypasses the virtualization platform and directs a request to a block storage manager, either to take a snapshot of the LUN (in the case of snapshot) or to create a new LUN (in the case of provisioning). The NAS cluster records a relationships among LUNs, file systems, and snaps, but the virtualization platform treats the LUNs as independent objects.

Claims (60)

1. A method of managing data in a NAS (network attached storage) cluster, the method comprising:

operating multiple NAS data nodes in the NAS cluster, each of the NAS data nodes having access to block storage, the block storage controlled by a storage manager;

providing a file system in a NAS data node in the NAS cluster, the NAS data node running within a virtualization platform on a physical computing machine, the file system built upon a virtual disk from the virtualization platform, the virtual disk derived from a first LUN (Logical UNit) in the block storage, the first LUN assigned to the virtualization platform from the block storage;

in response to receiving a request to create a snapshot of the file system, bypassing the virtualization platform and issuing a snap command to the storage manager, the block storage then creating a second LUN in the block storage as a snapshot of the first LUN in the block storage; and

recording a snapshot relationship between the first LUN and the second LUN in the NAS cluster, the snapshot of the file system thereby created without involvement of the virtualization platform,

wherein receiving the request to create the snapshot of the file system is performed by a cluster manager of the NAS cluster, and wherein recording the snapshot relationship is performed under direction of the cluster manager.

2. The method of claim 1 , further comprising, after the block storage has created the second LUN, directing, by the NAS cluster, the storage manager to assign the second LUN to the virtualization platform, the virtualization platform thereafter creating a second virtual disk from the second LUN.

3. The method of claim 2 , wherein the NAS data node runs within a virtual machine running within the virtualization platform, and wherein the method further comprises:

discovering the second virtual disk by an operating system kernel running within the virtual machine;

creating a block device in the operating system kernel, the block device built upon the second virtual disk;

building a local volume on the block device, the local volume running within userspace of the operating system, and

deploying the snapshot of the file system on the local volume.

4. The method of claim 3 , wherein creating the second virtual disk from the second LUN includes internally provisioning the second virtual disk within a virtual machine file system using raw device mapping.

5. The method of claim 2 , wherein the file system and the snapshot of the file system belong to a first NAS server, the first NAS server being one of multiple NAS servers running on the NAS data node, each NAS server including multiple file systems, and wherein the method further comprises, in response to a move request to move the NAS server from the NAS data node to a second NAS data node in the NAS cluster:

directing the storage manager to unassign both the first LUN and the second LUN from the virtualization platform,

directing the storage manager to reassign both the first LUN and the second LUN to a second virtualization platform running on the second NAS data node, and

operating the file system and the snapshot of the file system in a second virtual machine running within the second virtualization platform on the second data node.

6. The method of claim 2 , further comprising:

maintaining, by the NAS data node, a file system database (FSDB), the FSDB storing a first FSDB entry that associates a first dev-ID (device identifier) both with an identifier of the file system and with a first NAS server, the first NAS server being one of multiple NAS servers running on the NAS data node, each NAS server associated with multiple file systems, and

wherein recording the snapshot relationship between the first LUN and the second LUN includes storing, within the FSDB, a second FSDB entry that associates a second dev-ID both with an identifier of the snapshot and with the first NAS server.

7. The method of claim 6 , wherein recording the snapshot relationship between the first LUN and the second LUN further includes storing, within a management database running within the NAS cluster, a first management database entry that associates the first dev-ID with an identifier of the first LUN, and a second management database entry that associates the second dev-ID with an identifier of the second LUN.

8. The method of claim 7 , wherein the request to take the snapshot of the file system is received by a cluster manager of the NAS cluster from an administrative program, the request specifying the identifier of the file system, and wherein the method further comprises:

obtaining, by the cluster manager, the first dev-ID from the first FSDB entry in the FSDB on the NAS data node, as a dev-ID that the FSDB associates with the identifier of the file system; and

retrieving, by the cluster manager from the management database, an identifier of first LUN from the first management database entry, as a LUN identifier that the management database associates with the first device ID as obtained from the FSDB;

wherein issuing the snap command includes specifying the identifier of the first LUN.

9. The method of claim 8 , wherein issuing the snap command is conducted over a REST (representational state transfer) interface between the cluster manager and the storage manager.

10. A NAS (network attached storage) cluster, comprising:

multiple NAS data nodes provided on respective physical computing machines interconnected via a computer network, the physical computing machines including control circuitry constructed and arranged to:

operate multiple NAS data nodes in the NAS cluster, each of the NAS data nodes having access to block storage, the block storage controlled by a storage manager;

provide a file system in a NAS data node in the NAS cluster, the NAS data node running within a virtualization platform on a physical computing machine, the file system built upon a virtual disk from the virtualization platform, the virtual disk derived from a first LUN (Logical UNit) in the block storage, the first LUN assigned to the virtualization platform from the block storage;

in response to receiving a request to provision a new file system, bypass the virtualization platform and issue a provisioning command to the storage manager, the block storage then provisioning a second LUN in the block storage independent of the first LUN in the block storage; and

record a relationship between the second file system and the second LUN in the NAS cluster, the second file system thereby created without involvement of the virtualization platform,

wherein receipt of the request to provision the new file system is by a cluster manager of the NAS cluster, and wherein the control circuitry is constructed and arranged to record the relationship under direction of the cluster manager.

11. The NAS cluster of claim 10 , wherein the control circuitry is further constructed and arranged to assign the second LUN to the virtualization platform, the virtualization platform thereafter creating a second virtual disk from the second LUN.

12. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a NAS cluster, cause the control circuitry to perform a method for managing data in the NAS cluster, the method comprising:

operating multiple NAS data nodes in the NAS cluster, each of the NAS data nodes having access to block storage, the block storage controlled by a storage manager;

providing a file system in a NAS data node in the NAS cluster, the NAS data node running within a virtualization platform on a physical computing machine, the file system built upon a virtual disk from the virtualization platform, the virtual disk derived from a first LUN (Logical UNit) in the block storage, the first LUN assigned to the virtualization platform from the block storage;

in response to receiving a request to create a snapshot of the file system, bypassing the virtualization platform and issuing a snap command to the storage manager, the block storage then creating a second LUN in the block storage as a snapshot of the first LUN in the block storage; and

recording a snapshot relationship between the first LUN and the second LUN in the NAS cluster, the snapshot of the file system thereby created without involvement of the virtualization platform,

wherein receiving the request to create the snapshot of the file system is performed by a cluster manager of the NAS cluster, and wherein recording the snapshot relationship is performed under direction of the cluster manager.

13. The computer program product of claim 12 , wherein the method further comprises, after the block storage has created the second LUN, directing, by the NAS cluster, the storage manager to assign the second LUN to the virtualization platform, the virtualization platform thereafter creating a second virtual disk from the second LUN.

14. The computer program product of claim 3 , wherein the NAS data node runs within a virtual machine running within the virtualization platform, and wherein the method further comprises:

discovering the second virtual disk by an operating system kernel running within the virtual machine;

creating a block device in the operating system kernel, the block device built upon the second virtual disk;

building a local volume on the block device, the local volume running within userspace of the operating system, and

deploying the snapshot of the file system on the local volume.

15. The computer program product of claim 14 , wherein creating the second virtual disk from the second LUN includes internally provisioning the second virtual disk within a virtual machine file system using raw device mapping.

16. The computer program product of claim 13 , wherein the file system and the snapshot of the file system belong to a first NAS server, the first NAS server being one of multiple NAS servers running on the NAS data node, each NAS server including multiple file systems, and wherein the method further comprises, in response to a move request to move the NAS server from the NAS data node to a second NAS data node in the NAS cluster:

directing the storage manager to unassign both the first LUN and the second LUN from the virtualization platform,

directing the storage manager to reassign both the first LUN and the second LUN to a second virtualization platform running on the second NAS data node, and

operating the file system and the snapshot of the file system in a second virtual machine running within the second virtualization platform on the second data node.

17. The computer program product of claim 13 , wherein the method further comprises:

maintaining, by the NAS data node, a file system database (FSDB), the FSDB storing a first FSDB entry that associates a first dev-ID (device identifier) both with an identifier of the file system and with a first NAS server, the first NAS server being one of multiple NAS servers running on the NAS data node, each NAS server associated with multiple file systems, and

wherein recording the snapshot relationship between the first LUN and the second LUN includes storing, within the FSDB, a second FSDB entry that associates a second dev-ID both with an identifier of the snapshot and with the first NAS server.

18. The computer program product of claim 16 , wherein recording the snapshot relationship between the first LUN and the second LUN further includes storing, within a management database running within the NAS cluster, a first management database entry that associates the first dev-ID with an identifier of the first LUN, and a second management database entry that associates the second dev-ID with an identifier of the second LUN.

19. The computer program product of claim 18 , wherein the request to take the snapshot of the file system is received by a cluster manager of the NAS cluster from an administrative program, the request specifying the identifier of the file system, and wherein the method further comprises:

obtaining, by the cluster manager, the first dev-ID from the first FSDB entry in the FSDB on the NAS data node, as a dev-ID that the FSDB associates with the identifier of the file system; and

retrieving, by the cluster manager from the management database, an identifier of first LUN from the first management database entry, as a LUN identifier that the management database associates with the first device ID as obtained from the FSDB;

wherein issuing the snap command includes specifying the identifier of the first LUN.

20. The computer program product of claim 19 , wherein issuing the snap command is conducted over a REST (representational state transfer) interface between the cluster manager and the storage manager.

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 (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 →
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 Sep 1, 2017
From: BONO, JEAN-PIERRE; TUMMALA, HIMABINDU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043471/0319 →
Cited By (4)
US 12,229,023 US 12,282,394 US 12,287,709 US 12,481,443