In-flight block map for a clustered redirect-on-write filesystem
First Claim
1. A computer program product for allocating cluster storage units to cluster nodes for a clustered file system that implements redirect-on-write snapshotting, the computer program product comprising:
- a computer readable storage medium having program instructions embodied therewith, the program instructions comprising program instructions to,track cluster storage units for a clustered file system of a cluster that implements redirect-on-write snapshotting as free, in-flight, or committed, wherein the cluster storage units comprise logical units of aggregate storage space of storage devices of the cluster;
indicate a first set of the cluster storage units as free because the first set of cluster storage units are available for allocation to nodes of the cluster;
receive a request for cluster storage units from a client node;
in response to reception of the request for cluster storage units from the client node,transition the first set of the cluster storage units from free to in-flight to represent that the first set of cluster storage units are allocated to the client node for the client node to write to the first set of the cluster storage units; and
send first indications of the first set of the cluster storage units to the client node,receive, from the client node, second indications of the first set of the cluster storage units, checksums corresponding to the first set of the cluster storage units, and an indication of a fileset, wherein reception of the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage unit indicates that the client node has written data to the first set of the cluster storage units;
in response to reception of, from the client node, the second indications of the first set of the cluster storage units and checksums corresponding to the first set of the cluster storage units, write the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset;
if a failure does not interrupt a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then transition the first set of the cluster storage units to committed; and
if a failure interrupts a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then return the first set of the cluster storage units to free.
1 Assignment
0 Petitions
Accused Products
Abstract
A cluster server manages allocation of free blocks to cluster clients performing writes in a clustered file system. The cluster server manages free block allocation with a free block map and an in-flight block map. The free block map is a data structure or hardware structure with data that indicates blocks or extents of the clustered file system that can be allocated to a client for the client to write data. The in-flight block map is a data structure or hardware structure with data that indicates blocks that have been allocated to clients, but remain in-flight. A block remains in-flight until the clustered file system metadata has been updated to reflect a write performed to that block by a client. After a consistency snapshot of the metadata is published to the storage resources, the data at the block will be visible to other nodes of the cluster.
51 Citations
12 Claims
-
1. A computer program product for allocating cluster storage units to cluster nodes for a clustered file system that implements redirect-on-write snapshotting, the computer program product comprising:
a computer readable storage medium having program instructions embodied therewith, the program instructions comprising program instructions to, track cluster storage units for a clustered file system of a cluster that implements redirect-on-write snapshotting as free, in-flight, or committed, wherein the cluster storage units comprise logical units of aggregate storage space of storage devices of the cluster; indicate a first set of the cluster storage units as free because the first set of cluster storage units are available for allocation to nodes of the cluster; receive a request for cluster storage units from a client node; in response to reception of the request for cluster storage units from the client node, transition the first set of the cluster storage units from free to in-flight to represent that the first set of cluster storage units are allocated to the client node for the client node to write to the first set of the cluster storage units; and send first indications of the first set of the cluster storage units to the client node, receive, from the client node, second indications of the first set of the cluster storage units, checksums corresponding to the first set of the cluster storage units, and an indication of a fileset, wherein reception of the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage unit indicates that the client node has written data to the first set of the cluster storage units; in response to reception of, from the client node, the second indications of the first set of the cluster storage units and checksums corresponding to the first set of the cluster storage units, write the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset; if a failure does not interrupt a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then transition the first set of the cluster storage units to committed; and if a failure interrupts a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then return the first set of the cluster storage units to free. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A computer program product for allocating cluster storage units to cluster nodes for a clustered file system that implements redirect-on-write snapshotting, the computer program product comprising:
a computer readable storage medium having program instructions embodied therewith, the program instructions comprising program instructions to, receive a request for a number of cluster storage units from a client node in a cluster that implements redirect-on-write snapshotting for a clustered file system; in response to reception of the request for the number of cluster storage units from the client node in the cluster that implements redirect-on-write snapshotting for a clustered file system, determine a set of cluster storage units that are free and that satisfy the number of cluster storage units; indicate the set of cluster storage units as allocated to the client node and no longer free; allocate the set of cluster storage units to the client node; send first indications of the set of the cluster storage units to the client node; receive a plurality of checksums and second indications of the set of cluster storage units from the client node, wherein the client node writes data to the set of cluster storage units and generates the plurality of checksums for the data; and in response to reception of the plurality of checksums and the second indications of the set of cluster storage units from the client node, update metadata for the clustered file system to indicate the plurality of checksums for the data written to the set of cluster storage units; and update the metadata for the clustered file system to indicate an association between a fileset and the second indications of the set of cluster storage units. - View Dependent Claims (8, 9, 10)
-
11. An apparatus comprising:
-
a processor; a network interface configured to transmit and receive data to nodes of a cluster; and a computer readable storage medium coupled with the processor, the computer readable storage medium having computer usable program code embodied therewith, the computer usable program code, which, when executed by the processor, cause the apparatus to, track cluster storage blocks for a clustered file system of the cluster that implements redirect-on-write snapshotting as free, in-flight, or committed, wherein the cluster storage blocks comprise logical units of aggregate storage space of storage devices of the cluster; indicate a first set of the cluster storage blocks as free because the first set of cluster storage blocks are available for allocation to nodes of the cluster; receive a request for cluster storage units from a client node; in response to reception of the request for cluster storage units from the client node, transition the first set of the cluster storage blocks from free to in-flight to represent that the first set of cluster storage blocks are allocated to the client node for the client node to write to the first set of the cluster storage blocks; and send first indications of the first set of the cluster storage units to the client node; receive, from the client node, second indications of the first set of the cluster storage units, checksums corresponding to the first set of the cluster storage units, and an indication of a fileset, wherein receiving the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage unit indicates that the client node has written data to the first set of the cluster storage units; in response to reception, from the client node, of the second indications of the first set of the cluster storage units and checksums corresponding to the first set of the cluster storage units, write the second indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset; if a failure does not interrupt a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then transition the first set of the cluster storage blocks to committed; and if a failure interrupts a writing of the indications of the first set of the cluster storage units and the checksums corresponding to the first set of the cluster storage units to a location in metadata for the clustered file system corresponding to the fileset, then return the first set of the cluster storage blocks to free. - View Dependent Claims (12)
-
Specification