US5964886AExpiredUtility

Highly available cluster virtual disk system

Assignee: SUN MICROSYSTEMS INCPriority: May 12, 1998Filed: May 12, 1998Granted: Oct 12, 1999
Est. expiryMay 12, 2018(expired)· nominal 20-yr term from priority
G06F 11/201
89
PatentIndex Score
166
Cited by
9
References
23
Claims

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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A distributed computing system comprising: a first node, a second node, and a third node coupled to a communication link;   a storage device coupled to the second and third nodes and configured to store data;   wherein said first node is configured to access said storage device using a virtual disk system and to store mapping data, wherein said mapping data identifies a primary node for accessing said storage device and an alternate node for accessing said storage device;   wherein said first node includes a driver for issuing a data access request via said communication link, and wherein said second and third nodes each include a master configured to access data from said storage device and to convey a response via said communication link; and   wherein said driver is configured to send a data access request to said primary node identified by said mapping data.   
     
     
       2. The distributed computing system of claim 1 wherein said driver is configured to store a copy of said data access request until said driver receives said response. 
     
     
       3. The distributed computing system of claim 1 wherein said driver is further configured to resend said data access request to said alternate node identified by the mapping data if said driver fails to receive the response from said primary node. 
     
     
       4. The distributed computing system of claim 1 wherein said primary node is one of said second and third nodes, and wherein said alternate node is the other of said second and third nodes. 
     
     
       5. The distributed computing system of claim 1 wherein said mapping data identifies said second node as the primary node, and wherein said mapping data identifies said third node as the alternate node. 
     
     
       6. The distributed computing system of claim 1 wherein said virtual disk system is configured to make said storage device appear to be coupled to said first node. 
     
     
       7. The distributed computing system of claim 1 wherein said first node is further configured to store membership data comprising a list of active nodes. 
     
     
       8. The distributed computing system of claim 7 wherein if said list of active nodes does not include said primary node, said driver is configured to send the data access request to said alternate node. 
     
     
       9. A distributed computing system comprising: a first node, a second node, and a third node coupled to a communication link;   a storage device coupled to the second and third nodes and configured to store data;   wherein said first node is configured to access said storage device using a virtual disk system configured to make said storage device appear to be coupled to said first node;   wherein said first, second, and third nodes store identical copies of mapping data, wherein said mapping data identifies a primary node for accessing said storage device and an alternate node for accessing said storage device;   wherein said first node includes a driver for issuing a data access request via said communication link, and wherein said second and third nodes each include a master configured to access data from said storage device and to convey a response via said communication link; and   wherein said driver is configured to: (i) send a data access request to said primary node identified by the mapping data, and   (ii) resend said data access request to said alternate node identified by the mapping data if said driver fails to receive the response from said primary node.     
     
     
       10. The distributed computing system of claim 9 wherein said mapping data is updated when said first, second, or third node becomes inactive. 
     
     
       11. The distributed computing system of claim 10 wherein said driver is configured to suspend the sending said data access request when said mapping data is updated. 
     
     
       12. The distributed computing system of claim 11 wherein said driver is configured to resume the sending of said data access request following the updating of said mapping data. 
     
     
       13. The distributed computing system of claim 9 wherein said driver is configured to store a copy of said data access request until said driver receives said response. 
     
     
       14. The distributed computing system of claim 9 wherein said first, second, and third nodes are configured to store identical copies of a cluster configuration database comprising said mapping data. 
     
     
       15. A distributed computing system comprising: a first node, a second node, and a third node coupled to a communication link;   a storage device coupled to the second and third nodes and configured to store data;   wherein said first node is configured to access said storage device using a virtual disk system configured to make said storage device appear to be coupled to said first node;   wherein said first, second, and third nodes store identical copies of a cluster configuration database, wherein said cluster configuration database includes membership data, mapping data, and permission data, and wherein said membership data comprises a list of active nodes, and wherein said mapping data identifies a primary node for accessing said storage device and an alternate node for accessing said storage device, and wherein said permission data identifies users having permission to access said storage device;   wherein said first node includes a driver for issuing a data access request via said communication link, and wherein said second and third nodes each include a master configured to access data from said storage device and to convey a response via said communication link; and   wherein said driver is configured to direct a data access request dependent upon said membership data and said mapping data.   
     
     
       16. The distributed computing system of claim 15 wherein if said list of active nodes includes said primary node, said driver is configured to send the data access request to said primary node. 
     
     
       17. The distributed computing system of claim 15 wherein if said list of active nodes does not include said primary node, said driver is configured to send the data access request to said alternate node. 
     
     
       18. A distributed computing system comprising: a first node, a second node, and a third node coupled to a communication link;   a first storage device coupled to said second and third nodes and configured to store data;   a second storage device coupled to said third node and configured to store data;   wherein said first node is configured to access said first and second storage devices using a virtual disk system configured to make said first and second storage devices appear to be coupled to said first node;   wherein said first, second, and third nodes store identical copies of mapping data, wherein said mapping data identifies a primary node for accessing said first storage device and an alternate node for accessing said first storage device;   wherein said first node includes a driver for issuing a data access request via said communication link, and wherein said second and third nodes each include a master configured to access data from said first storage device and to convey a response via said communication link;   wherein said driver is configured to send a data access request to said primary node identified by said mapping data; and   a volume manager for managing said first and second storage devices, wherein said volume manager is layered above said virtual disk system or below said virtual disk system.   
     
     
       19. The distributed computing system of claim 18 wherein said volume manager is layered below said virtual disk system, wherein said virtual disk system is configured to access a volume, and wherein said volume is configured to access said first storage device or said second storage device. 
     
     
       20. The distributed computing system of claim 19 wherein said volume appears as a storage device to said virtual disk system. 
     
     
       21. The distributed computing system of claim 20 wherein said volume is a highly available storage device. 
     
     
       22. The distributed computing system of claim 18 wherein said volume manager is layered above said virtual disk system, wherein a client may access a volume which is configured to access a virtual disk of said virtual disk system. 
     
     
       23. The distributed computing system of claim 22 wherein said volume is configured to access two or more virtual disks.

Join the waitlist — get patent alerts

Track US5964886A — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.