| US 7,509,645 B2 | ||
| Methods and apparatus for load balancing storage nodes in a distributed network attached storage system | ||
| Joshua L. Coates, Orinda, Calif. (US); Patrick E. Bozeman, Berkeley, Calif. (US); Alfred Gary Landrum, San Francisco, Calif. (US); Peter D. Mattis, San Francisco, Calif. (US); Naveen Nalam, San Francisco, Calif. (US); and Drew S. Roselli, Berkeley, Calif. (US) | ||
| Assigned to Intel Corporation, Santa Clara, Calif. (US) | ||
| Filed on Feb. 13, 2003, as Appl. No. 10/367,541. | ||
| Claims priority of provisional application 60/419778, filed on Oct. 17, 2002. | ||
| Prior Publication US 2004/0078466 A1, Apr. 22, 2004 | ||
| Int. Cl. G06F 9/46 (2006.01); G06F 7/00 (2006.01); G06F 12/00 (2006.01); G06F 15/173 (2006.01) | ||
| U.S. Cl. 718—105 [707/10; 711/111; 709/226] | 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.
|