Distributed file system and method
First Claim
1. Apparatus for operating as a cluster node in a file server cluster having a plurality of interconnected cluster nodes, each of which has access to a plurality of logical storage volumes, to provide access by clients, in communication with the nodes, to data on the volumes, the apparatus comprising:
- a data storage volume for storing file system objects, each file system object having a unique parent node, the data storage volume deemed to be owned by the apparatus such that only the apparatus is permitted to write to the data storage volume;
at least one directory for storing references to file system objects stored in the various data storage volumes; and
hardware logic comprising object storage logic configured to store file system objects in the data storage volume and to store, in the at least one directory, logical references to file system objects stored in data storage volumes owned by other cluster nodes for which the apparatus is considered to be the parent node and hard references to file system objects stored in the data storage volume for which another node is considered to be the parent node;
each of said hard references including a hard link to a file system object created in a relocation directory of the data storage volume and a unique association between the hard link and a logical identifier used by the parent node to symbolically identify the file system object, wherein the hard link increases a reference count associated with the file system object in the data storage volume independent of the disposition of the logical identifier in the parent node such that the data storage volume is self-contained while allowing the file system object to be accessed symbolically from the parent node using the logical identifier without a physical cross-volume link, and wherein the hard link, the logical identifier, and the unique association between the hard link and the logical identifier represents a logical link between the data storage volume and the parent node that forms;
a physical namespace invisible to the clients of the plurality of nodes, the physical namespace implemented through the plurality of volumes, each volume having an internal hierarchy that connects file system objects through hard links including the hard link in the relocation directory of the data storage volume; and
a logical namespace visible to the clients of the plurality of nodes that spans the entire file system across volumes and is made of file system objects connected via hard links and logical links such that the difference between hard links and logical links is hidden from the clients.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed file system and method distributes file system objects across multiple self-contained volumes, where each volume is owned by a unique file system node. Logical links are used to reference a file system object between volumes. Each file system node includes a relocation directory in which is maintained hard links to locally-stored file system objects that are referenced from another file system node using logical links. Various file system operations that involve multiple volumes are performed without having to place a write lock on more than one volume at a time. Various caching schemes allow the various file system nodes to cache file system object data and metadata.
-
Citations
37 Claims
-
1. Apparatus for operating as a cluster node in a file server cluster having a plurality of interconnected cluster nodes, each of which has access to a plurality of logical storage volumes, to provide access by clients, in communication with the nodes, to data on the volumes, the apparatus comprising:
-
a data storage volume for storing file system objects, each file system object having a unique parent node, the data storage volume deemed to be owned by the apparatus such that only the apparatus is permitted to write to the data storage volume; at least one directory for storing references to file system objects stored in the various data storage volumes; and hardware logic comprising object storage logic configured to store file system objects in the data storage volume and to store, in the at least one directory, logical references to file system objects stored in data storage volumes owned by other cluster nodes for which the apparatus is considered to be the parent node and hard references to file system objects stored in the data storage volume for which another node is considered to be the parent node; each of said hard references including a hard link to a file system object created in a relocation directory of the data storage volume and a unique association between the hard link and a logical identifier used by the parent node to symbolically identify the file system object, wherein the hard link increases a reference count associated with the file system object in the data storage volume independent of the disposition of the logical identifier in the parent node such that the data storage volume is self-contained while allowing the file system object to be accessed symbolically from the parent node using the logical identifier without a physical cross-volume link, and wherein the hard link, the logical identifier, and the unique association between the hard link and the logical identifier represents a logical link between the data storage volume and the parent node that forms; a physical namespace invisible to the clients of the plurality of nodes, the physical namespace implemented through the plurality of volumes, each volume having an internal hierarchy that connects file system objects through hard links including the hard link in the relocation directory of the data storage volume; and a logical namespace visible to the clients of the plurality of nodes that spans the entire file system across volumes and is made of file system objects connected via hard links and logical links such that the difference between hard links and logical links is hidden from the clients. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. Apparatus for operating as a cluster node in a file server cluster having a plurality of interconnected cluster nodes, each of which has access to a plurality of logical storage volumes, to provide access by clients, in communication with the nodes, to data on the volumes, the apparatus comprising:
-
a data storage volume for storing file system objects, each file system object having a unique parent node, the data storage volume deemed to be owned by the cluster node such that only the cluster node is permitted to write to the data storage volume; at least one directory for storing references to file system objects stored in the various data storage volumes; means for storing file system objects in the data storage volume; means for storing, in the at least one directory, logical references to file system objects stored in data storage volumes owned by other cluster nodes for which the cluster node is considered to be the parent node; and means for storing, in the at least one directory, hard references to file system objects stored in the data storage volume for which another cluster node is considered to be the parent node; each of said hard references including a hard link to a file system object created in a relocation directory of the data storage volume and a unique association between the hard link and a logical identifier used by the parent node to symbolically identify the file system object, wherein the hard link increases a reference count associated with the file system object in the data storage volume independent of the disposition of the logical identifier in the parent node such that the data storage volume is self-contained while allowing the file system object to be accessed symbolically from the parent node using the logical identifier without a physical cross-volume link, and wherein the hard link, the logical identifier, and the unique association between the hard link and the logical identifier represents a logical link between the data storage volume and the parent node that forms; a physical namespace invisible to the clients of the plurality of nodes, the physical namespace implemented through the plurality of volumes, each volume having an internal hierarchy that connects file system objects through hard links including the hard link in the relocation directory of the data storage volume; and a logical namespace visible to the clients of the plurality of nodes that spans the entire file system across volumes and is made of file system objects connected via hard links and logical links such that the difference between hard links and logical links is hidden from the clients.
-
-
37. Apparatus comprising at least one non-transitory tangible computer readable medium encoded with instructions which, when loaded into a computer, establish processes for operating as a cluster node in a file server cluster having a plurality of interconnected cluster nodes, each of which has access to a plurality of logical storage volumes, to provide access by clients, in communication with the nodes, to data on the volumes, the instructions comprising:
-
instructions for storing file system objects in a data storage volume, each file system object having a unique parent node, the data storage volume deemed to be owned by the cluster node such that only the cluster node is permitted to write to the data storage volume; instructions for storing, in at least one directory, logical references to file system objects stored in data storage volumes owned by other cluster nodes for which the cluster node is considered to be the parent node; and instructions for storing, in the at least one directory, hard references to file system objects stored in the data storage volume for which another cluster node is considered to be the parent node; each of said hard references including a hard link to a file system object created in a relocation directory of the data storage volume and a unique association between the hard link and a logical identifier used by the parent node to symbolically identify the file system object, wherein the hard link increases a reference count associated with the file system object in the data storage volume independent of the disposition of the logical identifier in the parent node such that the data storage volume is self-contained while allowing the file system object to be accessed symbolically from the parent node using the logical identifier without a physical cross-volume link, and wherein the hard link, the logical identifier, and the unique association between the hard link and the logical identifier represents a logical link between the data storage volume and the parent node that forms; a physical namespace invisible to the clients of the plurality of nodes, the physical namespace implemented through the plurality of volumes, each volume having an internal hierarchy that connects file system objects through hard links including the hard link in the relocation directory of the data storage volume; and a logical namespace visible to the clients of the plurality of nodes that spans the entire file system across volumes and is made of file system objects connected via hard links and logical links such that the difference between hard links and logical links is hidden from the clients.
-
Specification