Method for asynchronous replication of a hierarchically-indexed data store
View Patent ↗Changes such as write operations on a replication source comprising a hierarchically-indexed file system and associated data store are tracked and aggregated over a point-in-time image replication interval and communicated to a replication target. The replication target receives the changes, conducts operations to make the changes on a target volume or portion thereof, and conducts a point-in-time image replication operation to synchronize the replication target with the replication source. In the present invention the advantages of replication techniques developed for log-structured file systems are provided to systems with conventional hierarchical file systems. The invention also facilitates maintaining point-in-time retrievable images of a volume or portion thereof on a target volume while reducing the bandwidth and processing burden associated with replication.
1. A method for asynchronous file-based replication of a hierarchically-indexed data store, the method comprising:
asynchronously communicating data contained within file regions that have changed to a replication target as indicated by a first in-memory block map;
monitoring write operations to a hierarchically-indexed data store with a file system driver in order to track file regions that have changed since a first point-in-time replication instance wherein changes to the file regions occur in a written order;
updating block status indicators in a second in-memory block map in response to the changes to the file regions;
rotating between the second in-memory block map and the first in-memory block map by clearing the first in-memory block map and updating block status indicators in the first in-memory block map instead of the second in-memory block map in response to a second point-in-time replication instance; and
asynchronously communicating data contained within file regions that have changed to the replication target as indicated by the second in-memory block map instead of the first in-memory block map in response to the second point-in-time replication instance, wherein asynchronously communicating data occurs in an order that is independent of the written order.
2. The method of claim 1 , further comprising receiving the data contained within the file regions that have changed, writing the data within corresponding files regions on the replication target, and initiating a point-in-time image replication operation configured to synchronize the replication target with a replication source.
3. The method of claim 1 , further comprising clearing the first in-memory block map subsequent to asynchronously communicating the data contained within the file regions indicated by the first in-memory block map.
4. The method of claim 1 , wherein communicating is conducted as directed by policies related to replication.
5. The method of claim 1 , further comprising invoking point-in-time image replication services.
6. The method of claim 1 , further comprising saving information regarding the file regions that have changed since the first point-in-time image replication instance.
7. The method of claim 1 , wherein tracking file regions is conducted in response to write operations.
8. The method of claim 1 , further comprising saving information regarding the storage regions that have changed since the first point-in-time image replication instance.
9. The method of claim 1 , wherein the point-in-time image comprises a snapshot.
10. The method of claim 1 , wherein the file system driver is an installable driver.
11. The method of claim 1 , wherein monitoring write operations to the hierarchically-indexed data store further comprises monitoring write operations from an operating system to the hierarchically-indexed data store, the operating system configured to access the hierarchically indexed data store.
12. The method of claim 1 , wherein the hierarchically indexed data store is configured to store data in a hierarchical structure corresponding to a file system.
13. The method of claim 1 , wherein the first in-memory block map and the second in-memory block map each comprise a plurality of status indicators configured to indicate changes to blocks on the hierarchically indexed data store.