Flexible remote data mirroring
First Claim
1. A system for storing data, comprising:
- an interface configured to receive multiple data changes, the multiple data changes being created in a particular order, wherein at least one of the data changes;
indicates corresponding data to be stored on a storage volume of a host; and
indicates at least one block of the storage volume on where the corresponding data is to be stored;
a meta-data generator configured to, for each of the multiple data changes;
generate meta-data indicating the data change'"'"'s position in the order; and
associate the qenerated meta-data with the data change;
a local buffer configured to store one or more of the multiple data changes and the meta-data associated with the one or more of the multiple data changes;
a local mirror divided into a plurality of units;
a comparator configured to, for the one or more of the multiple data changes;
determine that mirror data in a unit of the local mirror that corresponds to the data change is different from the data indicated by the data change, andin response to the determining, store the data change in the local buffer with the meta-data associated with the data change; and
a communications link coupled to the local buffer wherein the communications link is configured to send to a remote buffer;
(A) the one or more of the multiple data changes and (B) the meta-data associated with the one or more of the multiple data changes,wherein the remote buffer is configured to receive and store the sent data changes and the meta-data associated with the sent data changes.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and configured storage media are provided for flexible data mirroring. In particular, the invention provides many-to-one data mirroring, including mirroring from local servers running the same or different operating systems and/or file systems at two or more geographically dispersed locations. The invention also provides one-to-many data mirroring, mirroring with or without a dedicated private telecommunications link, and mirroring with or without a dedicated server or another server at the destination(s) to assist the remote mirroring unit(s). In addition, the invention provides flexibility by permitting the use of various combinations of one or more external storage units and/or RAID units to hold mirrored data. Spoofing, SCSI and other bus emulations, and further tools and techniques are used in various embodiments of the invention.
89 Citations
35 Claims
-
1. A system for storing data, comprising:
-
an interface configured to receive multiple data changes, the multiple data changes being created in a particular order, wherein at least one of the data changes; indicates corresponding data to be stored on a storage volume of a host; and indicates at least one block of the storage volume on where the corresponding data is to be stored; a meta-data generator configured to, for each of the multiple data changes; generate meta-data indicating the data change'"'"'s position in the order; and associate the qenerated meta-data with the data change; a local buffer configured to store one or more of the multiple data changes and the meta-data associated with the one or more of the multiple data changes; a local mirror divided into a plurality of units; a comparator configured to, for the one or more of the multiple data changes; determine that mirror data in a unit of the local mirror that corresponds to the data change is different from the data indicated by the data change, and in response to the determining, store the data change in the local buffer with the meta-data associated with the data change; and a communications link coupled to the local buffer wherein the communications link is configured to send to a remote buffer;
(A) the one or more of the multiple data changes and (B) the meta-data associated with the one or more of the multiple data changes,wherein the remote buffer is configured to receive and store the sent data changes and the meta-data associated with the sent data changes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system for storing data, comprising:
-
a remote buffer comprising a memory that stores remote buffer elements, the remote buffer coupled to a communications link and configured to receive via the communications link and store a plurality of data changes created in a particular order, wherein one or more the data changes; indicates corresponding data to be stored on a storage volume of a host, indicates at least one block of the storage volume on which the corresponding data is to be stored, and is associated with meta-data indicating the data change'"'"'s position in the particular order; and a remote mirror; wherein; the remote buffer is configured to, upon receiving a particular one of the data changes and associated meta-data, send an ACK signal to a local buffer from which the remote buffer receives the data changes, and the remote buffer is configured to update the remote mirror using the particular data change only upon receiving an ACK-ACK signal from the local buffer subsequent to sending the ACK signal. - View Dependent Claims (24, 25, 26)
-
-
27. A computer-readable storage device having contents configured to cause a computing system to perform operations for storing data, the operations comprising:
-
receiving a plurality of data changes created in a particular order, wherein at least one of the data changes; indicates corresponding data to be stored on a storage volume of a host, and indicates at least one block of the storage volume on which the corresponding data is to be stored; associating with one or more of the data changes, meta-data indicating the data change'"'"'s position in the particular order; and for the one or more data changes; determining that data in the block indicated by the data change is different from the data indicated by the data change, and in response to the determining, storing the data change in a local buffer with the meta-data associated with the data change. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A system for conveying data, comprising:
-
a memory; a processor; an interface coupled to the memory, the interface and memory configured to receive and store a plurality of data changes created in a particular order, wherein at least one of the changes; indicates corresponding data to be stored on a storage volume of a host, and indicates at least one block of the storage volume on which the indicated data is to be stored; a meta-data generator configured to; generate meta-data indicating the data change'"'"'s position in the order; and associate the generated meta-data with the data change; a local buffer configured to (1) store one or more of the data changes and the meta-data associated with the one or more of the multiple data changes, (2) transmit, to a remote buffer via a communications link coupled to the local buffer, the data changes and the meta-data associated with the one or more of the multiple data changes stored in the local buffer, and (3) upon receiving an ACK signal signifying the remote buffer'"'"'s receipt of a particular one of the data changes and associated meta-data block, send an ACK-ACK signal to the remote buffer. - View Dependent Claims (33)
-
-
34. A method in a computing system for conveying data, comprising:
-
receiving, from a processor, a plurality of data changes in a particular order, wherein one or more of the data changes; indicates corresponding data to be stored on a storage volume of a host, and; indicates at least one block of the storage volume on which the indicated data is to be stored; associating with at least one of the data changes, based on the order, generated meta-data indicating the data change'"'"'s position in the order; storing, in a local buffer, at least one of the received data changes and meta-data associated with the at least one of the multiple data changes; transmitting the stored data changes and the meta-data the meta-data associated with the stored data changes to a remote buffer via a communications link; and upon receiving an ACK signal signifying the remote buffer'"'"'s receipt of a particular one of the data changes and associated meta-data, sending an ACK-ACK signal to the remote buffer. - View Dependent Claims (35)
-
Specification