Claims
- 1. In a network that includes a first server having a first mass storage device and a second server having a second mass storage device, a method of mirroring data stored on the first mass storage device to the second mass storage device so as to establish a virtual storage area network, the method comprising the acts of:
receiving a write request at the first server; executing the write request at the first server so as to write data to the first mass storage device; using a mirror engine of the first server, transmitting a copy of the write request to the second server; and executing the copy of the write request at the second server so as to write the data to the second mass storage device, thereby mirroring the data at the second mass storage device, wherein the data, from the standpoint of the first server and the second server, virtually appears to have been stored in a shared storage node of a storage area network.
- 2. A method of mirroring data as recited in claim 1, wherein the act of transmitting a copy of the write request comprises the act of transmitting the copy of the write request using a dedicated link between the first server and the second server.
- 3. A method of mirroring data as recited in claim 1, wherein the act of transmitting a copy of the write request comprises the act of transmitting the copy of the write request using infrastructure of the network, wherein the infrastructure is also used by the network to transmit data between workstations and servers.
- 4. A method of mirroring data as recited in claim 1, further comprising the acts of:
experiencing a failure such that the data is not accessible from the first mass storage device; and executing a read request for data that has been written to the first mass storage device by accessing the data that has been mirrored at the second mass storage device.
- 5. A method of mirroring data as recited in claim 4, wherein the failure comprises the first server going offline.
- 6. A method of mirroring data as recited in claim 4, wherein the failure comprises a failure of the first mass storage device.
- 7. A method of mirroring data as recited in claim 1, further comprising the act of using a policing protocol, prior to the act of executing the write request at the first server, to determine whether the first server has write access.
- 8. A method of mirroring data as recited in claim 3, wherein the act of executing the write request at the first server comprises the act of using an I/O driver at the first server to initiate execution of the write request, wherein, from the standpoint of the I/O driver, the write request virtually appears to have been stored in a shared storage node of a storage area network.
- 9. In a network that includes a first server having a first mass storage device and a second server having a second mass storage device, a method of mirroring data stored on the first mass storage device to the second mass storage device so that the data is accessible to the first server and the second server through a virtual storage area network, the method comprising the acts of
establishing a virtual storage area network that, from the standpoint of the first server and the second server, appears to include a virtual shared storage node, wherein the virtual shared storage node physically includes the first mass storage device, the second mass storage device, means for mirroring data between the first mass storage device and the second mass storage device, and means for communicating between the first server and the second server; receiving a write request that specifies that data is to be written to the virtual shared storage node; writing the data to the first mass storage device, the data at the first mass storage device being accessible by the first server; and transmitting a copy of the write request to the second server so that the data can be mirrored to the second mass storage device, the data at the second mass storage device being accessible by the second server.
- 10. A method of mirroring data as recited in claim 9, wherein said means for mirroring data comprises a first mirror engine associated with the first server and a second mirror engine associated with the second server.
- 11. A method of mirroring data as recited in claim 9, wherein the act of transmitting a copy of the write request comprises the act of using the first mirror engine to initiate transmission of the copy of the write request to the second mirror engine.
- 12. A method of mirroring data as recited in claim 9, wherein the means for communicating comprises a dedicated link for transmitting data between the first server and the second server.
- 13. A method of mirroring data as recited in claim 9, wherein the means for communicating comprises infrastructure of the network, wherein the infrastructure is also used by the network to transmit data between workstations and servers.
- 14. A method of mirroring data as recited in claim 9, further comprising the acts of:
experiencing a failure such that data is not accessible from the second mass storage device; executing a read request for other data, wherein the other data has been stored in the virtual shared storage node in response to the second server having received a write request specifying that said other data is to be written to the virtual shared storage node, the read request being executed by accessing the data from the virtual shared storage node.
- 15. A method of mirroring data as recited in claim 14, wherein executing the read request by accessing the data from the virtual shared storage node comprises the act of accessing the data from the first mass storage device.
- 16. In a first server having a first mass storage device, the first server being included in a network that also includes a second server having a second mass storage device, a method of mirroring data stored on the first mass storage device to the second mass storage device so as to establish a virtual storage area network, the method comprising the acts of:
receiving a write request at the first server; using a policing protocol module associated with the first server, determining that the second server does not currently have write access priority to a portion of the first mass storage device or a portion of the second mass storage device that could otherwise result in data corruption; executing the write request at the first server so as to write data to said portion first mass storage device; using a mirror engine of the first server, transmitting a copy of the write request to the second server so that the data can be written to the second mass storage device, thereby enabling both the first server and the second server to access the data, wherein the data, from the standpoint of the first server and the second server, appears to have been stored in a shared storage node of a storage area network.
- 17. A method of mirroring data as recited in claim 16, wherein the act of using the policing protocol module comprises the act of the first server communicating to the second server to determine that the second server does not currently have write access priority.
- 18. A method of mirroring data as recited in claim 17, wherein the act of communicating is performed by communicating over infrastructure of the network, wherein the infrastructure is also used by the network to transmit data between workstations and servers.
- 19. A method of mirroring data as recited in claim 16, further comprising the acts of:
experiencing a failure such that data is not accessible from the second mass storage device; executing a read request for other data, wherein the other data has been mirrored to the first mass storage device in response to the second server having received another write request specifying that said other data is to be stored, the read request being executed by accessing the data from the first mass storage device.
- 20. A virtual storage area network that enables a first server and a second server to access the same data from physically different mass storage devices, the virtual shared access network comprising:
a first server that is capable of receiving write requests and read requests from network clients, the first server having:
a first mass storage device; and a first mirror engine; a second server that is capable of receiving write requests and read requests from network clients, the second server having:
a second mass storage device; and a second mirror engine; and a means for communicating between the first mirror engine and the second mirror engine that enables the first mirror engine to mirror to the second mass storage device first data that is also to be written to the first mass storage device and that further enables the second mirror engine to mirror to the first mass storage device second data that is also to be written to the second mass storage device, thereby enabling the first server and the second server to access the same data from physically different mass storage devices.
- 21. A virtual storage area network as recited in claim 20, wherein the means for communicating comprises a dedicated link between the first mirror engine and the second mirror engine.
- 22. A virtual storage area network as recited in claim 20, wherein the means for communicating is included in infrastructure of the network, wherein the infrastructure is also used by the network to transmit data between workstations and servers.
- 23. A virtual storage area network as recited in claim 20, further comprising a third server that is capable of receiving write requests and read requests from network clients, the third server having:
a third mass storage device; and a third mirror engine, wherein the third mirror engine is capable of mirroring, to the first mass storage device and the second mass storage device, data that is to be written to the third mass storage device.
- 24. A virtual storage area network as recited in claim 23, further comprising means for communicating between the third server and the first server and also between the third server and the second server.
- 25. A virtual storage area network as recited in claim 20, wherein the first server and the second server execute a policing protocol to determine whether a server, upon receiving a write request, has write access priority for writing data to the first mass storage device and the second mass storage device.
- 26. A virtual storage area network as recited in claim 25, wherein the policing protocol enables the first server and the second server to write data to a particular portion of the first mass storage device and the second mass storage device in response to a write request if and only if the write request has priority over any other write request that might be pending for the particular portion of the first mass storage device and the second mass storage device.
- 27. A virtual storage area network as recited in claim 25, wherein:
the first server further has a first policing protocol module; and the second server further has a second policing protocol module, wherein the first policing protocol module and the second policing protocol module are used together to execute the policing protocol.
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/271,585, entitled “Operation of Standby Server to Preserve Data Stored By a Network Server,” filed Mar. 18, 1999, which is a continuation of U.S. patent application Ser. No. 08/848,139, filed Apr. 28, 1997, entitled “Method for Rapid Recovery from a Network File Server Failure Including Method for Operating Co-Standby Servers,” now issued as U.S. Pat. No. 5,978,565. The foregoing patent and patent application are incorporated herein by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
08848139 |
Apr 1997 |
US |
Child |
09271585 |
Mar 1999 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09271585 |
Mar 1999 |
US |
Child |
09892161 |
Jun 2001 |
US |