System and method for hijacking inodes based on replication operations received in an arbitrary order
First Claim
1. A method for processing storage operations in a network storage system, the method comprising:
- receiving information defining multiple replication operations corresponding to changes on a source storage system for execution on a destination storage system in an arbitrary order, wherein the information defines a target metadata container identifier for each replication operation;
detecting an inconsistency between an individual replication operation and a destination metadata container on the destination storage system, wherein the destination metadata container corresponds to the target metadata container identifier, wherein detecting the inconsistency comprises determining either that the replication operation is a create operation and the destination metadata container is not unused, or that the replication operation is a modify operation and the destination metadata container is unused;
in response to detecting the inconsistency, determining that a replacement operation has occurred, wherein the replacement operation is a replication operation received in a chronologically different order from the order the corresponding change occurred on the source storage system; and
in response to determining that the replacement operation has occurred, replacing a portion of a metadata section of the destination metadata container based on the replication operation without waiting for a later replication operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for hijacking inodes based on replication operations received in an arbitrary order is used to assist a data replication operation from a source storage system to a destination storage system. The source storage system generates a set of replication operations as part of a replication process and transmits the replication operations in an arbitrary order. After receiving a replication operation, the system determines whether the operation is inconsistent with a corresponding destination inode. If an inconsistency exists, the system hijacks the destination inode by replacing the destination inode'"'"'s metadata with data determined based on the replication operation. The system may also delete metadata from the inode and/or initialize metadata to default values if the metadata was not replaced based on the replication operation. The system then waits for a second replication operation that contains the remaining metadata and replaces the metadata based on the second replication operation. In addition, data blocks associated with the previous version of the inode are freed.
219 Citations
22 Claims
-
1. A method for processing storage operations in a network storage system, the method comprising:
-
receiving information defining multiple replication operations corresponding to changes on a source storage system for execution on a destination storage system in an arbitrary order, wherein the information defines a target metadata container identifier for each replication operation; detecting an inconsistency between an individual replication operation and a destination metadata container on the destination storage system, wherein the destination metadata container corresponds to the target metadata container identifier, wherein detecting the inconsistency comprises determining either that the replication operation is a create operation and the destination metadata container is not unused, or that the replication operation is a modify operation and the destination metadata container is unused; in response to detecting the inconsistency, determining that a replacement operation has occurred, wherein the replacement operation is a replication operation received in a chronologically different order from the order the corresponding change occurred on the source storage system; and in response to determining that the replacement operation has occurred, replacing a portion of a metadata section of the destination metadata container based on the replication operation without waiting for a later replication operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus for processing storage operations in a storage system, the apparatus comprising:
-
a storage interface configured to communicate with a destination storage system; a storage operation interface configured to receive information defining multiple replication operations corresponding to changes to a source storage system to be executed on the destination storage system provided in an arbitrary order from a remote device, wherein the information defines a target metadata container address for each replication operation;
wherein the multiple replication operations include a first replication operation defining a modify operation directed to a metadata container type that differs from the matching metadata container type and a second replication operation defining a create operation;a processor; a memory; a lookup component configured to find a matching metadata container of a file system object on the destination storage system corresponding to an individual target metadata container address; an evaluation component configured to detect an inconsistency between an individual replication operation corresponding to the individual target metadata container address and the matching metadata container of the file system object and to determine based on the detection that the individual replication operation is a replacement operation, wherein the replacement operation is a replication operation received in a chronologically different order from the order the corresponding change occurred on the source storage system; and a hijack component configured to replace a part of the metadata in the matching metadata container based on an individual replication operation corresponding to the individual target metadata container address without waiting for a later replication operation;
wherein the hijack component is further configured to;store metadata in a first part of the matching metadata container based on the first replication operation; and store metadata in a second part of the matching metadata container based on the second replication operation. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method for replicating data in a destination network storage system, the method comprising:
-
receiving information defining multiple replication operations corresponding to changes on a source storage system, wherein the information specifies a target inode identifier, an operation type, and metadata for each replication operation; determining a destination inode on the destination network storage system based on at least a portion of the target inode identifier for an individual replication operation, wherein the destination inode includes destination inode metadata; detecting a replacement operation by comparing the destination inode metadata to at least one of the target inode identifier, the operation type, and the metadata, wherein a replacement operation exists when the individual replication operation cannot be executed on the destination inode, and wherein the replacement operation is a replication operation received in a chronologically different order from the order the corresponding change occurred on the source storage system; and in response to detecting the replacement operation, storing at least a part of the destination inode metadata in the destination inode with the metadata associated with the target inode identifier without waiting for a later replication operation; wherein the replacement operation is a create operation directed to an inode that already exists on the destination network storage system, or a modify operation directed to an unused inode, or a replication operation including a target inode type that differs from an inode type of a corresponding destination inode, or a replication operation including a target inode generation number that differs form a generation number of the corresponding destination inode, or a replication operation that is inconsistent with the type of the destination inode; wherein the individual replication operation is a first replication operation, wherein the operation type is a modify operation directed to an inode type that differs from a type of the destination inode, wherein storing at least part of the metadata comprises storing a part of the metadata in a first section of the destination inode, wherein the information defining multiple replication operations includes a second replication operation having a create type, and further comprising; storing metadata in a second section of the destination inode based on the second replication operation. - View Dependent Claims (15, 16, 17, 18)
-
-
19. An apparatus for replicating data in a storage system, the apparatus comprising:
-
a network interface configured to receive information defining multiple replication operations in an arbitrary order, the multiple replication operations corresponding to changes on a source storage system; a memory; a processor coupled to the memory; an evaluation component configured to detect an inconsistency between an individual replication operation and a destination inode in the storage system and to determine that the individual replication operation is a replacement operation based on the inconsistency, wherein the replacement operation is a replication operation received in a chronologically different order from the order the corresponding change occurred on the source storage system; and a hijack component configured to replace metadata in the destination inode based on the individual replication operation without waiting for a later replication operation; wherein the multiple replication operations include a modify operation and a create operation, and wherein the hijack component is further configured to; store metadata in a first part of the matching metadata container based on the modify operation; and store metadata in a second part of the matching metadata container based on the create operation. - View Dependent Claims (20, 21, 22)
-
Specification