Asynchronously migrating a file system
First Claim
Patent Images
1. A method for migrating data, the method being implemented by one or more processors and comprising:
- identifying a collection of file system objects that are associated with a source file system that is actively in use by a plurality of clients;
intercepting individual file system operations that are intended to be handled by the source file system at a location that is in-line and external to the source file system, so as to not disrupt the plurality of clients requesting file system operations to be performed on the source file system;
for at least a duration of time during which the source file system is in active use by the plurality of clients,replicating at least a portion of the source file system, including each file system object of the collection, at a destination file system;
determining when individual file system operations after the source file system; and
asynchronously implementing one or more of the individual file system operations that are determined to alter the source file system on the destination file system, wherein asynchronously implementing one or more of the individual file system operations includes (i) generating a replay log that sequences multiple file system operations corresponding to a create type operation, a write type operation or a modification type operation, but not a read type operation, and (ii) asynchronously implementing the multiple file system operations from the replay log.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for migrating data from a source file system to a destination file system, in a manner that is transparent and seamless to clients of the source file system.
130 Citations
23 Claims
-
1. A method for migrating data, the method being implemented by one or more processors and comprising:
-
identifying a collection of file system objects that are associated with a source file system that is actively in use by a plurality of clients; intercepting individual file system operations that are intended to be handled by the source file system at a location that is in-line and external to the source file system, so as to not disrupt the plurality of clients requesting file system operations to be performed on the source file system; for at least a duration of time during which the source file system is in active use by the plurality of clients, replicating at least a portion of the source file system, including each file system object of the collection, at a destination file system; determining when individual file system operations after the source file system; and asynchronously implementing one or more of the individual file system operations that are determined to alter the source file system on the destination file system, wherein asynchronously implementing one or more of the individual file system operations includes (i) generating a replay log that sequences multiple file system operations corresponding to a create type operation, a write type operation or a modification type operation, but not a read type operation, and (ii) asynchronously implementing the multiple file system operations from the replay log. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable medium that stores instructions for replicating an active file system, the instructions being executable by one or more processors to cause the one or more processors to perform operations that include:
-
implementing a series of file system operations in order to traverse a source file system and identify file system objects that comprise the source file system; maintaining a data structure in which each identified file system object is associated with an entry and a current set of attributes for that file system object; replicating at least a portion of the source file system, including file system objects identified from traversing the source file system, on a destination file system; intercepting, at a location that is in-line and external to the source file system, individual file system operations that are generated from a plurality of clients for the source file system, so as to not disrupt the plurality of clients requesting file system operations to be performed on the source file system; wherein replicating at least a portion of the source file system includes; determining a corresponding file system object specified by each of the file system operations; determining, from the data structure, whether the corresponding file system object has previously been identified; if the corresponding file system object has not previously been identified, then (i) determining a set of attributes for the corresponding file system object, (ii) adding an entry for the corresponding file system object and its set of attributes on the data structure, and (iii) replicating the corresponding data object at the destination file system; and if the corresponding file system object has previously been identified, then (i) determining the set of attributes for the corresponding file system object from the source file system, (ii) determining a set of attributes for a replication of the corresponding file system object for the destination file system, and (iii) comparing the set of attributes determined from the source file system to the set of attributes for the replication in order to determine whether the replication is up to date or out of date. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer-readable medium that stores instructions for replicating an active file system, the instructions being executable by one or more processors to cause the one or more processors to perform operations that include:
-
identifying a collection of file system objects that are associated with a source file system that is actively in use by a plurality of clients; intercepting individual file system operations that are intended to be handled by the source file system at a location that is in-line and external to the source file system, so as to not disrupt the plurality of clients requesting file system operations to be performed on the source file system; for at least a duration of time during which the source file system is in active use by the plurality of clients, replicating at least a portion of the source file system, including each file system object of the collection, at a destination file system; determining when individual file system operations after the source file system; and asynchronously implementing one or more of the individual file system operations that are determined to alter the source file system on the destination file system, wherein asynchronously implementing one or more of the individual file system operations includes (i) generating a replay log that sequences multiple file system operations corresponding to a create type operation, a write type operation or a modification type operation, but not a read type operation, and (ii) asynchronously implementing the multiple file system operations from the replay log.
-
Specification