Mechanism for reliable update of virtual disk device mappings without corrupting data
First Claim
1. A distributed computing system comprising:
- a first node, a second node, and a third node coupled via a communication link;
a storage device connected to said second and third nodes and configured to store data;
a database for storing data, wherein said data comprises mapping data identifying said second node as a primary node for accessing said storage device and said third node as an alternate node for accessing said storage device;
wherein said first node is configured to store an instance of the database and to access said storage device using the mapping data; and
wherein in response to said mapping data being updated, said first node stops issuing data requests to said storage device prior to said mapping data being updated, and said first node resumes issuing data requests to said storage device after said mapping data is updated.
0 Assignments
0 Petitions
Accused Products
Abstract
A cluster implements a virtual disk system that provides each node of the cluster access to each storage device of the cluster. The virtual disk system provides high availability such that a storage device may be accessed and data access requests are reliably completed even in the presence of a failure. To ensure consistent mapping and file permission data among the nodes, data are stored in a highly available cluster database. Because the cluster database provides consistent data to the nodes even in the presence of a failure, each node will have consistent mapping and file permission data. A cluster transport interface is provided that establishes links between the nodes and manages the links. Messages received by the cluster transports interface are conveyed to the destination node via one or more links. The configuration of a cluster may be modified during operation. Prior to modifying the configuration, a reconfiguration procedure suspends data access requests and waits for pending data access requests to complete. The reconfiguration is performed and the mapping is modified to reflect the new configuration. The node then updates the internal representation of the mapping and resumes issuing data access requests.
28 Citations
22 Claims
-
1. A distributed computing system comprising:
-
a first node, a second node, and a third node coupled via a communication link;
a storage device connected to said second and third nodes and configured to store data;
a database for storing data, wherein said data comprises mapping data identifying said second node as a primary node for accessing said storage device and said third node as an alternate node for accessing said storage device;
wherein said first node is configured to store an instance of the database and to access said storage device using the mapping data; and
wherein in response to said mapping data being updated, said first node stops issuing data requests to said storage device prior to said mapping data being updated, and said first node resumes issuing data requests to said storage device after said mapping data is updated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of updating mapping data for accessing a storage device within a distributed computing system comprising a plurality of nodes, the method comprising:
-
said nodes storing a copy of said mapping data, wherein said mapping data identifies a primary node and an alternate node of the plurality of nodes for accessing said storage device;
providing an indication to said nodes that an update of said mapping data is pending;
said nodes suspending data requests to said storage device in response to said indication that an update of said mapping data is pending;
said nodes waiting for outstanding data requests issued to said storage device to complete;
said nodes invalidating the stored copy of the mapping data;
said nodes producing acknowledge signals when the outstanding data requests issued to said storage device are complete;
updating said mapping data when said acknowledge signals are received from said nodes;
providing an indication to said nodes that said update is complete;
said nodes requesting an updated copy of said mapping data in response to said indication that said update is complete; and
said nodes resuming sending said data requests to said storage device. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of updating mapping data for accessing a storage device within a distributed computing system comprising a plurality of nodes, the method comprising:
-
said nodes storing a copy of said mapping data, wherein said mapping data identifies a primary node and an alternate node of the plurality of nodes for accessing said storage device;
providing an indication to said nodes that an update of the mapping data is pending;
said nodes suspending data requests to said storage device in response to said indication to said nodes that an update of the mapping data is pending;
updating said mapping data;
providing an indication to said nodes that said update is complete; and
said nodes resuming sending said data requests to said storage device. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
said nodes waiting for outstanding data requests issued to said storage device to complete; and
said nodes producing acknowledge signals when the outstanding data requests issued to said storage device are complete.
-
-
16. The method of claim 15 further comprising:
said nodes invalidating the stored copy of the mapping data.
-
17. The method of claim 16 further comprising said nodes requesting an updated copy of said mapping data in response to said indication that said update is complete.
-
18. The method of claim 14 wherein if an acknowledge signal is not received from one of said nodes, a cancel indication is provided to said nodes to reactivate said stored copy of the mapping data.
-
19. The method of claim 18 wherein said indications to said nodes are synchronization signals.
-
20. The method of claim 19 wherein said synchronization signals are issued to said nodes concurrently.
-
21. The method of claim 20 whereby said mapping data is updated without losing or corrupting data.
-
22. A computer-readable storage medium comprising program instructions for updating mapping data for accessing a storage device within a distributed computing system comprising a plurality of nodes, wherein said program instructions execute on the plurality of nodes of the distributed computing system and said program instructions are operable to implement the steps of:
-
said nodes storing a copy of said mapping data, wherein said mapping data identifies a primary node and an alternate node of the plurality of nodes for accessing said storage device;
providing an indication to said nodes that an update of the mapping data is pending;
said nodes suspending data requests to said storage device in response to indication to said nodes that an update of the mapping data is pending;
said nodes waiting for outstanding data requests issued to said storage device to complete;
said nodes invalidating the stored copy of the mapping data;
said nodes providing acknowledge signals when the outstanding data requests issued to said storage device are complete;
updating said mapping data when said acknowledge signals are received from said nodes;
outputting an indication to said nodes that said update is complete;
said nodes requesting an updated version of said mapping data in response to said indication that said update is complete; and
said nodes resuming sending said data requests to said storage device.
-
Specification