System and method for managing hard and soft lock state information in a distributed storage system environment
First Claim
1. A method of managing lock state information in a system including a plurality of data volumes of a striped volume set, comprising:
- connecting two or more nodes together to form a cluster, t each node in the cluster being associated with least one data volume of the plurality of data volumes and each data volume is a logical arrangement of a plurality of storage devices connected to one of the nodes;
striping one or more data containers across the plurality of volumes in the striped volume set;
configuring a meta-data volume node that includes a lock state database that stores lock state information for one or more data containers on the striped volume set; and
communicating the lock state information including an input/output operation result for input/output requests from said meta-data volume node to one or more data volume nodes of the system, using lock state command messages;
in response to said meta-data volume receiving a client request to add a new lock to a file in a striped volume environment, consulting at said meta-data volume node, a striping table to determine striping rules for said file;
using striping rules from said striping table, and a file range of the new lock being added, and determining at said meta-data volume, which data volume nodes are impacted by the addition of the new lock; and
for each such data volume node listed in a list of impacted data volume nodes, performing at said meta-data volume the following;
if the new lock overlaps with a byte range with no locks present, or locks which are marked as having been cached by the data volume node in question, then the meta-data volume node sends a message to that data volume node, informing it of the new lock and that the file range covered by the new lock is invalid.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method manages lock state information in a storage system. A meta-data volume node includes a lock state database which is a comprehensive source for lock state information about data containers in the system. A plurality of data volume nodes include local lock caches, which contain information about locks. Lock state messaging between the meta-data volume node and the data volume nodes is used to assign locks and to update local lock caches. The meta-data volume node is configured to determine whether input/output requests should be allowed or denied and to instruct the data volume nodes of this input/output operation result. Lock information is also sent to the data volume nodes for storage in local lock state caches to the extent the data volume nodes have the network capacity locally.
-
Citations
24 Claims
-
1. A method of managing lock state information in a system including a plurality of data volumes of a striped volume set, comprising:
-
connecting two or more nodes together to form a cluster, t each node in the cluster being associated with least one data volume of the plurality of data volumes and each data volume is a logical arrangement of a plurality of storage devices connected to one of the nodes; striping one or more data containers across the plurality of volumes in the striped volume set; configuring a meta-data volume node that includes a lock state database that stores lock state information for one or more data containers on the striped volume set; and communicating the lock state information including an input/output operation result for input/output requests from said meta-data volume node to one or more data volume nodes of the system, using lock state command messages; in response to said meta-data volume receiving a client request to add a new lock to a file in a striped volume environment, consulting at said meta-data volume node, a striping table to determine striping rules for said file; using striping rules from said striping table, and a file range of the new lock being added, and determining at said meta-data volume, which data volume nodes are impacted by the addition of the new lock; and for each such data volume node listed in a list of impacted data volume nodes, performing at said meta-data volume the following;
if the new lock overlaps with a byte range with no locks present, or locks which are marked as having been cached by the data volume node in question, then the meta-data volume node sends a message to that data volume node, informing it of the new lock and that the file range covered by the new lock is invalid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of managing lock state information in a system including a plurality of data volumes of a striped volume set, comprising:
-
configuring a meta-data volume node that includes a lock state database that stores lock state information for one or more data containers on the striped volume set; communicating the lock state information including an input/output operation result for input/output requests from said meta-data volume node to one or more data volume nodes of the system, using lock state command messages; in response to said meta-data volume node receiving a request from a client for exclusive access to a range of a data container, searching said lock state database for conflicting locks, and if no such locks are found, granting a lock with respect to said range; constructing a lock state database structure in said lock state database, said lock state data structure adapted to send messages to a data volume node, the messages including information about the client requesting the exclusive access, a lock state access type, a lock access range and an input/output operation result; in response to said meta-data volume receiving a client request to add a new lock to a file in a striped volume environment, consulting at said meta-data volume node, a striping table to determine striping rules for said file; using striping rules from said striping table, and a file range of the new lock being added, and determining at said meta-data volume, which data volume nodes are impacted by the addition of the new lock; and for each such data volume node listed in a list of impacted data volume nodes, performing at said meta-data volume the following;
if the new lock overlaps with a byte range with no locks present, or locks which are marked as having been cached by the data volume node in question, then the meta-data volume node sends a message to that data volume node, informing it of the new lock and that the file range covered by the new lock is invalid.
-
-
15. A system configured to manage lock state information in a system, the system comprising:
-
two or more nodes connected together to form a cluster, each node in the cluster being associated with at least one data volume of a plurality of data volumes and each data volume is a logical arrangement of a plurality of storage devices connected to the node; one or more data containers striped across the plurality of volumes in a striped volume set; a plurality of data volume nodes adapted to receive data access requests from a client directed to a data container or range of the data container; and a meta-data volume node configured to communicate with said data volume nodes and configured to include a lock state database that stores lock state information for the data container, and to provide input/output operation results to data access requests received from a client at said data volume node;
a striping table to determine striping rules for files, said meta-data volume being configured to consult said striping table to determine striping rules for said file;
said meta-data volume being further configured to use striping rules from said striping table, and a file range of a new lock being added, to determine at said meta-data volume, which data volume nodes are impacted by the addition of the new lock;said meta-data volume being further configured to receive a message from a data volume regarding client requests for I/O operations, and the meta-data volume checks the lock state database for conflicting locks, and in response to said meta-data volume node finding that there are conflicting locks, then the meta-data volume nodes sends an acknowledgement to the data volume notifying the data volume of the existing conflicting lock and further indicating that the request should be denied; said meta-data volume node being further configured such that, if there are supporting locks then the meta-date volume sends an access request with supporting lock information and indicating that the request should be allowed; said meta-data volume node further configured to send an access request acknowledgment message indicating that I/O operation is permitted and a Boolean indication that the data volume issuing the request has all the locks associated with that range after which the data volume node completes the client request. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer readable storage medium containing executable program instructions executed by a processor, comprising:
-
program instructions that connect two or more nodes together to form a cluster, each node in the cluster being associated with at least one data volume of a plurality of data volumes and each data volume is a logical arrangement of a plurality of storage devices connected to the node storing each data volume; program instructions that stripe one or more data containers across the plurality of volumes in the striped volume set in accordance with a striping table containing striping rules; program instructions that configure a meta-data volume node that includes a lock state database that stores comprehensive lock state information for one or more data containers stored on the system; program instructions that communicate lock state information and input/output operation results between said meta-data volume node and one or more data volume nodes of said system, using lock state command messages, said instructions including the meta-data volume node receiving a message from a data volume node regarding client requests for I/O operations, program instructions that further configure said meta-data volume that in response to receiving a client request for a file in a striped environment, to consult a-at said meta-data volume node, a striping table to determine striping rules for files;
using said striping rules from said striping table, and a file range of a new lock being added, and determining at said meta-data volume, which data volume nodes are impacted by the addition of the new lock;program instructions that further provide that the meta-data volume checks the lock state database for conflicting locks, and in response to said meta-data volume node finding that there are conflicting locks, then the meta-data volume node sends an acknowledgement to the impacted data volume node notifying it of the existing conflicting locks, and further indicating that the request should be denied; program instructions that said meta-data volume node further checks the lock state database for supporting locks and if there are supporting locks then the meta-data volume node sends an access request to the impacted data volume node with supporting lock information and indicates that the request should be allowed; and said meta-data volume node further sends an access request acknowledgment message indicating that I/O operation is permitted and a Boolean indication that the impacted data volume issuing the request has the locks associated with that range after which the data volume node completes the client request. - View Dependent Claims (21, 22, 23, 24)
-
Specification