Methods and apparatus for load balancing storage nodes in a distributed storage area network system
First Claim
Patent Images
1. A distributed data storage system comprising:
- a plurality of physical storage volumes for storing a plurality of files of data identified by a single file system, the files of data being distributed over the plurality of physical storage volumes;
storage area network (“
SAN”
) for coupling said physical storage volumes;
client network;
a plurality of storage nodes, coupled to said client network and to said storage area network, each one of said storage nodes for conducting storage operations on said files of said file system stored on said physical storage volumes; and
load balancing switch, coupled to said network and to said storage nodes, for receiving a request from a client to conduct a storage operation on a file identified in said file system and for selecting one of said storage nodes to process said storage operation, each of the storage nodes including a respective data structure in which respective ones of the plurality of files of data identified by the single file system are associated with respective ones of the storage nodes that manage the respective ones of the plurality of files of data identified by the single file system, the respective data structure in each respective storage node being atomically updated;
the one of the storage nodes selected by the load balancing switch to process the storage operation being to (1) determine, from the respective data structure in a respective storage node, a managing storage node that manages the file identified in said file system on which the client requested conducting of the requested storage operation, and (2) query the managing storage node for a lock on the file identified in said file system on which the client requested the conducting of the requested storage operation, the managing storage node being a different storage node from the one of the storage nodes selected by the load balancing switch to process the storage operation;
if the lock is not available, the managing storage node attempts to revoke a previously existing lock on the file identified in said file system on which the client requested the conducting of the requested storage operation;
if the managing storage node is able to revoke the previously existing lock, the managing storage node makes a lock assignment, to the one of the storage nodes selected by the load balancing switch to process the storage operation, for the file identified in said file system on which the client requested the conducting of the requested storage operation; and
if the managing storage node is unable to revoke the previously existing lock, the distributed data storage system transmits an error message to the client that the file identified in said file system on which the client requested the conducting of the requested storage operation is currently unavailable for the requested storage operation.
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
24 Claims
-
1. A distributed data storage system comprising:
-
a plurality of physical storage volumes for storing a plurality of files of data identified by a single file system, the files of data being distributed over the plurality of physical storage volumes; storage area network (“
SAN”
) for coupling said physical storage volumes;client network; a plurality of storage nodes, coupled to said client network and to said storage area network, each one of said storage nodes for conducting storage operations on said files of said file system stored on said physical storage volumes; and load balancing switch, coupled to said network and to said storage nodes, for receiving a request from a client to conduct a storage operation on a file identified in said file system and for selecting one of said storage nodes to process said storage operation, each of the storage nodes including a respective data structure in which respective ones of the plurality of files of data identified by the single file system are associated with respective ones of the storage nodes that manage the respective ones of the plurality of files of data identified by the single file system, the respective data structure in each respective storage node being atomically updated; the one of the storage nodes selected by the load balancing switch to process the storage operation being to (1) determine, from the respective data structure in a respective storage node, a managing storage node that manages the file identified in said file system on which the client requested conducting of the requested storage operation, and (2) query the managing storage node for a lock on the file identified in said file system on which the client requested the conducting of the requested storage operation, the managing storage node being a different storage node from the one of the storage nodes selected by the load balancing switch to process the storage operation; if the lock is not available, the managing storage node attempts to revoke a previously existing lock on the file identified in said file system on which the client requested the conducting of the requested storage operation; if the managing storage node is able to revoke the previously existing lock, the managing storage node makes a lock assignment, to the one of the storage nodes selected by the load balancing switch to process the storage operation, for the file identified in said file system on which the client requested the conducting of the requested storage operation; and if the managing storage node is unable to revoke the previously existing lock, the distributed data storage system transmits an error message to the client that the file identified in said file system on which the client requested the conducting of the requested storage operation is currently unavailable for the requested storage operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for storing files in a distributed data storage system, said method comprising:
-
storing a plurality of files of data identified by a single file system in a plurality of physical storage volumes, the files of data being distributed over the plurality of physical storage volumes; coupling said physical storage volumes through a storage area network (“
SAN”
);coupling said SAN to a plurality of storage nodes; coupling said storage nodes to a load balancing switch; coupling said load balancing switch to a client network; receiving a request from a client at said load balancing switch to conduct a storage operation on a file identified in said file system; selecting, at said load balancing switch, one of said storage nodes to process said storage operation; and
conducting storage operations on said files of said file system stored on said physical storage volumes;each of the storage nodes including a respective data structure in which respective ones of the plurality of files of data identified by the single file system are associated with respective ones of the storage nodes that manage the respective ones of the plurality of file of data identified by the single file system, the respective data structure in each respective storage node being atomically updated; the one of the storage nodes selected by the load balancing switch to process the storage operation being to (1) determine, from the respective data structure in a respective storage node, a managing storage node that manages the file identified in said file system on which the client requested conducting of the requested storage operation, and (2) query the managing storage node for a lock on the file identified in said file system on which the client requested the conducting of the requested storage operation, the managing storage node being a different storage node from the one of the storage nodes selected by the load balancing switch to process the storage operation; if the lock is not available, the managing storage node attempts to revoke a previously existing lock on the file identified in said file system on which the client requested the conducting of the requested storage operation; if the managing storage node is able to revoke the previously existing lock, the managing storage node makes a lock assignment, to the one of the storage nodes selected by the load balancing switch to process the storage operation, for the file identified in said file system on which the client requested the conducting of the requested storage operation; and if the managing storage node is unable to revoke the previously existing lock, transmitting an error message to the client that the file identified in said file system on which the client requested the conducting of the requested storage operation is currently unavailable for the requested storage operation. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer readable medium comprising at least one of:
- read only memory, random access memory, and a disk, the medium being for storing a plurality of instructions, which when executed by a computer system, causes the computer to perform;
storing a plurality of files of data identified by a single file system in a plurality of physical storage volumes, the files of data being distributed over the plurality of physical storage volumes; coupling said physical storage volumes through a storage area network (“
SAN”
);coupling said SAN to a plurality of storage nodes; coupling said storage nodes to a load balancing switch; coupling said load balancing switch to a client network; receiving a request from a client at said load balancing switch to conduct a storage operation on a file identified in said file system; selecting, at said load balancing switch, one of said storage nodes to process said storage operation; and
conducting storage operations on said files of said file system stored on said physical storage volumes;each of the storage nodes including a respective data structure in which respective ones of the plurality of files of data identified by the single file system are associated with respective ones of the storage nodes that manage the respective ones of the plurality of file of data identified by the single file system, the respective data structure in each respective storage node being atomically updated; the one of the storage nodes selected by the load balancing switch to process the storage operation being to (1) determine, from the respective data structure in a respective storage node, a managing storage node that manages the file identified in said file system on which the client requested conducting of the requested storage operation, and (2) query the managing storage node for a lock on the file identified in said file system on which the client requested the conducting of the requested storage operation, the managing storage node being a different storage node from the one of the storage nodes selected by the load balancing switch to process the storage operation; if the lock is not available, the managing storage node being to attempt attempts to revoke a previously existing lock on the file identified in said file system on which the client requested the conducting of the requested storage operation; if the managing storage node is able to revoke the previously existing lock, the managing storage node being to make makes a lock assignment, to the one of the storage nodes selected by the load balancing switch to process the storage operation, for the file identified in said file system on which the client requested the conducting of the requested storage operation; and if the managing storage node is unable to revoke the previously existing lock, transmitting an error message to the client that the file identified in said file system on which the client requested the conducting of the requested storage operation is currently unavailable for the requested storage operation. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
- read only memory, random access memory, and a disk, the medium being for storing a plurality of instructions, which when executed by a computer system, causes the computer to perform;
Specification