IP Library Granted Patent US 11,086,740
Granted Patent B2
US 11,086,740 · App. 16/156,234 · Granted Aug 10, 2021

Maintaining storage array online

Inventors: Bo Zou (Shanghai, CN); Yang Liu (Shanghai, CN)
Assignee: International Business Machines Corporation
G06F11/2094G06F3/0617G06F3/0659G06F3/0683G06F2201/805G06F2201/82
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 11,086,740
App. No.
16/156,234
Granted
Aug 10, 2021
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method, system and computer program product for maintaining a storage array online. According to the method, an unrecoverable error is detected by one or more processors as having occurred in a failed disk of a storage array in first storage. The failed disk is replaced with a spare disk in the first storage. Data is retrieved from a second storage for storing into a stripe of the first storage based on address information of a data block of the failed disk. The second storage stores mirrored data of data stored in the first storage. The stripe includes data blocks distributed across all disks in the storage array of the first storage. The retrieved data is caused to be written into the stripe of the storage array of the first storage. In other embodiments, a system and a computer program product are disclosed.

Claims (63)

1. A computer-implemented method for maintaining a storage array online when an unrecoverable error has occurred comprising:

a storage architecture that includes a first storage, a second storage, one or more arrays in the first storage, and multiple disks in each storage array, wherein the second storage stores mirrored data of the first storage;

detecting an unrecoverable error occurred in the first storage, wherein the unrecoverable error occurred in a failed disk during a process of rebuilding data for the failed disk;

replacing the failed disk in the first storage with a spare disk from the first storage where the unrecoverable error occurred while the first storage remains in an online state;

retrieving data from the second storage based on address information of a data block of the failed disk, wherein the data from the second storage has been verified to be synchronized with the first storage, wherein the data from the second storage is retrieved in units of stripes, wherein the data of the second storage is retrieved by mapping the address information of the data block of the failed disk to a secondary storage address; and

causing the retrieved data to be written to the spare disk of the first storage.

2. The method of claim 1 , wherein retrieving of the data further comprises:

retrieving the data from the second storage with a background operation in response to a rebuilding bitmap indicating that the data block of the failed disk is to be rebuilt.

3. The method of claim 1 , wherein the replacing of the failed disk further comprises:

monitoring a plurality of factors, wherein the plurality of factors includes a number of storage arrays of the first storage in which unrecoverable errors have occurred, utilization of cache in the first storage, historical I/O workload of the failed disk within a predetermined time period, and a number of I/O request timeouts occurred in the first storage; and

replacing the failed disk in response to the at least one of the factors being below a corresponding threshold.

4. The method of claim 1 , wherein the retrieving the data from the second storage further comprises:

retrieving the data from the second storage in response to a failure of an I/O request caused by the unrecoverable error.

5. The method of claim 4 , wherein the I/O request further comprises;

requesting to read data from the data block of the failed disk; and

providing the retrieved data based on the request.

6. The method of claim 4 , wherein the I/O request further comprises;

requesting to write new data into the data block of the failed disk; and

causing the new data to be written into a data block of the spare disk after the data has been written into a stripe.

7. The method of claim 6 , further comprises:

updating a rebuilding bitmap to indicate that data in the data block of the failed disk has been rebuilt in response to the data having been written to the stripe.

8. A system for maintaining a storage array online when an unrecoverable error has occurred comprising:

a processing unit; and

a memory coupled to the processing unit and storing instructions thereon, the instructions, when executed by the processing unit, performing acts including:

a storage architecture that includes a first storage, a second storage, one or more arrays in the first storage, and multiple disks in each storage array, wherein the second storage stores mirrored data of the first storage;

detecting an unrecoverable error occurred in the first storage, wherein the unrecoverable error occurred in a failed disk during a process of rebuilding data for the failed disk;

replacing the failed disk in the first storage with a spare disk from the first storage where the unrecoverable error occurred while the first storage remains in an online state;

retrieving data from the second storage based on address information of a data block of the failed disk, wherein the data from the second storage has been verified to be synchronized with the first storage, wherein the data from the second storage is retrieved in units of stripes, wherein the data of the second storage is retrieved by mapping the address information of the data block of the failed disk to a secondary storage address; and

causing the retrieved data to be written to the spare disk of the first storage.

9. The system of claim 8 , wherein retrieving of the data further comprises:

retrieving the data from the second storage with a background operation in response to a rebuilding bitmap indicating that the data block of the failed disk is to be rebuilt.

10. The system of claim 8 , wherein the replacing of the failed disk further comprises:

monitoring a plurality of factors, wherein the plurality of factors includes a number of storage arrays of the first storage in which unrecoverable errors have occurred, utilization of cache in the first storage, historical I/O workload of the failed disk within a predetermined time period, and a number of I/O request timeouts occurred in the first storage; and

replacing the failed disk in response to the at least one of the factors being below a corresponding threshold.

11. The system of claim 8 , wherein the retrieving the data from the second storage further comprises:

retrieving the data from the second storage in response to a failure of an I/O request caused by the unrecoverable error.

12. The system of claim 11 , wherein the I/O request further comprises;

requesting to read data from the data block of the failed disk; and

providing the retrieved data based on the request.

13. The system of claim 11 , wherein the I/O request further comprises;

requesting to write new data into the data block of the failed disk; and

causing the new data to be written into a data block of the spare disk after the data has been written into a stripe.

14. The system of claim 13 , further comprises:

updating a rebuilding bitmap to indicate that data in the data block of the failed disk has been rebuilt in response to the data having been written to the stripe.

15. A computer program product for maintaining a storage array online when an unrecoverable error has occurred being tangibly stored on a non-transitory machine- readable storage medium and comprising machine-executable instructions, the machine-executable instructions, when executed on a device, causing the device to perform acts including:

a storage architecture that includes a first storage, a second storage, one or more arrays in the first storage, and multiple disks in each storage array, wherein the second storage stores mirrored data of the first storage;

detecting an unrecoverable error occurred in the first storage, wherein the unrecoverable error occurred in a failed disk during a process of rebuilding data for the failed disk;

replacing the failed disk in the first storage with a spare disk from the first storage where the unrecoverable error occurred while the first storage remains in an online state;

retrieving data from the second storage based on address information of a data block of the failed disk, wherein the data from the second storage has been verified to be synchronized with the first storage, wherein the data from the second storage is retrieved in units of stripes, wherein the data of the second storage is retrieved by mapping the address information of the data block of the failed disk to a secondary storage address; and

causing the retrieved data to be written to the spare disk of the first storage.

16. The computer program product of claim 15 , wherein retrieving of the data further comprises:

retrieving the data from the second storage with a background operation in response to a rebuilding bitmap indicating that the data block of the failed disk is to be rebuilt.

17. The computer program product of claim 15 , wherein the replacing of the failed disk further comprises:

monitoring a plurality of factors, wherein the plurality of factors includes a number of storage arrays of the first storage in which unrecoverable errors have occurred, utilization of cache in the first storage, historical I/O workload of the failed disk within a predetermined time period, and a number of I/O request timeouts occurred in the first storage; and

replacing the failed disk in response to the at least one of the factors being below a corresponding threshold.

18. The computer program product of claim 15 , wherein the retrieving the data from the second storage further comprises:

retrieving the data from the second storage in response to a failure of an I/O request caused by the unrecoverable error.

19. The computer program product of claim 18 , wherein the I/O request further comprises;

requesting to read data from the data block of the failed disk; and

providing the retrieved data based on the request.

20. The computer program product of claim 18 , wherein the I/O request further comprises;

requesting to write new data into the data block of the failed disk; and

causing the new data to be written into a data block of the spare disk after the data has been written into a stripe.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2018
From: ZOU, BO; LIU, YANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047121/0842 →
Continuity (1)
Related Publication 20200117556A1 · Apr 16, 2020
Cited By (1)
US 12,254,320