Efficient volume-level replication of data via snapshots in an information management system
First Claim
1. A method comprising:
- in an information management system managed by a storage manager, block-level replicating a source volume in a first block storage array to a destination volume in a second block storage array by way of a volume-replicating server interposed between and in communication with the first block storage array and the second block storage array, wherein the source volume comprises data generated by a first application executing on a first client computing device in communication with a first logical unit number configured on the first block storage array that comprises the source volume,wherein the replicating comprises;
generating and storing, by the first block storage array, a first snapshot of the entire source volume,after the first snapshot, detecting, by a first data agent associated with the first application and also executing on the first client computing device, changed blocks being written by the first application to the source volume,generating and storing, by the first block storage array, after the first snapshot, a second snapshot of the entire source volume,after the second snapshot, transmitting, by the first data agent executing on the client computing device to the volume-replicating server, a mapping of blocks that changed between the first snapshot and the second snapshot,extracting, by the volume-replicating server from the second snapshot stored in the first block storage array, only the changed blocks according to the mapping received from the first data agent,transferring, by the volume-replicating server to the destination volume in the second block storage array, only the extracted changed blocks, andsubstituting, by the volume-replicating server, the changed blocks into the destination volume in place of corresponding pre-existing blocks therein, thereby replicating the second snapshot at the second block storage array for use by a second client computing device in communication with a second logical unit number comprising the destination volume;
performing a block-level restore operation of the replicated second snapshot in the destination volume at the second block storage array to the second client computing device,wherein the block-level restore operation is performed at least in part by a second data agent associated with a second application, wherein the second application and the second data agent execute on the second client computing device;
on the second client computing device, activating the second application having access to the restored second snapshot in the destination volume as primary data therefor; and
wherein the volume-replicating server offloads the first client computing device from performing the extracting, transferring, and substituting operations to enable the second application to access the restored second snapshot in the destination volume on the second storage array.
2 Assignments
0 Petitions
Accused Products
Abstract
The illustrative systems and methods use a special-purpose volume-replicating server(s) to offload client computing devices operating in a production environment. The production environment may remain relatively undisturbed while production data is replicated to a geographically distinct destination. Replication is based in part on hardware-based snapshots generated by a storage array that houses production data. The illustrative volume-replicating server efficiently moves data from snapshots on a source storage array to a destination storage array by transferring only changed blocks for each successive snapshot, i.e., transferring incremental block-level changes. Periodic restore jobs may be executed by destination clients to keep current with their corresponding source production clients. Accordingly, after the source data center goes offline, production data may be speedily restored at the destination data center after experiencing only minimal downtime of production resources. By employing block-level techniques, the disclosed solutions avoid the file-based data management approaches of the prior art, which tend to be too time-consuming and resource-intensive for the present scenario.
156 Citations
14 Claims
-
1. A method comprising:
-
in an information management system managed by a storage manager, block-level replicating a source volume in a first block storage array to a destination volume in a second block storage array by way of a volume-replicating server interposed between and in communication with the first block storage array and the second block storage array, wherein the source volume comprises data generated by a first application executing on a first client computing device in communication with a first logical unit number configured on the first block storage array that comprises the source volume, wherein the replicating comprises; generating and storing, by the first block storage array, a first snapshot of the entire source volume, after the first snapshot, detecting, by a first data agent associated with the first application and also executing on the first client computing device, changed blocks being written by the first application to the source volume, generating and storing, by the first block storage array, after the first snapshot, a second snapshot of the entire source volume, after the second snapshot, transmitting, by the first data agent executing on the client computing device to the volume-replicating server, a mapping of blocks that changed between the first snapshot and the second snapshot, extracting, by the volume-replicating server from the second snapshot stored in the first block storage array, only the changed blocks according to the mapping received from the first data agent, transferring, by the volume-replicating server to the destination volume in the second block storage array, only the extracted changed blocks, and substituting, by the volume-replicating server, the changed blocks into the destination volume in place of corresponding pre-existing blocks therein, thereby replicating the second snapshot at the second block storage array for use by a second client computing device in communication with a second logical unit number comprising the destination volume; performing a block-level restore operation of the replicated second snapshot in the destination volume at the second block storage array to the second client computing device, wherein the block-level restore operation is performed at least in part by a second data agent associated with a second application, wherein the second application and the second data agent execute on the second client computing device; on the second client computing device, activating the second application having access to the restored second snapshot in the destination volume as primary data therefor; and wherein the volume-replicating server offloads the first client computing device from performing the extracting, transferring, and substituting operations to enable the second application to access the restored second snapshot in the destination volume on the second storage array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An information management system comprising:
-
a volume-replicating server in communication with a first block storage array and a second block storage array; a first client computing device in communication with the volume-replicating server and with the first block storage array; the first block storage array, comprising a source volume comprising primary data generated by a first application on the first client computing device, wherein the source volume is configured as a first logical unit number mounted to the first client computing device; wherein the first block storage array is configured to; generate and store a first snapshot of the first logical unit number comprising the source volume, and generate and store, after the first snapshot, a second snapshot of the first logical unit number comprising the source volume; a first data agent hosted by the first client computing device, wherein the first data agent is configured to; detect changed blocks being written by the first application to the source volume, generate a mapping of one or more blocks that changed between the first snapshot and the second snapshot, and transmit the mapping to the volume-replicating server; wherein the volume-replicating server is configured to; extract only the one or more changed blocks from the second snapshot on the first block storage array, according to the mapping received from the first data agent on the first client computing device, transfer the extracted changed blocks to a destination volume in the second block storage array, and substitute the changed blocks into the destination volume in place of corresponding pre-existing blocks therein, wherein after the substitute the destination volume in the second block storage array is a volume-level replica of the second snapshot; and wherein the first client computing device is offloaded by the volume-replicating server from performing the extract, transfer, and substitute operations to create the volume-level replica of the second snapshot in the second block storage array; and wherein the information management system further comprises a second client computing device hosting a second application and an associated second data agent, wherein the second application is configured to, after a block-level restore operation of the destination volume, execute on the second client computing device with access to the destination volume replica of the second snapshot. - View Dependent Claims (10, 11)
-
-
12. A method for block-level replication of a volume of data generated in an information management system, the method comprising:
-
generating and storing, by a first block storage array in the information management system, a first snapshot of a source volume on the first block storage array, wherein the source volume comprises data generated by a first application that executes on a first client computing device in the information management system; after the first snapshot, monitoring write operations performed by the first application to the source volume, by a first data agent which is associated with the first application and which also executes on the first client computing device, to detect changed blocks written by the first application; generating and storing by the first block storage array, after the first snapshot, a second snapshot of the first logical unit number comprising the source volume; after the second snapshot, transmitting, by the first data agent to a volume-replicating server in the information management system, a mapping of blocks that the first data agent detected have changed between the first snapshot and the second snapshot, wherein the volume-replicating server is a computing device that is distinct from the first client computing device, and further wherein the volume-replicating server is in communication with the first block storage array comprising the source volume and with a second block storage array, and wherein the first client computing device is not in communication with the second block storage array; extracting, by the volume-replicating server, only the changed blocks from the second snapshot on the first block storage array, according to the mapping of changed blocks received from the first data agent on the first client computing device; transferring, by the volume-replicating server, the extracted changed blocks to a destination volume in the second block storage array; and substituting, by the volume-replicating server, the extracted changed blocks into the destination volume in place of corresponding pre-existing blocks therein, wherein after the substituting the destination volume in the second block storage array is a volume-level replica of the second snapshot for use by a second application that executes on a second client computing device after a block-level restore operation performed at least in part by a second data agent associated with the second application and also executing on the second client computing device; and wherein the first client computing device is offloaded by the volume-replicating server from performing the extracting, transferring, and substituting operations to create a volume-level replica of the second snapshot in the destination volume of the second block storage array. - View Dependent Claims (13, 14)
-
Specification