IP Library Granted Patent US 11,899,533
Granted Patent B2
US 11,899,533 · App. 17/356,849 · Granted Feb 13, 2024

Stripe reassembling method in storage system and stripe server

Inventors: Yun Zhan (Shenzhen, CN); Huiyun Xie (Shenzhen, CN); Tonglei Wang (Shenzhen, CN)
Assignee: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
G06F11/1096G06F3/0619G06F3/0652G06F3/0689G06F11/1092G06F12/0253
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,899,533
App. No.
17/356,849
Granted
Feb 13, 2024
Kind
B2
Abstract

A stripe reassembling technique includes a stripe server that selects stripes; uses data chunks including valid data in the stripes S 1 , S 2 , and S 3 as data chunks in a new stripe S 4 , and generates data of a parity chunk for data of the data chunks in S 4 according to an erasure coding (EC) algorithm the same as that of S 1 , S 2 , and S 3 ; and stores the parity data of the parity chunk on a parity storage node.

Claims (26)

1. A stripe reassembling method for a storage system, wherein the storage system comprises N data storage nodes that store data chunks and M parity storage nodes that store parity chunks; R stripes are distributed on N+M storage nodes, each stripe S i comprises N data chunks, D ix , and M parity chunks, P iy , a data chunk D ix is distributed on an x th data storage node in the N data storage nodes, and a parity chunk P iy is distributed on a y th parity storage node in the M parity storage nodes; and N, M, and R are positive integers, R is not less than 2, i is an integer ranging from 1 to R, x is an integer ranging from 1 to N, and y is an integer ranging from 1 to M; and

the method comprises:

selecting, by a stripe server, the R stripes, wherein, in the R stripes, among data chunks D ix stored on a same data storage node, at most one data chunk comprises valid data;

generating, by the stripe server, parity data of a parity chunk P Ky of a new stripe S K for data in the data chunk comprising valid data in the R stripes, wherein the new stripe S K comprises the data chunk comprising valid data in the R stripes and the parity chunk P Ky , and K is an integer different from 1 to R; and

storing, by the stripe server, the parity data of the parity chunk P Ky on the y th parity storage node in the M parity storage nodes.

2. The method according to claim 1 , wherein after the storing, by the stripe server, the parity data of the parity chunk P Ky on the y th parity storage node in the M parity storage nodes, the method further comprises:

instructing, by the stripe server, a data storage node on which a data chunk that stores garbage data of the R stripes is distributed to perform garbage collection.

3. The method according to claim 2 , wherein after the storing, by the stripe server, the parity data of the parity chunk P Ky on the y th parity storage node in the M parity storage nodes, the method further comprises:

releasing, by the stripe server, the R stripes.

4. The method according to claim 1 , wherein before the selecting, by the stripe server, the R stripes, the method further comprises:

determining, by the stripe server, the stripe S i , wherein a quantity of data chunks comprising garbage data in the stripe S i meets a reassembly threshold.

5. A stripe server, wherein the stripe server is used in a storage system, and the storage system comprises N data storage nodes that store data chunks and M parity storage nodes that store parity chunks; R stripes are distributed on N+M storage nodes, each stripe S i comprises N data chunks D ix and M parity chunks P iy , a data chunk D ix is distributed on an x th storage node in the N data storage nodes, and a parity chunk P iy is distributed on a y th storage node in the M parity storage nodes; N, M, and R are positive integers, R is not less than 2, a value of i is an integer ranging from 1 to R, a value of x is an integer ranging from 1 to N, and a value of y is an integer ranging from 1 to M; and the stripe server comprises an interface and a processor, the interface communicates with the processor, and the processor is configured to:

select the R stripes, wherein at most one data chunk among data chunks D ix that are in the R stripes and are distributed on a same data storage node comprises valid data;

generate parity data of a parity chunk P Ky of a new stripe S K for data in the data chunk comprising valid data in the R stripes, wherein the new stripe S K comprises the data chunk comprising valid data in the R stripes and the parity chunk P Ky , and K is an integer different from 1 to R; and

store the parity data of the parity chunk P Ky on the y th storage node in the M parity storage nodes.

6. The stripe server according to claim 5 , wherein the processor is further configured to instruct a data storage node on which a data chunk that stores garbage data of the R stripes is distributed to perform garbage collection.

7. The stripe server according to claim 6 , wherein the processor is further configured to release the R stripes.

8. The stripe server according to claim 5 , wherein the processor is further configured to

determine the stripe S i , wherein a quantity of data chunks comprising garbage data in the stripe S i meets a reassembly threshold.

9. A non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores a computer program that comprises a computer instruction, the computer program is used in a storage system, the storage system comprises N data storage nodes that store data chunks and M parity storage nodes that store parity chunks; R stripes are distributed on N+M storage nodes, each stripe S i comprises N data chunks, D ix , and M parity chunks, P iy , a data chunk D ix is distributed on an x th storage node in the N data storage nodes, and a parity chunk P iy is distributed on a y th storage node in the M parity storage nodes; N, M, and R are positive integers, R is not less than 2, i is an integer ranging from 1 to R, x is an integer ranging from 1 to N, and y is an integer ranging from 1 to M; and a stripe server that is used in the storage system executes the computer instruction, to perform the following operations:

selecting the R stripes, wherein a maximum of one data chunk among data chunks D ix that are in the R stripes and that are distributed on a same data storage node comprises valid data;

generating parity data of a parity chunk P Ky of a new stripe S K for data of the data chunk comprising valid data in the R stripes, wherein the new stripe S K comprises the data chunk comprising valid data in the R stripes and the parity chunk P Ky , and K is an integer different from 1 to R; and

storing the parity data of the parity chunk P Ky on the y th storage node in the M parity storage nodes.

10. The non-transitory computer-readable storage medium according to claim 9 , wherein the stripe server executes the computer instruction, to further instruct a data storage node on which a data chunk that stores garbage data of the R stripes is distributed to perform garbage collection.

11. The non-transitory computer-readable storage medium according to claim 10 , wherein the stripe server executes the computer instruction to release the R stripes.

12. The non-transitory computer-readable storage medium according to claim 9 , wherein the stripe server executes the computer instruction, to determine the stripe S i , wherein a quantity of data chunks comprising garbage data in the stripe S i meets a reassembly threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: HUAWEI TECHNOLOGIES CO., LTD.
To: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
Reel/Frame 059267/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2021
From: ZHAN, YUN; XIE, HUIYUN; WANG, TONGLEI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 057012/0618 →