IP Library › Granted Patent US 10,585,767
Granted Patent B2
US 10,585,767 · App. 15/890,508 · Granted Mar 10, 2020

Automatic data healing using a storage controller

Inventors: William J. Rooney (Hopewell Junction, NY); Tabor R. Powelson (Poughkeepsie, NY); David R. Blea (Round Rock, TX); Gregory E. McBride (Vail, AZ); Dale F. Riedy (Poughkeepsie, NY); Carol S. Mellgren (Tucson, AZ)
Assignee: International Business Machines Corporation
G06F11/2064G06F11/2056G06F11/2076G06F11/2082G06F11/2069G06F11/2092
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 10,585,767
App. No.
15/890,508
Granted
Mar 10, 2020
Kind
B2
Abstract

Provided is a method for correcting pinned data in a primary storage. A primary storage controller may detect a pinned data set on a primary storage. In response to detecting the pinned data set, the primary storage controller may instruct a secondary storage controller to transmit a copy of the pinned data set to the primary storage controller. The copy of the pinned data set may be stored in a secondary storage that is communicatively coupled to the secondary storage controller. The secondary storage may include a synchronous copy of the primary storage. The primary storage controller may receive the copy of the pinned data set from the secondary storage controller. The primary storage controller may also write the copy of the pinned data set over the pinned data set on the primary storage.

Claims (74)

1. A computer-implemented method for correcting pinned data, the method comprising:

detecting, by a primary storage controller, a pinned data set on a primary storage;

instructing, in response to detecting the pinned data set on the primary storage and by the primary storage controller, a secondary storage controller to transmit a copy of the pinned data set to the primary storage controller, the copy of the pinned data set being stored in a secondary storage communicatively coupled to the secondary storage controller, the secondary storage including a synchronous copy of the primary storage,

wherein instructing the secondary storage controller to transmit the copy of the pinned data set to the primary storage controller includes:

issuing, by the primary storage controller, a first command to the secondary storage controller, the first command instructing the secondary storage controller to read the copy of the pinned data set into a temporary buffer; and

issuing, by the primary storage controller, a second command to the secondary storage controller, the second command instructing the secondary storage controller to transmit the copy of the pinned data from the temporary buffer to the primary storage controller;

receiving, by the primary storage controller, the copy of the pinned data set from the secondary storage controller; and

writing, by the primary storage controller, the copy of the pinned data set over the pinned data set on the primary storage.

2. The method of claim 1 , wherein detecting the pinned data set on the primary storage includes:

performing a consistency check operation on the primary storage; and

determining, in response to performing the consistency check, that there is pinned data in the primary storage.

3. The method of claim 2 , the method further comprising:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a storage health alert to a host device.

4. The method of claim 1 , wherein detecting the pinned data set on the primary storage includes:

attempting to execute an input/output (I/O) operation against one or more tracks in the primary storage;

determining that the I/O instruction operation failed due to pinned data.

5. The method of claim 4 , the method further comprising:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a unit check error to a host device.

6. The method of claim 4 , the method further comprising:

presenting, in response to determining that the I/O instruction operation failed, a control unit busy state to keep the I/O operation in a start-pending status;

resetting, after writing the copy of the pinned data set over the pinned data set on the primary storage, the control unit busy state; and

executing, after resetting the control unit busy state, the I/O operation.

7. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a primary storage controller to cause the primary storage controller to perform a method comprising:

detecting a pinned data set on a primary storage;

instructing, in response to detecting the pinned data set on the primary storage and by the primary storage controller, a secondary storage controller to transmit a copy of the pinned data set to the primary storage controller, the copy of the pinned data set being stored in a secondary storage communicatively coupled to the secondary storage controller, the secondary storage including a synchronous copy of the primary storage,

wherein instructing the secondary storage controller to transmit the copy of the pinned data set to the primary storage controller includes:

issuing a first command to the secondary storage controller, the first command instructing the secondary storage controller to read the copy of the pinned data set into a temporary buffer; and

issuing a second command to the secondary storage controller, the second command instructing the secondary storage controller to transmit the copy of the pinned data from the temporary buffer to the primary storage controller;

receiving the copy of the pinned data set from the secondary storage controller; and

writing the copy of the pinned data set over the pinned data set on the primary storage.

8. The computer program product of claim 7 , wherein detecting the pinned data set on the primary storage includes:

performing a consistency check operation on the primary storage; and

determining, in response to performing the consistency check, that there is pinned data in the primary storage.

9. The computer program product of claim 8 , wherein the method performed by the primary storage controller further comprises:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a storage health alert to a host device.

10. The computer program product of claim 7 , wherein detecting the pinned data set on the primary storage includes:

attempting to execute an input/output (I/O) operation against one or more tracks in the primary storage;

determining that the I/O instruction operation failed due to pinned data.

11. The computer program product of claim 10 , wherein the method performed by the primary storage controller further comprises:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a unit check error to a host device.

12. The computer program product of claim 10 , wherein the method performed by the primary storage controller further comprises:

presenting, in response to determining that the I/O instruction operation failed, a control unit busy state to keep the I/O operation in a start-pending status;

resetting, after writing the copy of the pinned data set over the pinned data set on the primary storage, the control unit busy state; and

executing, after resetting the control unit busy state, the I/O operation.

13. A system comprising:

a primary storage configured to store data; and

a primary storage controller communicatively coupled to the primary storage, wherein the primary storage controller is configured to perform a method comprising:

detecting a pinned data set on the primary storage;

instructing, in response to detecting the pinned data set on the primary storage and by the primary storage controller, a secondary storage controller to transmit a copy of the pinned data set to the primary storage controller, the copy of the pinned data set being stored in a secondary storage communicatively coupled to the secondary storage controller, the secondary storage including a synchronous copy of the primary storage,

wherein instructing the secondary storage controller to transmit the copy of the pinned data set to the primary storage controller includes:

issuing a first command to the secondary storage controller, the first command instructing the secondary storage controller to read the copy of the pinned data set into a temporary buffer; and

issuing a second command to the secondary storage controller, the second command instructing the secondary storage controller to transmit the copy of the pinned data from the temporary buffer to the primary storage controller;

receiving the copy of the pinned data set from the secondary storage controller; and

writing the copy of the pinned data set over the pinned data set on the primary storage.

14. The system of claim 13 , wherein detecting the pinned data set on the primary storage includes:

performing a consistency check operation on the primary storage; and

determining, in response to performing the consistency check, that there is pinned data in the primary storage.

15. The system of claim 14 , wherein the method performed by the primary storage controller further comprises:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a storage health alert to a host device, wherein the host device is communicatively coupled to the primary storage controller and the secondary storage controller.

16. The system of claim 13 , wherein detecting the pinned data set on the primary storage includes:

attempting to execute an input/output (I/O) operation against one or more tracks in the primary storage;

determining that the I/O instruction operation failed due to pinned data.

17. The system of claim 16 , wherein the method performed by the primary storage controller further comprises:

determining that the primary storage controller failed to correct the pinned data; and

raising, by the primary storage controller, a unit check error to a host device.

18. The system of claim 16 , wherein the method performed by the primary storage controller further comprises:

presenting, in response to determining that the I/O instruction operation failed, a control unit busy state to keep the I/O operation in a start-pending status;

resetting, after writing the copy of the pinned data set over the pinned data set on the primary storage, the control unit busy state; and

executing, after resetting the control unit busy state, the I/O operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2018
From: ROONEY, WILLIAM J.; POWELSON, TABOR R.; BLEA, DAVID R.; MCBRIDE, GREGORY E.; RIEDY, DALE F.; MELLGREN, CAROL S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044852/0630 →
Continuity (1)
Related Publication 20190243703A1 · Aug 8, 2019