Flexible remote data mirroring
First Claim
1. A method for storing data from a host computing system, the method comprising:
- receiving, at a storage system operationally independent from the host computing system, a plurality of blocks of the data, the received plurality of blocks of the data representing a change in the contents of a file from a first state of a storage volume to a second state of the storage volume, wherein the file comprises one or more blocks in each of the storage volume'"'"'s first and second states, the received blocks not containing all of the information in any of the one or more blocks comprising the file in the second state of the storage volume, wherein each of the received plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a selected data block corresponds to a position in a sequence in which the host computing system stores contents corresponding to the selected data block;
storing each of the received plurality of blocks of the data to a persistent data storage device;
receiving an indication of a particular location in the sequence; and
in response to receiving the indication of the particular location in the sequence;
retrieving, from the persistent data storage device, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the stored plurality of blocks of the data, the one or more distinguished blocks of the data comprising less than all of the stored plurality of blocks of the data and selected based on the particular location in the sequence; and
providing the retrieved one or more distinguished blocks of the data.
2 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.
108 Citations
23 Claims
-
1. A method for storing data from a host computing system, the method comprising:
-
receiving, at a storage system operationally independent from the host computing system, a plurality of blocks of the data, the received plurality of blocks of the data representing a change in the contents of a file from a first state of a storage volume to a second state of the storage volume, wherein the file comprises one or more blocks in each of the storage volume'"'"'s first and second states, the received blocks not containing all of the information in any of the one or more blocks comprising the file in the second state of the storage volume, wherein each of the received plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a selected data block corresponds to a position in a sequence in which the host computing system stores contents corresponding to the selected data block; storing each of the received plurality of blocks of the data to a persistent data storage device; receiving an indication of a particular location in the sequence; and in response to receiving the indication of the particular location in the sequence; retrieving, from the persistent data storage device, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the stored plurality of blocks of the data, the one or more distinguished blocks of the data comprising less than all of the stored plurality of blocks of the data and selected based on the particular location in the sequence; and providing the retrieved one or more distinguished blocks of the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage medium that is not a transitory signal, storing instructions that, when executed by a computing system, cause the computing system to perform operations for storing data from a host computing system, the operations comprising:
-
receiving, at a storage system operationally independent from the host computing system, a plurality of blocks of the data, the received plurality of blocks of the data representing a change in the contents of a file from a first state of a storage volume to a second state of the storage volume, wherein the file comprises one or more blocks in each of the storage volume'"'"'s first and second states, the received blocks not containing all of the information in any of the one or more blocks comprising the file in the second state of the storage volume, wherein each of the received plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a selected data block corresponds to a position in a sequence in which the host computing system stores contents corresponding to the selected data block; storing each of the received plurality of blocks of the data to a persistent data storage device; receiving an indication of a particular location in the sequence; and in response to receiving the indication of the particular location in the sequence; retrieving, from the persistent data storage device, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the stored plurality of blocks of the data, the one or more distinguished blocks of the data comprising less than all of the stored plurality of blocks of the data and selected based on the particular location in the sequence; and providing the retrieved one or more distinguished blocks of the data. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A storage system that is operationally independent from a host computing system, the storage system comprising:
-
a persistent data storage device; one or more processors; and a network interface; wherein the storage system is configured to; receive, through the network interface, a plurality of blocks of the data, the received plurality of blocks of the data representing a change in the contents of a file from a first state of a storage volume to a second state of the storage volume, wherein the file comprises one or more blocks in each of the storage volume'"'"'s first and second states, the received blocks not containing all of the information in any of the blocks comprising the file in the second state of the storage volume, wherein each of the received plurality of blocks of the data is associated with a value indicating an order, and wherein each value associated with a selected data block corresponds to a position in a sequence in which the host computing system stores contents corresponding to the selected data block; store each of the received plurality of blocks of the data to the persistent data storage device; receive, through the network interface, an indication of a particular location in the sequence; and in response to receiving the indication of the particular location in the sequence; retrieve, from the persistent data storage device, based on the associated values that correspond to the sequence, one or more distinguished blocks of the data of the stored plurality of blocks of the data, the one or more distinguished blocks of the data comprising less than all of the stored plurality of blocks of the data and selected based on the particular location in the sequence; and provide the retrieved one or more distinguished blocks of the data. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification