Efficient mechanism to replicate data for multiple controllers
First Claim
1. A method comprising:
- issuing, at a host processor, a write command to a primary storage controller;
receiving, at the primary storage controller, the write command;
transferring, at the primary storage controller, write data associated with the write command to a primary storage controller memory local to the primary storage controller;
resending, at the host processor, the write command to a peer storage controller, wherein the peer storage controller provides redundancy for the primary storage controller;
receiving, at the peer storage controller, the write command;
transferring, at the peer storage controller, the write data associated with the write command to a peer storage controller memory local to the peer storage controller;
writing, by the primary storage controller, the write data from the primary storage controller memory to a storage subsystem; and
instructing, by the primary storage controller, the peer storage controller to discard the write data stored in the peer storage controller memory.
14 Assignments
0 Petitions
Accused Products
Abstract
An information handling system and method allows implementation of fault-tolerant storage subsystems using multiple storage controllers not themselves originally designed to support the redundancy of such fault-tolerant storage subsystems. In accordance with one embodiment, uncommitted data is efficiently and rapidly replicated across multiple commodity storage controllers, enabling faster and less expensive fault-tolerant storage subsystems. A redundant storage controller system can improve the efficiency of data replication while providing failure protection against controller failure. A redundant storage controller system using shared memory commonly accessible to the storage controllers can be enhanced to replicate data within host memory regions to protect against non-volatile memory failure. In accordance with at least one embodiment, an efficient data replication mechanism can be provided between storage controllers using off-the-shelf hardware.
10 Citations
20 Claims
-
1. A method comprising:
-
issuing, at a host processor, a write command to a primary storage controller; receiving, at the primary storage controller, the write command; transferring, at the primary storage controller, write data associated with the write command to a primary storage controller memory local to the primary storage controller; resending, at the host processor, the write command to a peer storage controller, wherein the peer storage controller provides redundancy for the primary storage controller; receiving, at the peer storage controller, the write command; transferring, at the peer storage controller, the write data associated with the write command to a peer storage controller memory local to the peer storage controller; writing, by the primary storage controller, the write data from the primary storage controller memory to a storage subsystem; and instructing, by the primary storage controller, the peer storage controller to discard the write data stored in the peer storage controller memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An information handling system comprising:
-
a host processor including a host memory for storing instructions executable by the host processor to cause the host processor to issue a write command to a primary storage controller and to resend the write command to a peer storage controller; and the primary storage controller including a primary storage controller memory for storing instructions executable by the primary storage controller to cause the primary storage controller to receive the write command, to transfer write data associated with the write command to the primary storage controller memory, and to write the write data from the primary storage controller memory to a storage subsystem, wherein the peer storage controller provides redundancy for the primary storage controller, the peer storage controller including peer storage controller memory for storing instructions executable by the peer storage controller to cause the peer storage controller to receive the write command, and to transfer the write data associated with the write command to the peer storage controller memory, wherein the instructions executable by the primary storage controller further comprise instructions to cause the primary storage controller to instruct the peer storage controller to discard the write data stored in the peer storage controller memory. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method comprising:
-
issuing, at a host processor, a write command to a primary storage controller; receiving, at the primary storage controller, the write command; transferring, by the primary storage controller, write data associated with the write command to a host memory region of a host memory local to the host processor, wherein the host memory region is commonly accessible to the primary storage controller and to a peer storage controller, wherein the peer storage controller provides redundancy for the primary storage controller; informing, by the primary storage controller, a peer storage controller of the write data stored in the host memory region; generating, by the primary storage controller, parity data in response to the write command; storing, by the primary storage controller, the parity data in the host memory region; updating, by the primary storage controller, metadata for use by the peer storage controller; writing, by the primary storage controller, the write data from the host memory region to a storage subsystem; and updating, by the primary storage controller, the metadata in response to the writing. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification