Data storage with host-initiated synchronization and fail-over of remote mirror
First Claim
1. A method of storing and synchronizing data between a host device, a primary storage device, and a secondary storage device, wherein the host device storages data on the primary storage device on behalf of client devices, and the data stored on the primary storage device is mirrored to the secondary storage device, the method comprising the steps of:
- initiating data synchronization from the host device to the primary storage device to make data stored on the primary storage device stable and consistent with data stored on the host device;
issuing a checkpoint message from the host device to the primary storage device to indicate that a storage state of the host device is stable and consistent at a predetermined checkpoint time indicated by the check point message;
performing data synchronization from the primary storage device to the secondary storage device to make data stored on the secondary storage device stable and consistent with the data stored on the primary storage device;
forwarding the checkpoint message from the primary storage device to the secondary storage device to indicate that a storage state of the primary storage device is at the checkpoint state; and
generating an incremental snapshot of the mirrored data on the secondary storage device, the incremental snapshot including data and information describing the mirrored data at the predetermined checkpoint to preserve a storage state of the secondary storage device at the predetermined checkpoint.
3 Assignments
0 Petitions
Accused Products
Abstract
A mirrored data storage system utilizes a first host device and a local storage device for primary data storage and a second host device and a remote storage device for mirrored, fail-over storage on behalf of client devices. At periodic intervals (called checkpoints), the first host device initiates data synchronization between itself and the two storage devices and issues checkpoint information to ensure that each device maintains information for a common stable storage state. The local storage device synchronizes its stored data and forwards the checkpoint information to the remote storage device. The remote storage device maintains a copy (called a snapshot) of the data at the common stable storage state. Given the snapshot and the checkpoint information, the remote storage device can restore itself to the common stable storage state in the event of a failure of the first host device and/or the local storage device. Upon failure of the first host device and/or the local storage device, the second host device is instructed to initiate a switch, or fail-over, to serving as the primary data storage on behalf of the client devices.
371 Citations
24 Claims
-
1. A method of storing and synchronizing data between a host device, a primary storage device, and a secondary storage device, wherein the host device storages data on the primary storage device on behalf of client devices, and the data stored on the primary storage device is mirrored to the secondary storage device, the method comprising the steps of:
-
initiating data synchronization from the host device to the primary storage device to make data stored on the primary storage device stable and consistent with data stored on the host device;
issuing a checkpoint message from the host device to the primary storage device to indicate that a storage state of the host device is stable and consistent at a predetermined checkpoint time indicated by the check point message;
performing data synchronization from the primary storage device to the secondary storage device to make data stored on the secondary storage device stable and consistent with the data stored on the primary storage device;
forwarding the checkpoint message from the primary storage device to the secondary storage device to indicate that a storage state of the primary storage device is at the checkpoint state; and
generating an incremental snapshot of the mirrored data on the secondary storage device, the incremental snapshot including data and information describing the mirrored data at the predetermined checkpoint to preserve a storage state of the secondary storage device at the predetermined checkpoint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
sending host data from the host device to the primary storage device;
updating the storage state of the primary storage device with the host data, the primary storage device storage state being consistent with the host device storage state;
sending storage data from the primary storage device to the secondary storage device; and
updating the storage state of the secondary storage device with storage data, the secondary storage device storage state being consistent with the host device storage state.
-
-
3. A method as defined in claim 2, wherein the primary storage device is directly communicatively coupled to the secondary storage device.
-
4. A method as defined in claim 2, wherein the primary storage device communicates with the secondary storage device through a signal communication path that does not pass through the host device.
-
5. A method as defined in claim 1 further comprising the step of:
clearing a preexisting incremental snapshot before generating the incremental snapshot.
-
6. A method as defined in claim 1 further comprising the steps of:
adding the generated incremental snapshot to a preexisting incremental snapshot.
-
7. A method as defined in claim 1 further comprising the steps of:
-
sending host data from the host device to the primary storage device;
sending storage data from the primary storage device to the secondary storage device;
replacing preexisting mirrored data in the secondary storage device with the storage data; and
transferring the preexisting mirrored data to the incremental snapshot in the secondary storage device to preserve the storage state of the secondary storage device at the checkpoint state.
-
-
8. A method as defined in claim 1 in combination with failing-over from utilization of the host device first aforesaid and the primary storage device to utilization of a second host device and the secondary storage device for storing data on behalf of the client devices, further comprising the steps of:
-
detecting a failure of at least one of the group consisting of the first host device and the primary storage device;
signaling the second host device and the secondary storage device that they are to be utilized for primary data storage;
assembling an image of the data stored on the secondary storage device from a most recent incremental snapshot at a most recent predetermined checkpoint indicated by a most recent checkpoint message;
informing the second host device that the data image is complete; and
indicating that the second host device and the secondary storage device are ready to serve as primary data storage.
-
-
9. A method as defined in claim 1, wherein the checkpoint message is passed from the host device to the primary storage device and forwarded from the primary storage device to the secondary storage device, the checkpoint message being maintained in each of these devices.
-
10. A method of switching a client device from utilizing a first host device and a primary storage device to utilizing a second host device and a secondary storage device for primary data storage, upon failure of at least one of the group consisting of the first host device and the primary storage device, wherein data stored on the primary storage device is mirrored to the secondary storage device, and the data is synchronized between the first host device and the primary and secondary storage devices at a data synchronization checkpoint to establish a common stable state for the data in the first host device and the primary and secondary storage devices, comprising the steps of:
-
detecting a failure of at least one of the group consisting of the first host device and the primary storage device;
signaling the second host device that it is to be utilized for primary data storage services;
signaling the second storage device to restore data stored thereon to the common stable state;
assembling a data image of the mirrored data stored on the secondary storage device, the data image representing the mirrored data at the common stable state;
signaling the second host device that the data image is useable; and
indicating the second host device and the secondary storage device are ready to serve as primary data storage. - View Dependent Claims (11, 12, 13, 14, 15, 16)
assembling the data image from the checkpoint synchronization information and the preexisting data stored in the old-data storage area.
-
-
12. A method as defined in claim 11 further comprising the step of:
restoring the secondary storage device to the common stable state by replacing the new data in the data volume storage area with the previously replaced preexisting data from the old-data storage area.
-
13. A method as defined in claim 11, wherein the first host device issues checkpoint synchronization information in a message.
-
14. A method as defined in claim 10, wherein a business continuance client signals the second host device that it is to be utilized for primary data storage devices.
-
15. A method as defined in claim 10, wherein a remote storage device signals that the data image is useable before completing a restore procedure.
-
16. A method as defined in claim 15, wherein the remote storage device signals a business continuance client that the remote host and a remote storage device are ready to begin servicing client devices.
-
17. A method mirrored storage computer system for servicing data storage requirements of software applications executing on client devices, comprising:
-
a host device operative to service the software applications requiring data storage, to store data externally, to issue external storage access requests and to initiate periodic external data synchronization at stable storage states referred to as data synchronization checkpoints wherein data stored on the host device is made coherent with externally stored data;
a primary storage device connected to the host device for external data storage and operative to store data received from the host device, to respond to the storage access requests from the host device, to make the data stored in the primary storage device coherent with the data stored on the host device at the data synchronization checkpoints, and to forward the data and the data synchronization checkpoints; and
a secondary storage device connected to the primary storage device for secondary external data storage and operative to receive the forwarded data and the data synchronization checkpoints, to store the data, to make the data stored in the secondary device coherent with the data stored on the host device and the primary storage device at the data synchronization checkpoints, and to generate a snapshot of the stored data at the data synchronization checkpoints, the snapshot representing the stable storage state in the secondary storage device. - View Dependent Claims (18, 19, 20, 21, 22, 23)
a second host device, in addition to the host device first aforesaid, connected to the secondary storage device and operative to take over servicing the software applications requiring the data storage upon failure at least one of the group consisting of the first host device and the primary data storage device by utilizing the data stored on the secondary storage device and to externally store data on the secondary storage device by issuing external data access requests to the secondary storage device;
the secondary storage device further operative to store the data received from the second host device and to respond to the storage access requests from the second host device.
-
-
19. A mirrored storage system as defined in claim 18 wherein:
-
the second host device is further operative to send a restore signal to the secondary storage device instructing the secondary storage device to restore the data stored thereon to the stable storage state upon the failure of the at least one of the group consisting of the first host device and the primary data storage device; and
the secondary storage device is further operative to receive the restore signal from the second host device, to restore the data stored on the secondary storage device to the stable storage state from the data synchronization checkpoint and the snapshot, and afterwards, to store data received from the second host device and respond to the storage access requests from the second host device.
-
-
20. A mirrored storage system as defined in claim 19, wherein the primary storage device does not generate a snapshot.
-
21. A mirrored storage system as defined in claim 19, wherein each of the primary and secondary host devices is one of the group consisting of computers and servers.
-
22. A mirrored storage system as defined in claim 21, wherein each of the primary and secondary storage systems is one of the group consisting of computers, storage servers, and storage array devices.
-
23. A mirrored storage system as defined in claim 19, wherein each of the primary and secondary storage systems store checkpoint information.
-
24. A method mirrored storage computer system for servicing data storage requirements of software applications executing on client devices, comprising:
-
a business continuance client;
at least one client that is not a business continuance client;
a first host device operative to service software applications requiring data storage, to store data externally, to issue external storage access requests and to initiate periodic external data synchronization at stable storage states referred to as data synchronization checkpoints wherein data stored on the first host device is made coherent with externally stored data;
a primary storage device connected to the first host device for external data storage and operative to store data received from the first host device, to respond to the storage access requests from the host device, to make the data stored in the primary storage device coherent with the data stored on the first host device at the data synchronization checkpoints, and to forward the data and the data synchronization checkpoints;
a second host device operative to assume functions of the first host device when the business continuance client detects a failure in at least one of the first host device and the primary storage device; and
a secondary storage device connected to the primary storage device for secondary external data storage and operative to receive the forwarded data and the data synchronization checkpoints, to store the data, to make the data stored in the secondary device coherent with the data stored on the host device and the primary storage device at the data synchronization checkpoints, and to generate a snapshot of the stored data at the data synchronization checkpoints, the snapshot representing the stable storage state in the secondary storage device, wherein the at least one client that is not a business continuance client is provided with a signal by the business continuance client to restart applications in the event the second host device assumes the functions of the first host device, wherein data synchronization checkpoint information is issued in a message from the first host device to the primary storage device and the message is transmitted by the primary storage device to the secondary storage device.
-
Specification