Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
First Claim
Patent Images
1. A distributed data storage system comprising:
- a plurality of physical storage volumes for storing files of data identified by a single file system;
a network;
a plurality of storage nodes, coupled to said network, each one of said storage nodes for conducting storage operations including read and write operation on said files of data stored on said physical storage volumes, the plurality of files of data being distributed across the plurality of physical storage volumes by distributing both namespace and data across the plurality of storage nodes, each of the plurality of storage nodes for managing a subset of inode numbers, each inode number identifying a different inode uniquely identifying a different one of the files of data in the single file system, each storage node storing a list of the subset of inode number managed by each of the plurality of storage nodes to provide the single file system across each of the plurality of storage nodes; and
a load balancing switch, coupled to said network and to said storage nodes, for receiving a request from a client to conduct a selected one of the storage operations on an identified one of the plurality of files in said single file system and for selecting one of said storage nodes to process said selected one of the storage operations, the one of said storage nodes to process said selected one of the storage operations also being to perform a mounting of the distributed file system, the mounting including obtaining a respective inode to a root directory and generating a client file handle to the root directory and mount table, wherein said selected node globally and atomically updates mount table of the plurality of storage nodes, the mounting also including transmitting to the client the file handle to the root directory, the respective inode uniquely identifying the root directory.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed data storage system stores a single image file system across a plurality of physical storage volumes. The physical storage may be direct attached storage, or may be coupled through a storage area network (“SAN”). One or more clients communicate with a plurality of storage nodes through a network. A client of the distributed data storage system transmits a request over the network for a file identified in the file system. A load-balancing switch selects one of the storage nodes to process the request. The storage node accesses at least one of the physical volumes and transmits a response for the storage operation to the client.
-
Citations
12 Claims
-
1. A distributed data storage system comprising:
-
a plurality of physical storage volumes for storing files of data identified by a single file system; a network; a plurality of storage nodes, coupled to said network, each one of said storage nodes for conducting storage operations including read and write operation on said files of data stored on said physical storage volumes, the plurality of files of data being distributed across the plurality of physical storage volumes by distributing both namespace and data across the plurality of storage nodes, each of the plurality of storage nodes for managing a subset of inode numbers, each inode number identifying a different inode uniquely identifying a different one of the files of data in the single file system, each storage node storing a list of the subset of inode number managed by each of the plurality of storage nodes to provide the single file system across each of the plurality of storage nodes; and a load balancing switch, coupled to said network and to said storage nodes, for receiving a request from a client to conduct a selected one of the storage operations on an identified one of the plurality of files in said single file system and for selecting one of said storage nodes to process said selected one of the storage operations, the one of said storage nodes to process said selected one of the storage operations also being to perform a mounting of the distributed file system, the mounting including obtaining a respective inode to a root directory and generating a client file handle to the root directory and mount table, wherein said selected node globally and atomically updates mount table of the plurality of storage nodes, the mounting also including transmitting to the client the file handle to the root directory, the respective inode uniquely identifying the root directory. - View Dependent Claims (2, 3, 4)
-
-
5. A method for selecting storage nodes in a distributed data storage system, said method comprising the steps of:
-
storing a plurality of files of data identified by a single file system in a plurality of physical storage volumes; coupling said physical storage volumes to a plurality of storage nodes; coupling said storage nodes to a load balancing switch; coupling said load balancing switch to a network; receiving a request from a client at said load balancing switch to conduct a selected one of a plurality of storage operations on an identified one of the plurality of files in said plurality of files of data, the plurality of files being distributed across the plurality of physical storage volumes by distributing both namespace and data across the plurality of storage nodes; managing, by each of the plurality of storage nodes, a subset of inode numbers, each inode number identifying a different inode uniquely identifying a different one of the files of data in the single file system; storing, in each storage node, a list of the subset of inode numbers managed by each of the plurality of storage nodes to provide said single file system across each of the plurality of storage nodes; selecting, at said load balancing switch, one of said storage nodes to process said selected one of the storage operations on an identified one of the plurality of files in said single file system and for selecting one of said storage nodes to process said selected one of the storage operations, the one of said storage nodes to process said selected one of the storage operations also being to perform a mounting of the distributed file system, the mounting including obtaining a respective inode to a root directory and generating a client file handle to the root directory and mount table, wherein said selected node globally and atomically updates mount table of the plurality of storage nodes, the mounting also including transmitting to the client the file handle to the root directory, the respective inode uniquely identifying the root directory; and conducting the plurality of storage operations including read and write operations on said files of said file system stored on said physical storage volumes. - View Dependent Claims (6, 7, 8)
-
-
9. A computer readable medium for storing a plurality of instructions, which when executed by a computer system, cause the computer to perform the steps of:
-
storing a plurality of files of data identified by a singe file system in a plurality of physical storage volumes; coupling said physical storage volumes to a plurality of storage nodes; coupling said storage nodes to a load balancing switch; coupling said load balancing switch to a network; receiving a request from a client at said load balancing switch to conduct a selected one of a plurality of storage operations on an identified one of the files in said plurality of files of data, the plurality of file of data being distributed across the plurality of physical storage volumes by distributing both namespace and data across the plurality of storage nodes; managing, by each of the plurality of storage nodes, a subset of inode numbers, each inode number identifying a different inode uniquely identifying a different one of the plurality of files of data in the single file system; storing, in each storage node, a list of the subset of inode numbers managed by each of the plurality of storage nodes to provide said single file system across each of the plurality of storage nodes; selecting, at said load balancing switch, one of said storage nodes to process said selected one of the storage operations on an identified one of the plurality of files in said single file system and for selecting one of said storage nodes to process said selected one of the storage operations, the one of said storage nodes to process said selected one of the storage operations also being to perform a mounting of the distributed file system, the mounting including obtaining a respective inode to a root directory and generating a client file handle to the root directory and mount table, wherein said selected node globally and atomically updates mount table of the plurality of storage nodes, the mounting also including transmitting to the client the file handle to the root directory, the respective inode uniquely identifying the root directory; and conducting the plurality of storage operations including read and write operations on said plurality of files of said file system stored on said physical storage volumes. - View Dependent Claims (10, 11, 12)
-
Specification