# US 10,120,598 B2 · Validation of write data subsequent to destaging to auxiliary storage for completion of peer to peer remote copy

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,598 B2
- Document ID: US10120598B2
- Status: Granted
- Kind: B2
- Application number: 15/336,431
- Filed: 2016-10-27
- Published: 2018-05-03
- Granted: 2018-11-06
- Earliest claimed: 2016-10-27
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Matthew G. Borlick; Lokesh M. Gupta; Brian A. Rinaldi; Micah Robison
- Web page: https://patentgrep.com/patent/US10120598B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 11/14: Error detection or correction of the data by redundancy in operations (error detection or correction of the data by redundancy in hardware G06F11/16)
- G06F 11/1402: {Saving, restoring, recovering or retrying}
- G06F 11/1612: {where the redundant component is persistent storage}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A primary storage controller receives a write command from a host, to write data that is to be controlled by the primary storage controller. The data is written to local storage of the primary storage controller and subsequently the data is destaged from the local storage of the primary storage controller to store the data in an auxiliary storage of the primary storage controller. The data is transmitted to a secondary storage controller for writing the data to local storage of the secondary storage controller and for subsequently destaging the data from the local storage of the secondary storage controller to store the data in an auxiliary storage of the secondary storage controller. The data stored in the auxiliary storage of the primary storage controller is compared to the data stored in the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed.

## Claims

### Claim 1

A method, comprising:
receiving, by a primary storage controller, a transaction to perform a write command from a host, to write data that is to be controlled by the primary storage controller;
in response to determining that a user has requested that secure peer to peer remote copy operations are to be performed between the primary storage controller and a secondary storage controller, performing secure peer to peer remote copy operations comprising:
writing the data to a local storage of the primary storage controller and subsequently destaging the data from the local storage of the primary storage controller to store the data in an auxiliary storage of the primary storage controller;
transmitting the data to the secondary storage controller for writing the data to a local storage of the secondary storage controller and subsequently destaging the data from the local storage of the secondary storage controller to store the data in an auxiliary storage of the secondary storage controller;
subsequent to the destaging of the data from the local storage of the primary storage controller to the auxiliary storage of the primary storage controller, staging the data from the auxiliary storage of the primary storage controller to the local storage of the primary storage controller;
subsequent to the destaging of the data from the local storage of the secondary storage controller to the auxiliary storage of the secondary storage controller, staging the data from the auxiliary storage of the secondary storage controller to the local storage of the secondary storage controller, and then transmitting the data staged to the local storage of the secondary storage controller to the primary storage controller; and
subsequent to the staging of the data to the local storage of the primary storage controller and the transmitting of the data staged to the local storage of the secondary storage controller to the primary storage controller, comparing the data staged to the local storage of the primary storage controller to the data received at the primary storage controller from the secondary storage controller to determine whether the write command is successfully executed; and
in response to determining that the user has requested that normal peer to peer remote copy operations are to be performed between the primary storage controller and the secondary storage controller, performing a peer to peer remote copy of the data from the primary storage controller to the secondary storage controller, wherein in the peer to peer remote copy an indication is provided to the host that the write command is successfully executed without comparing the data stored in the auxiliary storage of the primary storage controller to the data stored in the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed as in the secure peer to peer remote copy operations.

### Claim 2 (depends on 1)

The method of claim 1, wherein the performing further comprises:
in response to determining that the data staged to the local storage of the primary storage controller is identical to the data received from the secondary storage controller, sending an indication to the host that the write command is successfully executed.

### Claim 3 (depends on 1)

The method of claim 1, wherein the comparing of the data stored in the auxiliary storage of the primary storage controller to the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed is performed at predetermined intervals of time.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the local storage of the primary storage controller is coupled via a bus of the primary storage controller to a processor of the primary storage controller, and the auxiliary storage of the primary storage controller is external to an enclosure of the primary storage controller; and
the local storage of the secondary storage controller is coupled via a bus of the secondary storage controller to a processor of the secondary storage controller and the auxiliary storage of the secondary storage controller is external to an enclosure of the secondary storage controller.

### Claim 5 (depends on 1)

The method of claim 1, wherein in the normal peer remote copy operations, in response to an erroneous copy of the data being stored in the auxiliary storage of the secondary storage controller, the copy of the data stored in the secondary storage controller cannot be used to correctly replace the data stored in the primary storage controller.

### Claim 6

A system, comprising:
a memory; and
a processor coupled to the memory, wherein the processor performs operations, the operations performed by the processor comprising:
receiving, by a primary storage controller, a transaction to perform a write command from a host, to write data that is to be controlled by the primary storage controller;
in response to determining that a user has requested that secure peer to peer remote copy operations are to be performed between the primary storage controller and a secondary storage controller, performing secure peer to peer remote copy operations comprising:
writing the data to a local storage of the primary storage controller and subsequently destaging the data from the local storage of the primary storage controller to store the data in an auxiliary storage of the primary storage controller;
transmitting the data to the secondary storage controller for writing the data to a local storage of the secondary storage controller and subsequently destaging the data from the local storage of the secondary storage controller to store the data in an auxiliary storage of the secondary storage controller;
subsequent to the destaging of the data from the local storage of the primary storage controller to the auxiliary storage of the primary storage controller, staging the data from the auxiliary storage of the primary storage controller to the local storage of the primary storage controller;
subsequent to the destaging of the data from the local storage of the secondary storage controller to the auxiliary storage of the secondary storage controller, staging the data from the auxiliary storage of the secondary storage controller to the local storage of the secondary storage controller, and then transmitting the data staged to the local storage of the secondary storage controller to the primary storage controller; and
subsequent to the staging of the data to the local storage of the primary storage controller and the transmitting of the data staged to the local storage of the secondary storage controller to the primary storage controller, comparing the data staged to the local storage of the primary storage controller to the data received at the primary storage controller from the secondary storage controller to determine whether the write command is successfully executed; and
in response to determining that the user has requested that normal peer to peer remote copy operations are to be performed between the primary storage controller and the secondary storage controller, performing a peer to peer remote copy of the data from the primary storage controller to the secondary storage controller, wherein in the peer to peer remote copy an indication is provided to the host that the write command is successfully executed without comparing the data stored in the auxiliary storage of the primary storage controller to the data stored in the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed as in the secure peer to peer remote copy operations.

### Claim 7 (depends on 6)

The system of claim 6, wherein the performing further comprises:
in response to determining that the data staged to the local storage of the primary storage controller is identical to the data received from the secondary storage controller, sending an indication to the host that the write command is successfully executed.

### Claim 8 (depends on 6)

The system of claim 6, wherein the comparing of the data stored in the auxiliary storage of the primary storage controller to the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed is performed at predetermined intervals of time.

### Claim 9 (depends on 6)

The system of claim 6, wherein:
the local storage of the primary storage controller is coupled via a bus of the primary storage controller to a processor of the primary storage controller, and the auxiliary storage of the primary storage controller is external to an enclosure of the primary storage controller; and
the local storage of the secondary storage controller is coupled via a bus of the secondary storage controller to a processor of the secondary storage controller and the auxiliary storage of the secondary storage controller is external to an enclosure of the secondary storage controller.

### Claim 10 (depends on 6)

The system of claim 6, wherein in the normal peer remote copy operations, in response to an erroneous copy of the data being stored in the auxiliary storage of the secondary storage controller, the copy of the data stored in the secondary storage controller cannot be used to correctly replace the data stored in the primary storage controller.

### Claim 11

A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:
receiving, by a primary storage controller, a transaction to perform a write command from a host, to write data that is to be controlled by the primary storage controller;
in response to determining that a user has requested that secure peer to peer remote copy operations are to be performed between the primary storage controller and a secondary storage controller, performing secure peer to peer remote copy operations comprising:
writing the data to a local storage of the primary storage controller and subsequently destaging the data from the local storage of the primary storage controller to store the data in an auxiliary storage of the primary storage controller;
transmitting the data to the secondary storage controller for writing the data to a local storage of the secondary storage controller and subsequently destaging the data from the local storage of the secondary storage controller to store the data in an auxiliary storage of the secondary storage controller;
subsequent to the destaging of the data from the local storage of the primary storage controller to the auxiliary storage of the primary storage controller, staging the data from the auxiliary storage of the primary storage controller to the local storage of the primary storage controller;
subsequent to the destaging of the data from the local storage of the secondary storage controller to the auxiliary storage of the secondary storage controller, staging the data from the auxiliary storage of the secondary storage controller to the local storage of the secondary storage controller, and then transmitting the data staged to the local storage of the secondary storage controller to the primary storage controller; and
subsequent to the staging of the data to the local storage of the primary storage controller and the transmitting of the data staged to the local storage of the secondary storage controller to the primary storage controller, comparing the data staged to the local storage of the primary storage controller to the data received at the primary storage controller from the secondary storage controller to determine whether the write command is successfully executed; and
in response to determining that the user has requested that normal peer to peer remote copy operations are to be performed between the primary storage controller and the secondary storage controller, performing a peer to peer remote copy of the data from the primary storage controller to the secondary storage controller, wherein in the peer to peer remote copy an indication is provided to the host that the write command is successfully executed without comparing the data stored in the auxiliary storage of the primary storage controller to the data stored in the auxiliary storage of the secondary storage controller to determine whether the write command is successfully executed as in the secure peer to peer remote copy operations.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the performing further comprises:
in response to determining that the data staged to the local storage of the primary storage controller is identical to the data received from the secondary storage controller, sending an indication to the host that the write command is successfully executed.

### Claim 13 (depends on 11)

The computer program product of claim 11, wherein the comparing of the data staged to the local storage of the primary storage controller to the data received from the secondary storage controller is performed at predetermined intervals of time.

### Claim 14 (depends on 11)

The computer program product of claim 11, wherein:
the local storage of the primary storage controller is coupled via a bus of the primary storage controller to a processor of the primary storage controller, and the auxiliary storage of the primary storage controller is external to an enclosure of the primary storage controller; and
the local storage of the secondary storage controller is coupled via a bus of the secondary storage controller to a processor of the secondary storage controller and the auxiliary storage of the secondary storage controller is external to an enclosure of the secondary storage controller.

### Claim 15 (depends on 11)

The computer program product of claim 11, wherein in the normal peer remote copy operations, in response to an erroneous copy of the data being stored in the auxiliary storage of the secondary storage controller, the copy of the data stored in the secondary storage controller cannot be used to correctly replace the data stored in the primary storage controller.
