IP Library Granted Patent US 12,493,571
Granted Patent B2
US 12,493,571 · App. 18/787,049 · Granted Dec 9, 2025

Method for improving reliability of storage system, and related apparatus

Inventors: Ping Lin (Chengdu, CN); Jian Xiao (Chengdu, CN); Bin Wang (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F13/28G06F3/0619G06F3/0658G06F3/0673G06F2213/28
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 12,493,571
App. No.
18/787,049
Granted
Dec 9, 2025
Kind
B2
Abstract

A method for improving reliability of a storage system and a related apparatus, where the storage system includes a first control device and a second control device. The method includes receiving, by a target controller, a write request, where the write request includes to-be-written data, and the target controller belongs to the first control device; writing, by the target controller, the to-be-written data into a memory of the target controller; and writing, by the target controller, the to-be-written data into a memory of a mirror controller of the target controller, where at least one mirror controller belongs to the second control device.

Claims (58)

1 . A method comprising:

receiving a write request comprising writing data;

writing the writing data into a first memory of a target controller of a first control device of a storage system, wherein the target controller comprises a first mirror controller in the first control device and a second mirror controller in a second control device of the storage system;

writing the writing data into a second memory of the first mirror controller and a third memory of the second mirror controller;

accessing the writing data using the second control device when the first control device is faulty;

setting the first mirror controller or the second mirror controller as a first new target controller when the first control device is faulty;

establishing a new mirror controller for the first new target controller; and

mirroring first data in a fourth memory of the first new target controller to a fifth memory of the new mirror controller.

2 . The method of claim 1 , wherein the target controller and the first mirror controller form a backup controller group, wherein the backup controller group comprises N controllers, wherein N is an integer greater than or equal to 2, and wherein the method further comprises:

selecting, by a primary controller, a controller from the first mirror controller as a second new target controller for receiving the write request when M controllers in the backup controller group are faulty and comprise the target controller, wherein the primary controller is a controller in the first control device or the second control device, and wherein M is an integer greater than or equal to 1 and less than N;

establishing, by the primary controller, M new controllers for the second new target controller; and

mirroring, by the primary controller, second data in a sixth memory of the second new target controller to the M new controllers.

3 . The method of claim 1 , wherein the target controller and the first mirror controller form a backup controller group, wherein the backup controller group comprises N controllers, wherein N is an integer greater than or equal to 2, and wherein the method further comprises:

establishing, by a primary controller, M new mirror controllers for the target controller when M controllers in the backup controller group are faulty and do not comprise the target controller, wherein M is an integer greater than or equal to 1 and less than N; and

mirroring, by the primary controller, second data in the first memory of the target controller to the M new mirror controllers, wherein the primary controller is a controller in the first control device or the second control device.

4 . The method of claim 2 , wherein N is equal to 3.

5 . The method of claim 1 , further comprising setting the first mirror controller or the second mirror controller as the first new target controller based on a priority, wherein a first priority of the first mirror controller is higher than a second priority of the second mirror controller.

6 . The method of claim 1 , further comprising sending, by the target controller to a host, a write complete message indicating that the writing data has been successfully written.

7 . The method of claim 1 , further comprising accessing the writing data by the first control device and the second control device at the same time.

8 . A storage control system, comprising:

a second control device; and

a first control device comprising a target controller configured to:

receive a write request comprising writing data;

write the writing data into a first memory of the target controller, wherein the target controller comprises a first mirror controller in the first control device and a second mirror controller in the second control device;

write the writing data into a second memory of a first mirror controller and a third memory of the second mirror controller;

access the writing data using the second control device when the first control device is faulty;

set the first mirror controller or the second mirror controller as a first new target controller when the first control device is faulty;

establish a new mirror controller for the first new target controller; and

mirror first data in a fourth memory of the first new target controller to a fifth memory of the new mirror controller.

9 . The storage control system of claim 8 , wherein the target controller and the first mirror controller form a backup controller group, wherein the backup controller group comprises N controllers, wherein N is an integer greater than or equal to 2, wherein the storage control system further comprises a primary controller, wherein the primary controller is one of controllers in the first control device and the second control device, and wherein the primary controller is configured to:

select, when M controllers are faulty and comprise the target controller, a controller from the first mirror controller as a second new target controller for receiving the write request, wherein M is an integer greater than or equal to 1 and less than N;

establish M new mirror controllers for the second new target controller; and

mirror second data in a sixth memory of the second new target controller to the M new mirror controllers.

10 . The storage control system of claim 8 , wherein the target controller and the first mirror controller form a backup controller group, wherein the backup controller group comprises N controllers, wherein N is an integer greater than or equal to 2, wherein the storage control system further comprises a primary controller, wherein the primary controller is one of controllers in the first control device and the second control device, and wherein the primary controller is configured to:

establish, when M controllers are faulty and do not comprise the target controller, M new mirror controllers for the target controller, wherein M is an integer greater than or equal to 1 and less than N; and

mirror second data in the first memory of the target controller to the M new mirror controllers.

11 . The storage control system of claim 9 , wherein N is equal to 3.

12 . The storage control system of claim 8 , wherein the first control device and the second control device are configured to communicatively couple using a remote direct memory access (RDMA) channel.

13 . The storage control system of claim 8 , wherein the target controller is further configured to set the first mirror controller or the second mirror controller as the first new target controller based on a priority, and wherein a first priority of the first mirror controller is higher than a second priority of the second mirror controller.

14 . The storage control system of claim 8 , wherein the first control device and the second control device are configured to access the writing data at the same time.

15 . A computer program product comprising computer-executable instructions that are stored on a non-transitory computer-readable medium and that, when executed by a processor, cause a storage control system to:

receive a write request comprising writing data;

write the writing data into a first memory of a target controller in a first control device of the storage control system, wherein the target controller comprises a first mirror controller in the first control device and a second mirror controller in a second control device of the storage control system;

write the writing data into a second memory of the first mirror controller and a second memory of the second mirror controller;

access the writing data using the second control device when the first control device is faulty;

set the first mirror controller or the second mirror controller as a first new target controller when the first control device is faulty;

establish a new mirror controller for the first new target controller; and

mirror first data in a fourth memory of the first new target controller to a fifth memory of the new mirror controller.

16 . The computer program product of claim 15 , wherein the target controller and the first mirror controller form a backup controller group, wherein the backup controller group comprises N controllers, and wherein N is an integer greater than or equal to 2.

17 . The computer program product of claim 16 , wherein the computer-executable instructions further cause a primary controller of the storage control system to:

select, when M controllers are faulty and comprise the target controller, a controller from the first mirror controller as a second new target controller for receiving the write request, wherein M is an integer greater than or equal to 1 and less than N;

establish M new mirror controllers for the second new target controller; and

mirror second data in a sixth memory of the second new target controller to the M new mirror controllers, wherein the primary controller is a controller in the first control device or the second control device.

18 . The computer program product of claim 16 , wherein the computer-executable instructions further cause a primary controller of the storage control system to:

establish, when M controllers are faulty and do not comprise the target controller, M new mirror controllers for the target controller, wherein M is an integer greater than or equal to 1 and less than N; and

mirror second data in the first memory of the target controller to the M new mirror controllers, wherein the primary controller is one of controllers in the first control device or the second control device.

19 . The computer program product of claim 16 , wherein N is equal to 3.

20 . The computer program product of claim 15 , wherein the first control device and the second control device are communicatively coupled using a remote direct memory access (RDMA) channel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2024
From: LIN, PING; XIAO, JIAN; WANG, BIN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 068111/0198 →
Continuity (3)
Continuation 17581165 · Jan 21, 2022
Continuation PCTCN2019097167 · Jul 22, 2019
Related Publication 20240385979A1 · Nov 21, 2024
References Cited (23)
US 5928367A · Nelson et al. · 1999 [cited by applicant]
US 20090043979A1 · Jarvis · 2009 [cited by applicant]
US 20120260127A1 · Jibbe et al. · 2012 [cited by applicant]
US 20120330898A1 · Bk et al. · 2012 [cited by applicant]
US 20130132942A1 · Wang · 2013 [cited by applicant]
US 20140258608A1 · Viswanatha · 2014 [cited by applicant]
US 20160224437A1 · Nelogal et al. · 2016 [cited by applicant]
US 20160342349A1 · Borlick et al. · 2016 [cited by applicant]
US 20170046268A1 · Ummadi et al. · 2017 [cited by applicant]
US 20170132129A1 · Ogasawara et al. · 2017 [cited by applicant]
US 20170177520A1 · Kampe et al. · 2017 [cited by applicant]
US 20170185306A1 · Eisler et al. · 2017 [cited by applicant]
US 20170220249A1 · Jibbe · 2017 [cited by examiner]
CN 101833422A · 2010 [cited by applicant]
CN 103488435A · 2014 [cited by applicant]
CN 105159802A · 2015 [cited by applicant]
CN 107168820A · 2017 [cited by applicant]
CN 108664354A · 2018 [cited by applicant]
CN 109739696A · 2019 [cited by applicant]
JP 2016177578A · 2016 [cited by applicant]
JP 2017091025A · 2017 [cited by applicant]
RU 186529U1 · 2019 [cited by applicant]
WO 2017024951A1 · 2017 [cited by applicant]