System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
First Claim
1. A system for receiving a data stream of changed data from a snapshot on the source file system and updating a replica file system on a destination file system associated with the source file system comprising:
- a directory stage process that reads all source directory information, and that (a) maps destination inodes on the replica file system to source inodes received from the source and using an inode map of source inodes to destination inodes and (b) updates the destination inodes based upon the mapped source inodes; and
a file stage process that populates the replica file system with file data from the source based upon offsets in the inode map between the source inodes and the destination modes.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for updating a replicated destination file system snapshot with changes in a source file system snapshot, facilitates construction of a new directory tree on the destination from source update information using a temporary or “purgatory” directory that allows any modified and deleted files on the destination active file system to be associated with (e.g. moved to) the purgatory directory if and until they are reused. In addition, an inode map is established on the destination that maps source inode numbers to destination inode numbers so as to facilitate building of the destination tree using inode/generation number tuples. The inode map allows resynchronization of the source file system to the destination. The inode map also allows association of two or more destination snapshots to each other based upon their respective maps with the source.
-
Citations
27 Claims
-
1. A system for receiving a data stream of changed data from a snapshot on the source file system and updating a replica file system on a destination file system associated with the source file system comprising:
-
a directory stage process that reads all source directory information, and that (a) maps destination inodes on the replica file system to source inodes received from the source and using an inode map of source inodes to destination inodes and (b) updates the destination inodes based upon the mapped source inodes; and
a file stage process that populates the replica file system with file data from the source based upon offsets in the inode map between the source inodes and the destination modes. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for rolling back an updating replica file system to a first state from a second state comprising the steps of:
-
creating a first exported snapshot of the replica file system in the first state;
initiating a roll back procedure at a predetermined time after the creation of the first exported snapshot;
halting modification of the replica file system in the second state;
creating a second exported snapshot of the replica file system in the second state;
determining changes in data between the second snapshot and the first snapshot; and
modifying the replica file system, after the step of halting, using the changes to restore the replica file system to the first state.
-
-
9. In a system wherein an old source snapshot transmits incremental snapshot changes in inodes to an old destination snapshot for update of the old destination snapshot, and wherein the inodes of the old source snapshot are mapped to inodes of the old destination snapshot with an old inode map indexed according to the old source, a method for flipping the old inode map for use by the old source snapshot as a new destination to receive snapshot changes in inodes from the old destination snapshot as a new source, the method comprising the steps of:
-
negotiating receipt of the old inode map at the new destination and storing the old inode map;
creating a new inode map having an index of entries defined by an ascending order of new source inode numbers equal to a number of entries in the new source;
for each new source inode number, respectively, looking up, in the stored old inode map, an entry that contains an old destination inode number, if any, matching the new source inode number; and
writing a corresponding old source inode number from the looked up entry in the stored old inode map as a new destination inode in the new inode map at the entry indexed by the respective new source inode number. - View Dependent Claims (10, 11)
-
-
12. In a system wherein an old source snapshot transmits incremental snapshot changes in inodes to a first old destination snapshot and a second old destination snapshot for update of the old destination snapshot, and wherein the inodes of the old source snapshot are mapped to inodes of each of the first old destination snapshot and the second old destination snapshot with a respective first old inode map and a second old inode map each indexed according to the old source, a method for mirroring the first old destination snapshot as a new source snapshot on the second old destination snapshot as a new destination snapshot, the method comprising the steps of:
-
transferring the first old inode map from the new source to the new destination;
walking through index entries to inodes in the old source in each of the first old inode map and the second old inode map concurrently and, for each inode from the old source extracting an old destination inode number/generation number”
from each of the first old inode map and the second old inode map; and
creating a new associated inode map indexed with each old destination inode number/generation number extracted from the first old source map and associated with the old destination inode number/generation number from the second old source map. - View Dependent Claims (14)
-
-
13. A method for receiving a data stream of changed data from a snapshot on the source file system and updating a replica file system on a destination file associated with the source file system comprising:
-
reading, from the data stream, inodes related to deleted files and modified files on the replica file system and associating any read deleted files and modified files on the replica file system with a temporary directory separate from a directory tree of the replicated file system;
reading, from the data stream, information retaining predetermined of the deleted files and the modified files and, in response to the reading, linking the predetermined of the deleted files and the modified files to respective new entries in the replicated file system; and
when updating of the replica file system is complete, deleting the temporary directory, whereby the predetermined of the deleted files and modified files remain associated with an updated version of the replicated file system.
-
-
15. A method for receiving a data stream of changed data from a snapshot on the source file system and updating a replica file system on a destination file system associated with the source file system comprising:
-
performing a directory stage process that reads all source directory information, and that (a) maps destination inodes on the replica file system to source inodes received from the source and using an inode map of source inodes to destination inodes and (b) updates the destination inodes based upon the mapped source inodes; and
performing a file stage process that populates the replica file system with file data from the source based upon offsets in the inode map between the source inodes and the destination inodes. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. In a system for receiving a data stream of data source file system and updating a replica file system on a destination file system associated with the source file system, an inode map for mapping inodes received from the source file system an tree on the destination file system comprising:
-
an index of inode map entries based upon source inode numbers from the source file system received in the data stream;
source generation numbers, in each of entries, with respect to files associated with the source inode numbers; and
destination inode numbers and destination inode numbers, in each of the entries, mapped to respective of the source inode numbers. - View Dependent Claims (23, 24, 25, 26, 27)
-
Specification