Mechanism for reliable update of virtual disk device mappings without corrupting data
First Claim
1. A distributed computing system comprising:
- one or more nodes coupled to a communication link and one or more storage devices coupled to said one or more nodes wherein said one or more nodes include one or more devices; and
a highly available database accessible by said one or more nodes, wherein said database provides coherent data to said one or more nodes in the presence of a failure;
wherein a mapping of said one or more devices to said one or more storage devices is stored in said highly available database;
wherein when said mapping is updated, said one or more nodes stop issuing data requests to said one or more storage devices prior to said highly available database updating said mapping, and said one or more nodes resume issuing data requests when said mapping is updated;
wherein said nodes send an acknowledge signal to said highly available database when said nodes have stopped issuing data requests.
2 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.
-
Citations
21 Claims
-
1. A distributed computing system comprising:
-
one or more nodes coupled to a communication link and one or more storage devices coupled to said one or more nodes wherein said one or more nodes include one or more devices; and a highly available database accessible by said one or more nodes, wherein said database provides coherent data to said one or more nodes in the presence of a failure; wherein a mapping of said one or more devices to said one or more storage devices is stored in said highly available database; wherein when said mapping is updated, said one or more nodes stop issuing data requests to said one or more storage devices prior to said highly available database updating said mapping, and said one or more nodes resume issuing data requests when said mapping is updated; wherein said nodes send an acknowledge signal to said highly available database when said nodes have stopped issuing data requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of updating a mapping of nodes to storage devices, comprising:
-
storing said mapping in a highly available database wherein said database is accessible by said nodes and provides coherent data to said nodes in the presence of a failure; said database outputting an indication to said nodes that an updated mapping is pending; said nodes suspending data requests to said storage devices; said nodes waiting for outstanding data requests to complete; said nodes invalidating an internal representation of said mapping; said nodes outputting acknowledge signals to said database; said database waiting for said acknowledge signals from active nodes; said database updating said mapping; said database outputting an indication to said nodes that said update is complete; said nodes requesting an updated version of said mapping from said database; and said nodes resuming sending said data requests to said storage devices. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of updating a mapping of nodes to storage devices, comprising:
-
storing said mapping in a highly available database wherein said database is a accessible by said nodes and provides coherent data to said nodes in the presence of a failure; said database outputting an indication to said nodes that an updated mapping is pending; said nodes suspending data requests to said storage devices; said nodes outputting acknowledge signals to said database; said database waiting for said acknowledge signals from said active nodes; said database updating said mapping; said database outputting an indication to said nodes that said update is complete; and said nodes resuming sending said data requests to said storage devices. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A computer-readable storage medium comprising program instructions for updating a mapping of nodes to storage devices, wherein said program instructions execute on a plurality of nodes of a distributed computing system and said program instructions are operable to implement the steps of:
-
storing said mapping in a highly available database wherein said database is accessible by said nodes and provides coherent data to said nodes in the presence of a failure; said database outputting an indication to said nodes that an updated mapping is pending; said nodes suspending data requests to said storage devices; said nodes waiting for outstanding data requests to complete; said nodes invalidating an internal representation of said mapping; said nodes outputting acknowledge signals to said database; said database waiting for said acknowledge signals from active nodes; said database updating said mapping; said database outputting an indication to said nodes that said update is complete; said nodes requesting an updated version of said mapping from said database; and said nodes resuming sending said data requests to said storage devices.
-
Specification