IP Library › Granted Patent US 11,099,934
Granted Patent B2
US 11,099,934 · App. 16/111,807 · Granted Aug 24, 2021

Data rebuilding

Inventor: Xue Qiang Zhou (Shanghai, CN)
Assignee: International Business Machines Corporation
G06F11/1092G06F11/1662G06F11/2094G06F16/2237G06F16/27G06F2201/85
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,099,934
App. No.
16/111,807
Granted
Aug 24, 2021
Kind
B2
Abstract

The rebuilding process comprises the steps of detecting a failure on a first server that stores a first data and processes input/output requests from an application, redirecting incoming input/output requests from the application to a second server storing a second data. The second data being mirrored from the first data. The process further comprises forming, by the first server, a data loss information that identifies the lost data units in the first data. The process further comprises rebuilding, by the first server, the lost data units in the first data, by using the data that is retrieved from the second data and based on the data loss information by the second server. The process further comprises syncing up data units, other than the lost data units in the first data, with corresponding data in the second data in the second server during the rebuilding process.

Claims (36)

1. A method for data rebuilding, the method comprising:

detecting a failure on a first server that stores a first data and that processes input/output requests from an application, wherein at least two disks in a redundant array of independent disks (RAID) configuration and storing the first data have failed;

redirecting incoming input/output requests from the application to a second server storing a second data, wherein the second data is mirrored from the first data;

forming, by the first server, a data loss information that identifies lost data units in the first data, the data loss information including a bitmap having a plurality of bits, each bit represents a data unit, the bitmap includes a collection of bitmaps representing volumes relating to the first data, wherein the bitmap is organized by the volumes where each row of bits represents a volume and each bit represents a block range of the volumes within the two disks, wherein a value of each bit in the bitmap indicates if the data unit corresponds with a lost data unit requiring data rebuilding;

transmitting the data loss information to the second server to recover the lost data units;

retrieving blocks of data corresponding to the lost data units notated in the bitmap from the second server, wherein the blocks of data from the second server are updated based on a write cache on the second server;

rebuilding, by the first server, the lost data units in the first data, by using the blocks of data provided by the second server; and

syncing up available first data units other than the lost data units in the first data with corresponding available second data units in the second data.

2. The method according to claim 1 , further comprising:

in response to the rebuilding being finished,

directing the input/output requests back to the first server, and

syncing up the second data with the first data.

3. The method according to claim 1 , wherein the data unit is at a first granularity size for the rebuilding of the lost data units in the first data, and wherein the second data is mirrored from the first data in access units at a second granularity size that the application uses to access data.

4. The method according to claim 3 , wherein a mapping relationship comprises of the data units with the first granularity size and the access units with the second granularity size, the mapping relationship being stored in the first server.

5. The method according to claim 1 , wherein the lost data units in the first data include at least a first lost data unit and a second lost data unit, and wherein in response to the first lost data unit being rebuilt, the rebuilt first lost data unit is synced up with corresponding data in the second data in the second server.

6. The method according to claim 1 , wherein the second data units that are retrieved from the second data are merged with at least one update before being sent to the first server.

7. A system for data rebuilding, the system comprising:

a processor;

a memory coupled to the processor;

a set of computer program instructions stored in the memory and executed by the processor in order to perform actions of:

detecting a failure on a first server that stores a first data and that processes input/output requests from an application, wherein at least two disks in a RAID configuration and storing the first data have failed;

redirecting incoming input/output requests from the application to a second server storing a second data, wherein the second data is mirrored from the first data;

forming, by the first server, a data loss information that identifies lost data units in the first data, the data loss information including a bitmap having a plurality of bits, each bit represents a data unit, the bitmap includes a collection of bitmaps representing volumes relating to the first data, wherein the bitmap is organized where each row of bits represents a volume and each bit represents a block range of the volume, wherein a value of each bit in the bitmap indicates if the data unit corresponds with a lost data unit requiring data rebuilding;

transmitting the data loss information to the second server to recover the lost data units;

retrieving blocks of data corresponding to the lost data units notated in the bitmap from the second server;

rebuilding, by the first server, the lost data units in the first data, by using the blocks of data provided by the second server; and

syncing up available first data units other than the lost data units in the first data with corresponding available second data units in the second data.

8. The system according to claim 7 , wherein the system further comprises a set of computer program instructions stored in the memory and executed by the processor in order to perform action of:

in response to the rebuilding being finished,

directing the input/output requests back to the first server, and

syncing up the second data with the first data.

9. The system according to claim 7 , wherein the data unit is at a first granularity size for the rebuilding of the lost data units in the first data, and wherein the second data is mirrored from the first data in access units at a second granularity size that the application uses to access data.

10. The system according to claim 9 , wherein a mapping relationship comprises of the data units with the first granularity size and the access units with the second granularity size, the mapping relationship being stored in the first server.

11. The system according to claim 7 , wherein the lost data units in the first data include at least a first lost data unit and a second lost data unit, and wherein in response to the first lost data unit being rebuilt, the rebuilt first lost data unit is synced up with corresponding data in the second data in the second server.

12. The system according to claim 7 , wherein the second data units that are retrieved from the second data are merged with at least one update before being sent to the first server.

13. A computer program product having computer executable instructions that when executed by a computer having at least one processor cause the computer to: detect a failure on a first server that stores a first data and that processes input/output requests from an application, wherein at least two disks in a RAID configuration and storing the first data have failed; redirect incoming input/output requests from the application to a second server storing a second data, wherein the second data is mirrored from the first data, wherein a data unit is at a first granularity size for rebuilding and wherein the second data is mirrored from the first data in access units at a second granularity size that the application uses to access data; form, by the first server, a data loss information that identifies lost data units in the first data, the data loss information including a bitmap having a plurality of bits, each bit represents a data unit, the bitmap includes a collection of bitmaps representing volumes relating to the first data, wherein the bitmap is organized where each row of bits represents a volume and each bit represents a block range of the volume within the two disks; wherein a volume of each bit in the bitmap indicates if the data unit corresponds with a lost data unit requiring data rebuilding; transmit the data loss information to the second server to recover the lost data units, wherein the lost data units in the first data include at least a first lost data unit and a second lost data unit, and wherein in response to the first lost data unit being rebuilt, the rebuilt first lost data unit is synced up with corresponding data in the second data in the second server; retrieve blocks of data correspond to the lost data units notated in the bitmap from the second server; rebuild, by the first server, the lost data units in the first data, by using the second data and the data loss information provided to the second server; sync up available first data units other than the lost data units in the first data with corresponding available second data units in the second data; direct the input/output request back to the first server; and sync up the second data with the first data, wherein a mapping relationship comprises of the data units with the first granularity size and the access units with the second granularity size, the mapping relationship being stored in the first server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2018
From: ZHOU, XUE QIANG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046697/0067 →
Continuity (1)
Related Publication 20200065191A1 · Feb 27, 2020
Cited By (1)
US 12,340,089