Method and apparatus for maintaining coherence among copies of a database shared by multiple computers
First Claim
1. In a computer system including first and second host computers and first and second storage systems, wherein the first storage system includes at least one physical storage device and is coupled to the first host computer to store data transferred from the first host computer to the first storage system and the second storage system includes at least one physical storage device and is coupled to the second host computer to store data transferred from the second host computer to the second storage system, a method of updating data stored on at least one of the first and second storage systems, the method comprising steps of:
- (A) updating a first logical volume of data stored on the first storage system by writing to the first logical volume a first set of data transferred from the first host computer to the first storage system;
(B) receiving, at the first storage system, a second set of data transmitted from the second storage system to the first storage system via at least one communication path that does not pass through the first host computer; and
(C) updating the first logical volume of data by writing to the first logical volume the second set of data transmitted from the second storage system.
7 Assignments
0 Petitions
Accused Products
Abstract
A method for use in a computer system including first and second computers and first and second storage systems, wherein the first storage system is coupled to the first computer to store data transferred from the first computer to the first storage system and the second storage system is coupled to the second computer to store data transferred from the second computer to the second storage system. The method is for updating data stored on at least one of the first and second storage systems, and includes updating a first logical volume of data stored on the first storage system with a first set of data transferred from the first computer to the first storage system; receiving, at the first storage system, a second set of data transmitted from the second storage system to the first storage system via at least one communication path that does not pass through the first computer; and updating the first logical volume of data with the second set of data transmitted from the second storage system.
126 Citations
61 Claims
-
1. In a computer system including first and second host computers and first and second storage systems, wherein the first storage system includes at least one physical storage device and is coupled to the first host computer to store data transferred from the first host computer to the first storage system and the second storage system includes at least one physical storage device and is coupled to the second host computer to store data transferred from the second host computer to the second storage system, a method of updating data stored on at least one of the first and second storage systems, the method comprising steps of:
-
(A) updating a first logical volume of data stored on the first storage system by writing to the first logical volume a first set of data transferred from the first host computer to the first storage system;
(B) receiving, at the first storage system, a second set of data transmitted from the second storage system to the first storage system via at least one communication path that does not pass through the first host computer; and
(C) updating the first logical volume of data by writing to the first logical volume the second set of data transmitted from the second storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
repeating the steps (B) and (C) each time the second logical volume is updated with data from the second host computer so that the first logical volume of data stored on the first storage system mirrors the second logical volume of data stored on the second storage system.
-
-
4. The method of claim 2, further including steps of:
-
(D) updating the second logical volume of data stored on the second storage system with the second set of data transferred from the second host computer to the second storage system; and
(E) transmitting the second set of data from the second storage system to the first storage system in response to the second set of data being transferred from the second host computer to the second storage system to update the second logical volume of data.
-
-
5. The method of claim 4, further including a step of:
(F) repeating the steps (B), (C), (D) and (E) each time the second logical volume is updated with data from the second host computer so that the first logical volume of data stored on the first storage system mirrors the second logical volume of data stored on the second storage system.
-
6. The method of claim 5, wherein the at least one communication path does not pass through the second host computer, and wherein the method further includes steps of:
-
(G) in response to the first logical volume of data being updated with the first set of data transferred from the first computer, transmitting the first set of data from the first storage system to the second storage system over the at least one communication path;
(H) receiving, at the second storage system, the first set of data transmitted from the first storage system to the second storage system via the at least one communication path; and
(I) updating the second logical volume of data stored on the second storage system with the second set of data transmitted from the first storage system.
-
-
7. The method of claim 6, further including a step of:
(J) repeating the steps (A), (G), (H) and (I) each time the first logical volume is updated with data from the first host computer so that the second logical volume of data stored on the second storage system mirrors the first logical volume of data stored on the second storage system.
-
8. The method of claim 2, wherein the first and second host computers include, respectively, first and second network servers connected to a network cloud, and wherein the method further includes a step of:
(D) serving data from at least one of the first and second logical volumes of data to a client via the network cloud.
-
9. The method of claim 2, wherein the first host computer includes a first Web server connected to the Internet, and wherein the method further includes a step of:
(D) implementing a first Web site on the first Web server, thereby giving Web users access to the first logical volume of data via the Internet.
-
10. The method of claim 1, wherein the at least one communication path does not pass through the second host computer, and wherein the method further includes a step of:
(D) in response to the first logical volume of data being updated with the first set of data transferred from the first host computer, transmitting the first set of data from the first storage system to the second storage system over the at least one communication path.
-
11. The method of claim 10, further including steps of:
-
(E) receiving, at the second storage system, the first set of data transmitted from the first storage system to the second storage system via the at least one communication path; and
(F) updating a second logical volume of data stored on the second storage system with the first set of data transmitted from the first storage system.
-
-
12. The method of claim 11, further including a step of:
(G) repeating the steps (A), (D), (E) and (F) each time the first logical volume is updated with data from the first host computer so that the second logical volume of data stored on the second storage system mirrors the first logical volume of data stored on the second storage system.
-
13. The method of claim 11, further including steps of:
-
(G) updating the second logical volume of data stored on the second storage system with the second set of data transferred from the second host computer to the second storage system; and
(H) in response to the second set of data being transferred from the second host computer to the second storage system to update the second logical volume of data, transmitting the second set of data from the second storage system to the first storage system.
-
-
14. The method of claim 1, wherein the at least one communication path includes a network cloud, and wherein the step (B) includes a step of receiving the second set of data via the network cloud.
-
15. The method of claim 1, wherein the at least one communication path includes at least one communication link dedicated to directly coupling the first and second storage systems, and wherein the step (B) includes a step of receiving the second set of data via the communication link.
-
16. The method of claim 15, wherein the at least one communication link includes multiple communication links dedicated to directly coupling the first and second storage systems, and wherein the step (B) includes a step of receiving the second set of data via at least one of the multiple communication links.
-
17. The method of claim 1, wherein the at least one communication path includes a data communication channel operable within a public communications network, and wherein the step (B) includes a step of receiving the second set of data via the data communication channel.
-
18. In a computer system including first and second computers and first and second storage systems, wherein the first storage system is coupled to the first computer to store data transferred from the first computer to the first storage system and the second storage system is coupled to the second computer to store data transferred from the second computer to the second storage system, and wherein the first computer includes a first Web server connected to the Internet, a method of updating data stored on at least one of the first and second storage systems, the method comprising steps of:
-
(A) updating a first logical volume of data stored on the first storage system with a first set of data transferred from the first computer to the first storage system;
(B) receiving, at the first storage system, a second set of data transmitted from the second storage system to the first storage system via at least one communication path that does not pass through the first computer, the step of receiving being in response to the second set of data being transferred from the second computer to the second storage system to update a second logical volume of data stored by the second storage system;
(C) updating the first logical volume of data with the second set of data transmitted from the second storage system; and
(D) implementing a first Web site on the first Web server, thereby giving Web users access to the first logical volume of data via the Internet;
wherein the second computer includes a second Web server connected to the Internet and implementing a second Web site, wherein the first and second Web sites share a common Internet address, wherein the computer system further includes at least one load controller coupled to at least one of the first and second servers to direct each Web user using the common Internet address to one of the first and second Web sites so that the first and second Web sites together act as a single virtual Web site; and
wherein the method further includes a step of;(E) in response to a Web user using the common Internet address to access the virtual Web site, directing the user to one of the first and second Web sites.
-
-
19. In a computer system including first and second host computers and first and second storage systems, wherein the first storage system includes at least one physical storage device and is coupled to the first host computer to store data transferred from the first host computer to the first storage system and the second storage system includes at least one physical storage device and is coupled to the second host computer to store data transferred from the second host computer to the second storage system, a method of managing data stored on at least one of the first and second storage systems, the method comprising steps of:
-
(A) in response to a first logical volume of data stored on the first storage system being updated by being written with a first set of data transferred from the first host computer to the first storage system, transmitting the first set of data from the first storage system to the second storage system over at least one communication path that does not pass through either of the first and second host computers;
(B) receiving, at the first storage system, a second set of data transmitted over the at least one communication path by the second storage system; and
(C) updating the first logical volume by writing to the first logical volume the second set of data transmitted over the at least one communication path. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
(D) repeating the steps (B) and (C) each time the second logical volume is updated with data from the second host computer so that the first logical volume of data stored on the first storage system mirrors the second logical volume of data stored on the second storage system.
-
-
22. The method of claim 20, further including steps of:
-
(D) transmitting the second set of data from the second storage system to the first storage system in response to the second set of data being transferred from the second host computer to the second storage system to update the second logical volume of data; and
(E) repeating the steps (B), (C), and (D) each time the second logical volume is updated with data from the second host computer so that the first logical volume of data stored on the first storage system mirrors the second logical volume of data stored on the second storage system.
-
-
23. The method of claim 22, further including steps of:
-
(F) receiving, at the second storage system, the first set of data transmitted from the first storage system to the second storage system via the at least one communication path; and
(G) updating the second logical volume of data stored on the second storage system with the second set of data transmitted from the first storage system.
-
-
24. The method of claim 23, further including a step of:
(H) repeating the steps (A), (F) and (G) each time the first logical volume is updated with data from the first host computer so that the second logical volume of data stored on the second storage system mirrors the first logical volume of data stored on the second storage system.
-
25. The method of claim 20, wherein the first and second host computers include, respectively, first and second network servers connected to a network cloud, and wherein the method further includes a step of:
(D) serving data from at least one of the first and second logical volumes of data to a client via the network cloud.
-
26. The method of claim 20, wherein the first host computer includes a first Web server connected to the Internet, and wherein the method further includes a step of:
(D) implementing a first Web site on the first Web server, thereby giving Web users access to the first logical volume of data via the Internet.
-
27. The method of claim 26, wherein the second host computer includes a second Web server connected to the internet and implementing a second Web site, wherein the first and second Web sites share a common Internet address, wherein the computer system further includes at least one load controller coupled to at least one of the first and second servers to direct each Web user using the common Internet address to one of the first and second Web sites so that the first and second Web sites together act as a single virtual Web site, and wherein the method further includes a step of:
(E) in response to a Web user using the common Internet address to access the virtual Web site, directing the user to one of the first and second Web sites.
-
28. The method of claim 19, further including steps of:
-
(D) receiving, at the second storage system, the first set of data transmitted from the first storage system to the second storage system via the at least one communication path; and
(E) updating a second logical volume of data stored on the second storage system with the first set of data transmitted from the first storage system.
-
-
29. The method of claim 28, further including a step of:
(F) repeating the steps (A), (D) and (E) each time the first logical volume is updated with data from the first host computer so that the second logical volume of data stored on the second storage system mirrors the first logical volume of data stored on the second storage system.
-
30. The method of claim 28, further including a step of:
(F) in response to the second set of data being transferred from the second host computer to the second storage system to update the second logical volume of data, transmitting the second set of data from the second storage system to the first storage system.
-
31. The method of claim 19, wherein the at least one communication path includes a network cloud, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via the network cloud; and
the step (B) includes a step of receiving the second set of data via the network cloud.
-
-
32. The method of claim 19, wherein the at least one communication path includes at least one communication link dedicated to directly coupling the first and second storage systems, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via the communication link; and
the step (B) includes a step of receiving the second set of data via the communication link.
-
-
33. The method of claim 32, wherein the at least one communication link includes multiple communication links dedicated to directly coupling the first and second storage systems, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via the multiple communication links; and
the step (B) includes a step of receiving the second set of data via the multiple communication links.
-
-
34. The method of claim 32, wherein the at least one communication link includes multiple communication links dedicated to directly coupling the first and second storage systems, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via at least one of the multiple communication links; and
the step (B) includes a step of receiving the second set of data via at least one of the multiple communication links.
-
-
35. The method of claim 19, wherein the at least one communication path includes at least one data communication channel operable within a public communications network, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via the at least one data communication channel; and
the step (B) includes a step of receiving the second set of data via the at least one data communication channel.
-
-
36. The method of claim 35, wherein the at least one data communication channel includes multiple data communication channels operable within a public communications network, and wherein:
-
the step (A) includes a step of transmitting the first set of data from the first storage system to the second storage system via at least one of the multiple data communication channels; and
the step (B) includes a step of receiving the second set of data via at least one of the multiple data communication channels.
-
-
37. In a computer system including first and second host computers and first and second storage systems, wherein the first storage system includes at least one physical storage device and is coupled to the first host computer to store data transferred from the first host computer to the first storage system and the second storage system includes at least one physical storage device and is coupled to the second host computer to store data transferred from the second host computer to the second storage system, a method of maintaining coherence between a data set shared by the first and second host computers and stored on the first and second storage systems, the method comprising steps of:
-
(A) updating the data set in the first storage system by writing the data set in the first storage system with a first group of data written to the first storage system by the first host computer;
(B) receiving, at the first storage system, a second group of data that is sourced from the second storage system via at least one communication path that does not pass through the first host computer; and
(C) overwriting at least a portion of the first group of data in the first storage system with at least a portion of the second group of data received from the second storage system.
-
-
38. In a computer system including first and second host computers and first and second storage systems, wherein the first storage system includes at least one physical storage device and is coupled to the first host computer to store data transferred from the first host computer to the first storage system and the second storage system includes at least one physical storage device and is coupled to the second host computer to store data transferred from the second host computer to the second storage system, a method of maintaining coherence between first and second copies of a data set stored, respectively, on the first and second storage systems, the method comprising steps of:
-
(A) in response to a first group of data being written to the first copy of the data set by the first host computer, transmitting the first group of data from the first storage system to the second storage system over at least one communication path that does not pass through the first host computer so that the first group of data can be stored on the second storage system;
(B) receiving at the first storage system, via the at least one communication path, a second group of data written to the second copy of the data set by the second host computer; and
(C) overwriting at least a portion of the first group of data in the first storage system with at least a portion of the second group of data.
-
-
39. A computer system, comprising:
-
a first host computer;
a first storage system coupled to the first host computer to store data accessible to the first host computer, the first storage system including at least one physical storage device that stores a first plurality of logical volumes of data that are visible to and writable by the first host computer;
a second host computer;
a second storage system coupled to the second computer to store data accessible to the second host computer, the second storage system including at least one physical storage device that stores a second plurality of logical volumes of data that are visible to and writable by the second host computer;
at least one communication path coupled between the first and second storage systems to transfer data between the first and second storage systems, the at least one communication path not passing through the first host computer; and
at least one controller that mirrors one of the first plurality of logical volumes in one of the second plurality of logical volumes by transmitting updates written from the first host computer to the one of the first plurality of logical volumes to the one of the second plurality of logical volumes over the at least one communication path. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A first storage system for use in a computer system including a first computer to be coupled to the first storage system, a second computer, and a second storage system coupled to the second computer, the second storage system including at least one physical storage device that stores a second plurality of logical volumes of data that are visible to and writable by the second computer, the computer system further including at least one communication path coupled between the first and second storage systems to transfer data between the first and second storage systems, the at least one communication path not passing through the first computer, the first storage system comprising:
-
at least one physical storage device that stores a first plurality of logical volumes of data that are visible to and writable by the first computer; and
at least one write controller that updates the first plurality of logical volumes with data received from the first computer, the at least one write controller being further adapted to update at least one of the first plurality of logical volumes with data received from the second storage system over the at least one communication path. - View Dependent Claims (53, 54, 55, 56, 57)
-
-
58. A first storage system for use in a computer system including a first computer, a second computer, a second storage system including at least one physical storage device, and at least one communication path, wherein the first computer is coupled to the first storage system, wherein the second computer is coupled to the second storage system to permit the second computer to update a second set of data stored by the second storage system, and wherein the at least one communication path is coupled between the first and second storage systems to transfer data between the first and second storage systems, the at least one communication path not passing through the first computer, the first storage system comprising:
-
at least one physical storage device that stores a first set of data; and
at least one write controller, coupled to the at least one physical storage device, to update at least one portion of the first set of data with data received both from the first computer and from the second storage system via the at least one communication path. - View Dependent Claims (59)
-
-
60. A computer readable medium encoded with a plurality of instructions for execution by at least one processor included in a first storage system including at least one physical storage device, the first storage system for use in a computer system including first and second computers and a second storage system including at least one physical storage device, wherein the first storage system is to be coupled to the first computer to store data transferred from the first computer to the first storage system and the second storage system is to be coupled to the second computer to store data transferred from the second computer to the second storage system, the plurality of instructions, when executed by the at least one processor, causing the at least one processor to perform steps of:
-
(A) updating a first logical volume of data stored on the first storage system with a first set of data transferred from the first computer to the first storage system; and
(B) updating the first logical volume of data stored on the first storage system with a second set of data received from the second storage system, the second set of data being received via at least one communication path that does not pass through the first computer.
-
-
61. A computer readable medium encoded with a plurality of instructions for execution by at least one processor included in a first storage system including at least one physical storage device, the first storage system for use in a computer system including first and second computers and a second storage system including at least one physical storage device, wherein the first storage system is to be coupled to the first computer to store data transferred from the first computer to the first storage system and the second storage system is to be coupled to the second computer to store data transferred from the second computer to the second storage system, the plurality of instructions, when executed by the at least one processor, causing the at least one processor to perform steps of:
-
(A) in response to a first logical volume of data stored on the first storage system being updated with a first set of data transferred from the first computer to the first storage system, causing the first set of data to be transmitted from the first storage system to the second storage system over at least one communication path that does not pass through either of the first and second computers; and
(B) updating the first logical volume of data stored on the first storage system with a second set of data received from the second storage system, the second set of data being received via the at least one communication path.
-
Specification