Low latency synchronous replication using an N-way router
First Claim
1. A method for routing an Input/Output operation (I/O) to support low latency synchronous replication among heterogeneous storage nodes, the method comprising:
- receiving the I/O from a source;
routing, within a primary storage node, the I/O to a first data volume manager for local storage;
routing, within the primary storage node, the I/O to a replicating module;
routing, within a secondary storage node, the I/O to a journaling module; and
routing, within the secondary storage node, the I/O from the journaling module to a second data volume manager for local storage, wherein the replicating module is operable to serialize a plurality of I/Os into a sequential journal structure prior to transmitting the sequential journal structure to the secondary storage node.
3 Assignments
0 Petitions
Accused Products
Abstract
Technologies for efficient synchronous replication across heterogeneous storage nodes can provide the performance of high-speed storage units while leveraging low-cost and high-capacity backup storage units within the same system. The performance of low-cost, high-capacity hard disks may be improved by initially storing data into sequential physical locations. A sequential journal of I/Os may be used in a replicated secondary node to allow for rapid completion of I/Os. A separate background process can later scatter the sequentially logged I/O data into its proper location for storage. A programmable n-way router can be configured to route I/Os as needed to improve overall performance of the storage unit. A secondary node log device can also be used to provide continuous data protection (CDP). Lastly, packetizing together I/Os prior to delivery to a secondary node may reduce interrupts and context switches in the primary node, thereby improving performance of the storage system.
-
Citations
17 Claims
-
1. A method for routing an Input/Output operation (I/O) to support low latency synchronous replication among heterogeneous storage nodes, the method comprising:
-
receiving the I/O from a source; routing, within a primary storage node, the I/O to a first data volume manager for local storage; routing, within the primary storage node, the I/O to a replicating module; routing, within a secondary storage node, the I/O to a journaling module; and routing, within the secondary storage node, the I/O from the journaling module to a second data volume manager for local storage, wherein the replicating module is operable to serialize a plurality of I/Os into a sequential journal structure prior to transmitting the sequential journal structure to the secondary storage node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for replicating an Input/Output operation (I/O) from a first storage node to a second storage node, the method comprising:
-
receiving the I/O at the first storage node; processing the I/O at the first storage node to store data from the I/O in the first storage node; replicating the I/O to the second storage node from the first storage node; storing the operation I/O to a sequential journal in the second storage node; and retrieving the I/O from the sequential journal to store the data from the I/O in the second storage node, wherein replicating the I/O to the second storage node comprises packetizing a plurality of I/Os into an aggregate I/O prior to transmitting the aggregate I/O to the second storage node. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-transitory computer storage medium having computer-executable instructions stored thereon which, when executed by a computer system, cause the computer system to:
-
determine if execution is on a primary storage node or a secondary storage node; receive an Input/Output operation from a source; route the I/O to a first data volume manager for local storage in response to determining that execution is on the primary storage node; route the I/O to a replicating module in response to determining that execution is on the primary storage node; route the I/O to a journaling module in response to determining that execution is on the secondary storage node; and route the I/O from the journaling module to a second data volume manager for local storage in response to determining that execution is on the secondary storage node, wherein the replicating module is operable to packetize a plurality of I/Os into an aggregate I/O prior to transmitting the aggregate I/O to the secondary storage node. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification