Unordered idempotent logical replication operations
First Claim
1. A method, comprising:
- creating a current point-in-time image of a file system stored within a first server, the file system configured to store multiple data objects, each data object having assigned to it a corresponding data object identifier;
scanning data objects within the file system to identify changes in the file system that occurred after an earlier replication operation was performed, by comparing the current point-in-time image with a previous point-in-time image corresponding to the earlier replication operation, the changes in the file system including updates to a data block of a file having both modified data blocks and unmodified data blocks and a generation number of the file; and
transferring, in an unordered stream to a second server, the changes in the file system as multiple individual data units while preserving corresponding file system object identifiers to replicate the file system at the second server;
wherein the transferring includes, for the file, transferring only the modified data blocks, and for a directory, transferring only modified directory entries, wherein the file is transferred before the directory within which the file is located.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for replicating a data container of a source storage server at the logical level in an unordered stream of individual data units are described. In certain embodiments, the replication operations can be performed without regard to the differences in geometry of physical persistent storage of the source and destination storage servers and without regard to the differences in data container format of the source and destination storage servers. An initial replication operation of the source data container is performed by transferring the data objects within the source data container to a replica data container in the destination storage server as an unordered stream of individual data units while preserving data object identifiers of the source data objects. Afterwards, incremental replication operations can be performed to capture modifications to the source data container over time after the initial replication operation.
-
Citations
20 Claims
-
1. A method, comprising:
-
creating a current point-in-time image of a file system stored within a first server, the file system configured to store multiple data objects, each data object having assigned to it a corresponding data object identifier; scanning data objects within the file system to identify changes in the file system that occurred after an earlier replication operation was performed, by comparing the current point-in-time image with a previous point-in-time image corresponding to the earlier replication operation, the changes in the file system including updates to a data block of a file having both modified data blocks and unmodified data blocks and a generation number of the file; and transferring, in an unordered stream to a second server, the changes in the file system as multiple individual data units while preserving corresponding file system object identifiers to replicate the file system at the second server;
wherein the transferring includes, for the file, transferring only the modified data blocks, and for a directory, transferring only modified directory entries, wherein the file is transferred before the directory within which the file is located. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage medium storing computer-executable instructions that when executed cause performance of operations, the operations comprising:
-
receiving, in an unordered stream from a first server at a second server, file system objects, the file system objects in the unordered stream having changes that occurred in a file system of the first server after a previous replication operation was performed, wherein each of the file system objects includes a corresponding file system object identifier, the changes in the file system of the first server including updates to a directory entry of a directory having modified directory entries and unmodified directory entries and a generation number;
wherein the receiving includes, for a file, receiving only modified data blocks, and for the directory, receiving only the modified directory entries and the generation number, wherein the modified data blocks of the file are transferred to the second server before the directory within which the file is located;replicating the file system objects at the second server using the file system object identifiers; and creating a current point-in-time image of a replicated file system of the second server once the file system objects are replicated at the second server so that corresponding point-in-time images of the first server and second server are identical. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computing device for replicating data in a file system, comprising:
-
a processor; and memory comprising processor-executable instructions that when executed by the processor cause performance of operations, the operations comprising; receiving, in a stream, changes in a file system as multiple individual data units while preserving corresponding file system object identifiers to replicate the file system, wherein an ordering of the individual data units within the stream is independent of a hierarchical structure of the file system, wherein data units of a file of the file system are transferred through the stream before transfer of data units of a directory in which the file is located; determining whether a data unit within the stream represents an addition operation to a file system object based on a generation number received along with the data unit; determining whether the data unit represents a replacement operation to the file system object based on the generation number; storing data of the data unit in unused blocks of a physical persistent storage; and updating metadata of the file system object of the file system. - View Dependent Claims (18, 19, 20)
-
Specification