IP Library Granted Patent US 8,131,957
Granted Patent B2
US 8,131,957 · App. 11/840,169 · Granted Mar 6, 2012

Splitting writes between a storage controller and replication engine

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,131,957
App. No.
11/840,169
Granted
Mar 6, 2012
Kind
B2
Abstract

Provided are a method, system, and article of manufacture for splitting writes between a storage controller and replication engine. A splitter executing in a storage controller manages access to primary volumes. An initialization command is received to communicate with a replication engine. A replication command is received for one primary volume and the primary volume is indicated as subject to replication. A write request is received to write data to a target primary volume of the primary volumes that is indicated as subject to the replication. The data in the write request is written to the target primary volume. The data in the write request is sent to the replication engine. The replication engine executes a copy services function associated with the target primary volume to write the data to a replication engine volume.

Claims (123)

1. A method to replicate data performed by a splitter executing in a storage controller managing access to primary volumes, comprising:

receiving an initialization command to communicate with a replication engine over a network, wherein the replication engine and the storage controller including the splitter communicate over the network, and wherein the replication engine and the splitter communicate by packaging commands and data in a standard storage communication protocol package for transmission over the network;

receiving a replication command for one primary volume to split data for the primary volume to the replication engine;

indicating in primary volume metadata, in response to the replication command, the primary volume as subject to replication and the replication engine to which the data in the primary volume is split;

receiving a write request to write data to a target primary volume of the primary volumes that is indicated in the primary volume metadata for the target primary volume as subject to the replication;

writing the data in the write request to the target primary volume; and

sending the data in the write request to the replication engine indicated in the primary volume metadata for the target primary volume in the standard storage communication protocol package indicating a copy services function, wherein the replication engine executes the copy services function associated with the target primary volume, as indicated in the storage communication protocol package, to write the data to a replication engine volume, wherein the replication engine and the replication engine volume communicate from different locations over a network.

2. The method of claim 1 , wherein there are a plurality of replication engines each implementing heterogeneous copy functions from different vendors, further comprising:

using, by the splitter, a same set of commands and the standard storage communication protocol to communicate with the different replication engines to invoke the heterogeneous copy functions.

3. The method of claim 1 , further comprising:

returning complete to the write request in response to receiving acknowledgment that the write completed at both the primary volume and at the replication engine volume.

4. The method of claim 1 , further comprising:

detecting a failure in communicating with the replication engine;

recording indications in a record change data structure of writes to the primary volume that occur following the detected failure;

receiving a request from the replication engine for the record change data structure;

sending information on changed data in the record change data structure to the replication engine; and

clearing the record change data structure in response to sending the record change data structure to the replication engine.

5. The method of claim 4 , further comprising:

receiving a request from the replication engine for updated data in the primary volume indicated in the record change data structure; and

sending the requested updated data indicated in the record change data structure to the replication engine.

6. The method of claim 1 , further comprising:

receiving indication of a region to copy from the replication engine to the primary volume;

requesting from the replication engine data indicated in the region;

receiving data from replication engine indicated in the region;

writing the received data indicated in the region to the primary volume; and

indicating that the data in the region was written to the primary volume in response to writing the data received from the replication engine to the primary volume.

7. The method of claim 6 , wherein the receiving the indication of the region comprises receiving a list of regions to copy from the replication engine to the primary volume, further comprising:

receiving a read request to data in the primary volume after receiving the list of regions;

determining whether the read requested data is indicated in the list;

redirecting the read request to the replication engine in response to determining that the read requested data is indicated in the list; and

returning the read requested data from the primary volume in response to determining that the read requested data is not indicated in the list.

8. The method of claim 6 , further comprising:

receiving a write request to write data to the primary volume after receiving the region;

determining whether the data to write is indicated in the region; and

indicating that the data from the write request in the region was written to the primary volume in response to writing the data to the primary volume.

9. The method of claim 1 , further comprising:

receiving indication of a region to copy from the primary volume to the replication engine;

sending data from the indicated region to the replication engine; and

indicating that the data in the region was sent to the replication engine in response to sending the data indicated in the region to the replication engine.

10. The method of claim 1 , further comprising:

receiving a command to create a virtual primary volume associated with a replication engine volume;

creating a virtual primary volume accessible to a host;

receiving an Input/Output (I/O) request directed to the virtual primary volume;

directing the I/O request directed to the virtual primary volume to the replication engine.

11. The method of claim 1 , wherein the replication engine executes an additional function associated with the target primary volume.

12. A system managing access to primary volumes and communicating in a network including a replication engine and a replication engine volume, comprising:

a computer readable medium having primary volume metadata; and

a splitter enabled to cause operations, the operations comprising:

receiving an initialization command to communicate with the replication engine over the network, wherein the replication engine and the system including the splitter communicate over the network, and wherein the replication engine and the splitter communicate by packaging commands and data in a standard storage communication protocol package for transmission over the network;

receiving a replication command for one primary volume to split data for the primary volume to the replication engine;

indicating in the primary volume metadata, in response to the replication command, that the primary volume is subject to replication and the replication engine to which the data in the primary volume is split;

receiving a write request to write data to a target primary volume of the primary volumes that is indicated in the primary volume metadata for the target primary volume as subject to the replication;

writing the data in the write request to the target primary volume; and

sending the data in the write request to the replication engine indicated in the primary volume metadata for the target primary volume in the standard storage communication protocol package indicating a copy services function, wherein the replication engine executes the copy services function associated with the target primary volume, as indicated in the storage communication protocol package, to write the data to a replication engine volume, wherein the replication engine and the replication engine volume communicate from different locations over the network.

13. The system of claim 12 , wherein there are a plurality of replication engines each implementing heterogeneous copy functions from different vendors, wherein the splitter further causes operations comprising:

using a same set of commands and the standard storage communication protocol to communicate with the different replication engines to invoke the heterogeneous copy functions.

14. The system of claim 12 , wherein the splitter further causes operations comprising:

detecting a failure in communicating with the replication engine;

recording indications in a record change data structure of writes to the primary volume that occur following the detected failure;

receiving a request from the replication engine for the record change data structure;

sending information on changed data in the record change data structure to the replication engine; and

clearing the record change data structure in response to sending the record change data structure to the replication engine.

15. The system of claim 12 , wherein the splitter further causes operations comprising:

receiving indication of a region to copy from the replication engine to the primary volume;

requesting from the replication engine data indicated in the region;

receiving data from replication engine indicated in the region;

writing the received data indicated in the region to the primary volume; and

indicating that the data in the region was written to the primary volume in response to writing the data received from the replication engine to the primary volume.

16. The system of claim 15 , wherein the receiving the indication of the region comprises receiving a list of regions to copy from the replication engine to the primary volume, and wherein the splitter further causes operations comprising:

receiving a read request to data in the primary volume after receiving the list of regions;

determining whether the read requested data is indicated in the list;

redirecting the read request to the replication engine in response to determining that the read requested data is indicated in the list; and

returning the read requested data from the primary volume in response to determining that the read requested data is not indicated in the list.

17. The system of claim 12 , wherein the splitter further causes operations comprising:

receiving a command to create a virtual primary volume associated with a replication engine volume;

creating a virtual primary volume accessible to a host;

receiving an Input/Output (I/O) request directed to the virtual primary volume;

directing the I/O request directed to the virtual primary volume to the replication engine.

18. An article of manufacture comprising a computer readable medium storing splitter code executed by a storage controller to communicate in a network including a replication engine and a replication engine volume, to manage access to primary volumes, and to cause operations to be performed, the operations comprising:

receiving an initialization command to communicate with the replication engine over the network, wherein the replication engine and the storage controller including the splitter communicate over the network, and wherein the replication engine and the splitter communicate by packaging commands and data in a standard storage communication protocol package for transmission over the network;

receiving a replication command for one primary volume to split data for the primary volume to the replication engine;

indicating in primary volume metadata, in response to the replication command, the primary volume as subject to replication and the replication engine to which the data in the primary volume is split;

receiving a write request to write data to a target primary volume of the primary volumes that is indicated in the primary volume metadata for the target primary volume as subject to the replication;

writing the data in the write request to the target primary volume; and

sending the data in the write request to the replication engine indicated in the primary volume metadata for the target primary volume in the standard storage communication protocol package indicating a copy services function, wherein the replication engine executes the copy services function associated with the target primary volume, as indicated in the storage communication protocol package, to write the data to a replication engine volume, wherein the replication engine and the replication engine volume communicate from different locations over the network.

19. The article of manufacture of claim 18 , wherein there are a plurality of replication engines each implementing heterogeneous copy functions from different vendors, wherein the operations further comprise:

using a same set of commands and the standard storage communication protocol to communicate with the different replication engines to invoke the heterogeneous copy functions.

20. The article of manufacture of claim 18 , wherein the operations further comprise:

returning complete to the write request in response to receiving acknowledgment that the write completed at both the primary volume and at the replication engine volume.

21. The article of manufacture of claim 18 , wherein the operations further comprise:

detecting a failure in communicating with the replication engine;

recording indications in a record change data structure of writes to the primary volume that occur following the detected failure;

receiving a request from the replication engine for the record change data structure;

sending information on changed data in the record change data structure to the replication engine; and

clearing the record change data structure in response to sending the record change data structure to the replication engine.

22. The article of manufacture of claim 21 , wherein the operations further comprise:

receiving a request from the replication engine for updated data in the primary volume indicated in the record change data structure; and

sending the requested updated data indicated in the record change data structure to the replication engine.

23. The article of manufacture of claim 18 , wherein the operations further comprise:

receiving indication of a region to copy from the replication engine to the primary volume;

requesting from the replication engine data indicated in the region;

receiving data from replication engine indicated in the region;

writing the received data indicated in the region to the primary volume; and

indicating that the data in the region was written to the primary volume in response to writing the data received from the replication engine to the primary volume.

24. The article of manufacture of claim 23 , wherein the receiving the indication of the region comprises receiving a list of regions to copy from the replication engine to the primary volume, and wherein the operations further comprise:

receiving a read request to data in the primary volume after receiving the list of regions;

determining whether the read requested data is indicated in the list;

redirecting the read request to the replication engine in response to determining that the read requested data is indicated in the list; and

returning the read requested data from the primary volume in response to determining that the read requested data is not indicated in the list.

25. The article of manufacture of claim 23 , wherein the operations further comprise:

receiving a write request to write data to the primary volume after receiving the region;

determining whether the data to write is indicated in the region; and

indicating that the data from the write request in the region was written to the primary volume in response to writing the data to the primary volume.

26. The article of manufacture of claim 18 , wherein the operations further comprise:

receiving indication of a region to copy from the primary volume to the replication engine;

sending data from the indicated region to the replication engine; and

indicating that the data in the region was sent to the replication engine in response to sending the data indicated in the region to the replication engine.

27. The article of manufacture of claim 18 , wherein the operations further comprise:

receiving a command to create a virtual primary volume associated with a replication engine volume;

creating a virtual primary volume accessible to a host;

receiving an Input/Output (I/O) request directed to the virtual primary volume;

directing the I/O request directed to the virtual primary volume to the replication engine.

28. The article of manufacture of claim 18 , wherein the replication engine executes an additional function associated with the target primary volume.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 033531/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2008
From: BARTFAI, ROBERT FRANCIS; BOYD, KENNETH WAYNE; CHEN, JAMES CHIEN-CHIUNG; DAY, KENNETH FAIRCLOUGH, III; FIENBLIT, SHACHAR; MCBRIDE, GREGORY EDWARD; MESSINA, DAVID W.; NICHOLSON, ROBERT BRUCE; SPEAR, GAIL ANDREA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020437/0567 →