IP Library Granted Patent US 11,269,745
Granted Patent B2
US 11,269,745 · App. 16/667,145 · Granted Mar 8, 2022

Two-node high availability storage system

Inventors: Long Wen Lan (Shanghai, CN); Wen Wu Na (Shanghai, CN); Xiang Wen Liu (Shanghai, CN); Xiao Yu Wang (Shanghai, CN)
Assignee: International Business Machines Corporation
G06F11/2087G06F11/2071G06F11/2056G06F11/2064G06F11/2092G06F2201/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,269,745
App. No.
16/667,145
Granted
Mar 8, 2022
Kind
B2
Abstract

Aspects of the present invention disclose a method for a two-node storage system. The method includes one or more processors creating a plurality of first logic unit groups in a first storage node of a storage system. The method further includes mapping each of the plurality of first logic unit groups to a number of storage slices from different storage devices in the first storage node. The method further creating a plurality of second logic unit groups in a second storage node of the storage system, by mirroring storage slices from a storage device in the first storage node to multiple storage devices in the second storage node. In response to identifying a failure of a first storage device in the first storage node, the method further includes recovering lost data based on data in the second storage node.

Claims (91)

1. A computer-implemented method for a storage system, the method comprising:

creating, by one or more processors, a plurality of first logic unit groups in a first storage node of a storage system;

recording, by the one or more processors, a first mapping between the plurality of first logic unit groups and a number of storage slices from respective storage devices in the first storage node;

creating, by the one or more processors, a plurality of second logic unit groups in a second storage node of the storage system, the plurality of second logic unit groups being mirrored logic unit groups of the plurality of first logic unit groups, wherein creating the plurality of second logic unit groups in the second storage node comprises:

mirroring, by the one or more processors, storage slices from a storage device in the first storage node to multiple storage devices in the second storage node based, at least in part, on:

determining, by the one or more processors, in response to a first host read command, that a target storage slice is in a first storage device in the first storage node according to the first mapping;

in response to determining that a size of target data is smaller than a storage slice size and the data in the target storage slice has been copied to a corresponding spare storage slice, writing, by the one or more processors, the target data to the corresponding spare storage slice and the second storage node; and

in response to determining that the size of the target data is equal to the storage slice, writing, by the one or more processors, the target data to the corresponding spare storage slice and the second storage node; and

in response to identifying a failure of the first storage device in the first storage node, recovering, by the one or more processors, lost data based on data in the second storage node.

2. The method according to claim 1 ,

wherein the recovering the lost data based on the data in the second storage node further comprises:

copying, by the one or more processors, the lost data from corresponding storage devices in the second storage node to the spare storage slices; and

updating, by the one or more processors, the first mapping based on the copied lost data.

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

in response to a second host read command, determining, by the one or more processors, that the target storage slice is in the first storage device according to the first mapping;

reading, by the one or more processors, target data from the second storage node according to a second mapping between the plurality of second logic unit groups and a number of storage slices from respective storage devices in a second storage node;

writing, by the one or more processors, the target data to a corresponding spare storage slice; and

updating, by the one or more processors, the first mapping.

4. The method according to claim 3 , further comprising:

detecting, by the one or more processors, that a new storage device is added to the first storage node during the recovering, the new storage device being split into a plurality of storage slices;

copying, by the one or more processors, the lost data that are not in the spare storage slices from the second storage node to the new storage device;

migrating, by the one or more processors, the data in the spare storage slices to the new storage device; and

releasing, by the one or more processors, the spare storage slices.

5. The method according to claim 3 , further comprising:

detecting, by the one or more processors, that a new storage device is added to the first storage node during the recovering, the new storage device being split into a plurality of storage slices;

in response to a host read command, determining, by the one or more processors, that a target storage slice is in the first storage device according to the first mapping;

reading, by the one or more processors, target data from the second storage node according to the second mapping;

writing, by the one or more processors, the target data to the new storage device; and

updating, by the one or more processors, the first mapping.

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

obtaining, by the one or more processors, erasure codes by applying erasure coding on data in the first storage node; and

storing, by the one or more processors, the erasure codes in multiple instances of the plurality of storage devices in the first storage node, wherein the recovering of the lost data is further based on the erasure codes and the data in one or more storage devices of the first storage node other than the first storage device.

7. The method according to claim 1 , wherein the spare storage slices further comprise unused storage slices of the plurality of storage devices in the first storage node.

8. A computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to create a plurality of first logic unit groups in a first storage node of a storage system;

program instruction to record a first mapping between the plurality of first logic unit groups and a number of storage slices from respective storage devices in the first storage node;

program instructions to create a plurality of second logic unit groups in a second storage node of the storage system, the plurality of second logic unit groups being mirrored logic unit groups of the plurality of first logic unit groups, wherein creating the plurality of second logic unit groups in the second storage node comprise program instructions to:

mirror storage slices from a storage device in the first storage node to multiple storage devices in the second storage node based at least in part, on

determining in response to a first host read command, that a target storage slice is in a first storage device in the first storage node according to the first mapping;

in response to determining that a size of target data is smaller than a storage slice size and the data in the target storage slice has been copied to a corresponding spare storage slice, write the target data to the corresponding spare storage slice and the second storage node; and

in response to determining that the size of the target data is equal to the storage slice, write the target data to the corresponding spare storage slice and the second storage node; and

in response to identifying a failure of the first storage device in the first storage node, program instructions to recover lost data based on data in the second storage node.

9. The computer system of claim 8 , further comprising program instructions, stored on the computer readable storage media for execution by at least one of the one or more processors, to:

wherein the program instructions to recover the lost data based on the data in the second storage node further comprise program instructions to:

copy the lost data from corresponding storage devices in the second storage node to the spare storage slices; and

update the first mapping based on the copied lost data.

10. The computer system of claim 8 , further comprising program instructions, stored on the computer readable storage media for execution by at least one of the one or more processors, to:

in response to a second host read command, determine that the target storage slice is in the first storage device according to the first mapping;

read target data from the second storage node according to a second mapping between the plurality of second logic unit groups and a number of storage slices from respective storage devices in a second storage node;

write the target data to a corresponding spare storage slice; and

update the first mapping.

11. The computer system according to claim 10 , further comprising program instructions, stored on the computer readable storage media for execution by at least one of the one or more processors, to:

detect that a new storage device is added to the first storage node during the recovering, the new storage device being split into a plurality of storage slices;

in response to a host read command, determine that a target storage slice is in the first storage device according to the first mapping;

read target data from the second storage node according to the second mapping;

write the target data to the new storage device; and

update the first mapping.

12. The computer system of claim 10 , further comprising program instructions, stored on the computer readable storage media for execution by at least one of the one or more processors, to:

detect that a new storage device is added to the first storage node during the recovering, the new storage device being split into a plurality of storage slices;

copy the lost data that are not in the spare storage slices from the second storage node to the new storage device;

migrate the data in the spare storage slices to the new storage device; and

release the spare storage slices.

13. The computer system according to claim 8 , further comprising program instructions, stored on the computer readable storage media for execution by at least one of the one or more processors, to:

obtain erasure codes by applying erasure coding on data in the first storage node; and

store the erasure codes in multiple instances of the plurality of storage devices in the first storage node, wherein the recovering of the lost data is further based on the erasure codes and the data in one or more storage devices of the first storage node other than the first storage device.

14. The computer system according to claim 8 , wherein the spare storage slices further comprise unused storage slices of the plurality of storage devices in the first storage node.

15. A computer program product comprising:

one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:

program instructions to create a plurality of first logic unit groups in a first storage node of a storage system;

program instructions to create a plurality of first logic unit groups in a first storage node of a storage system;

program instruction to record a first mapping between the plurality of first logic unit groups and a number of storage slices from respective storage devices in the first storage node;

program instructions to create a plurality of second logic unit groups in a second storage node of the storage system, the plurality of second logic unit groups being mirrored logic unit groups of the plurality of first logic unit groups, wherein creating the plurality of second logic unit groups in the second storage node comprise program instructions to:

mirror storage slices from a storage device in the first storage node to multiple storage devices in the second storage node based at least in part, on

determining in response to a first host read command, that a target storage slice is in a first storage device in the first storage node according to the first mapping;

in response to determining that a size of target data is smaller than a storage slice size and the data in the target storage slice has been copied to a corresponding spare storage slice, write the target data to the corresponding spare storage slice and the second storage node; and

in response to determining that the size of the target data is equal to the storage slice, write the target data to the corresponding spare storage slice and the second storage node; and

in response to identifying a failure of the first storage device in the first storage node, program instructions to recover lost data based on data in the second storage node.

16. The computer program product of claim 15 , further comprising program instructions, stored on the one or more computer readable storage media, to:

wherein the program instructions to recover the lost data based on the data in the second storage node further comprise program instructions to:

copy the lost data from corresponding storage devices in the second storage node to the spare storage slices; and

update the first mapping based on the copied lost data.

17. The computer program product according to claim 15 , further comprising program instructions, stored on the one or more computer readable storage media, to:

detect that a new storage device is added to the first storage node during the recovering, the new storage device being split into a plurality of storage slices;

in response to a host read command, determine that a target storage slice is in the first storage device according to the first mapping;

read target data from the second storage node according to the second mapping;

write the target data to the new storage device; and

update the first mapping.

18. The computer program product according to claim 15 , wherein the spare storage slices further comprise unused storage slices of the plurality of storage devices in the first storage node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2019
From: LAN, LONG WEN; NA, WEN WU; LIU, XIANG WEN; WANG, XIAO YU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050854/0064 →
Continuity (1)
Related Publication 20210124658A1 · Apr 29, 2021
Cited By (1)
US 12,367,151