IP Library Granted Patent US 10,649,892
Granted Patent B2
US 10,649,892 · App. 15/710,809 · Granted May 12, 2020

Operating a raw mirror within a RAID system

Inventors: Hongpo Gao (Beijing, CN); Ree Sun (Beijing, CN); Huadong Li (Beijing, CN); Wayne Li (Beijing, CN); Jibing Dong (Beijing, CN); Shaoqin Gong (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0246G06F3/064G06F3/067G06F3/0632G06F3/0643G06F3/0689G06F11/1076G06F11/2069
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 10,649,892
App. No.
15/710,809
Granted
May 12, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide a method of managing a redundant array of independent disks (RAID) system and an electronic device. The method includes configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system; storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality disks including an identifier identifying that the disk belongs to the raw mirror and a sequence number identifying a writing operation for a block storing the metadata in the disk; and controlling reading and writing of the raw mirror based on the metadata.

Claims (152)

1. A method of managing a redundant array of independent disks (RAID) system, comprising:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk;

controlling reading and writing of the raw mirror based on the metadata; and

creating a raw mirror object for the raw mirror to manage the raw mirror, the raw mirror object including at least one of a block size of the raw mirror, an edge array pointing to the raw mirror, a RAID algorithm of the raw mirror, an access switch for the raw mirror, or a capacity of the raw mirror.

2. The method of claim 1 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

setting the identifiers in the plurality of disks;

increasing the sequence numbers in the plurality of disks; and

writing the configuration data into corresponding blocks of the plurality of disks.

3. The method of claim 1 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

checking the identifiers in the plurality of disks;

comparing the sequence numbers of corresponding blocks of the plurality of disks; and

reading the configuration data from the corresponding block of the disk with a maximum sequence number.

4. The method of claim 1 , further comprising:

in response to booting of the RAID system, obtaining the sequence numbers of corresponding blocks of the plurality of disks;

comparing the sequence numbers of the corresponding blocks of the plurality of disks; and

storing a maximum sequence number in a cache as the latest sequence numbers for the corresponding blocks.

5. The method of claim 4 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

obtaining from the cache the latest sequence numbers for the corresponding blocks of the plurality of disks;

increasing the latest sequence numbers;

storing the increased latest sequence numbers into the plurality of disks; and

writing the configuration data into the corresponding blocks of the plurality of disks.

6. The method of claim 1 , further comprising:

creating a RAID group object for the raw mirror to manage the raw mirror.

7. The method of claim 6 , further comprising:

switching an access interface of the raw mirror from the raw mirror object to the RAID group object.

8. The method of claim 6 , further comprising:

performing, with a background service of the RAID system, at least one of driver swapping, data rebuilding, data verification, or data replication on the RAID group object.

9. An electronic device, comprising:

at least one processor, and

at least one memory including computer program instructions, the at least one memory and the computer program instructions configured, with the processor, to cause the device to:

configure a plurality of disks in a redundant array of independent disks (RAID) system as a raw mirror for storing configuration data of the RAID system;

store metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk;

control reading and writing of the raw mirror based on the metadata; and

create a raw mirror object for the raw mirror to manage the raw mirror, the raw mirror object including at least one of a block size of the raw mirror, an edge array pointing to the raw mirror, a RAID algorithm of the raw mirror, an access switch for the raw mirror, or a capacity of the raw mirror.

10. The device of claim 9 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to control reading and writing of the raw mirror by:

setting the identifier in the plurality of disks;

increasing the sequence numbers in the plurality of disks; and

writing the configuration data into corresponding blocks of the plurality of disks.

11. The device of claim 9 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to control reading and writing of the raw mirror by:

checking the identifiers in the plurality of disks;

comparing the sequence numbers of corresponding blocks of the plurality of disks; and

reading the configuration data from the corresponding block of the disk with a maximum sequence number.

12. The device of claim 9 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to:

in response to booting of the RAID system, obtain the sequence numbers of corresponding blocks of the plurality of disks;

compare the sequence numbers of the corresponding blocks of the plurality of disks; and

store a maximum sequence number in a cache as the latest sequence numbers for the corresponding blocks.

13. The device of claim 12 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to control reading and writing of the raw mirror by:

obtaining from the cache the latest sequence numbers for the corresponding blocks of the plurality of disks;

increasing the latest sequence numbers;

storing the increased latest sequence numbers into the plurality of disks; and

writing the configuration data into the corresponding blocks of the plurality of disks.

14. The device of claim 9 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to:

create a RAID group object for the raw mirror to manage the raw mirror.

15. The device of claim 14 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to:

switch an access interface of the raw mirror from the raw mirror object to the RAID group object.

16. The device of claim 14 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to:

perform, with a background service of the RAID system, at least one of driver swapping, data rebuilding, data verification, or data replication on the RAID group object.

17. A computer program product for managing a redundant array of independent disks (RAID) system, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code for indicating the search result, wherein the code is configured to enable the execution of:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk;

controlling reading and writing of the raw mirror based on the metadata; and

creating a raw mirror object for the raw mirror to manage the raw mirror, the raw mirror object including at least one of a block size of the raw mirror, an edge array pointing to the raw mirror, a RAID algorithm of the raw mirror, an access switch for the raw mirror, or a capacity of the raw mirror.

18. The computer program product of claim 17 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

setting the identifiers in the plurality of disks;

increasing the sequence numbers in the plurality of disks; and

writing the configuration data into corresponding blocks of the plurality of disks.

19. A method of managing a redundant array of independent disks (RAID) system, comprising:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk; and

controlling reading and writing of the raw mirror based on the metadata;

wherein controlling reading and writing of the raw mirror based on the metadata comprises:

checking the identifiers in the plurality of disks;

comparing the sequence numbers of corresponding blocks of the plurality of disks; and

reading the configuration data from the corresponding block of the disk with a maximum sequence number.

20. A method of managing a redundant array of independent disks (RAID) system, comprising:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk; and

controlling reading and writing of the raw mirror based on the metadata;

in response to booting of the RAID system, obtaining the sequence numbers of corresponding blocks of the plurality of disks;

comparing the sequence numbers of the corresponding blocks of the plurality of disks; and

storing a maximum sequence number in a cache as the latest sequence numbers for the corresponding blocks.

21. The method of claim 20 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

obtaining from the cache the latest sequence numbers for the corresponding blocks of the plurality of disks;

increasing the latest sequence numbers;

storing the increased latest sequence numbers into the plurality of disks; and

writing the configuration data into the corresponding blocks of the plurality of disks.

22. An electronic device, comprising:

at least one processor, and

at least one memory including computer program instructions, the at least one memory and the computer program instructions configured, with the processor, to cause the device to:

configure a plurality of disks in a redundant array of independent disks (RAID) system as a raw mirror for storing configuration data of the RAID system;

store metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk; and

control reading and writing of the raw mirror based on the metadata;

wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to control reading and writing of the raw mirror by:

checking the identifiers in the plurality of disks;

comparing the sequence numbers of corresponding blocks of the plurality of disks; and

reading the configuration data from the corresponding block of the disk with the identifier and a maximum sequence number.

23. An electronic device, comprising:

at least one processor, and

at least one memory including computer program instructions, the at least one memory and the computer program instructions configured, with the processor, to cause the device to:

configure a plurality of disks in a redundant array of independent disks (RAID) system as a raw mirror for storing configuration data of the RAID system;

store metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk;

control reading and writing of the raw mirror based on the metadata;

in response to booting of the RAID system, obtain the sequence numbers of corresponding blocks of the plurality of disks;

compare the sequence numbers of the corresponding blocks of the plurality of disks; and

store a maximum sequence number in a cache as the latest sequence numbers for the corresponding blocks.

24. The device of claim 23 , wherein the at least one memory and the computer program instructions are further configured, with the processor, to cause the device to control reading and writing of the raw mirror by:

obtaining from the cache the latest sequence numbers for the corresponding blocks of the plurality of disks;

increasing the latest sequence numbers;

storing the increased latest sequence numbers into the plurality of disks; and

writing the configuration data into the corresponding blocks of the plurality of disks.

25. A computer program product for managing a redundant array of independent disks (RAID) system, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code for indicating the search result, wherein the code is configured to enable the execution of:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk; and

controlling reading and writing of the raw mirror based on the metadata;

wherein controlling reading and writing of the raw mirror based on the metadata comprises:

checking the identifiers in the plurality of disks;

comparing the sequence numbers of corresponding blocks of the plurality of disks; and

reading the configuration data from the corresponding block of the disk with a maximum sequence number.

26. A computer program product for managing a redundant array of independent disks (RAID) system, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable program code for indicating the search result, wherein the code is configured to enable the execution of:

configuring a plurality of disks in the RAID system as a raw mirror for storing configuration data of the RAID system;

storing metadata for the raw mirror in the plurality of disks, the metadata stored in each of the plurality of disks including:

an identifier identifying that the disk belongs to the raw mirror, and

a sequence number identifying a writing operation for a block storing the metadata in the disk;

controlling reading and writing of the raw mirror based on the metadata;

in response to booting of the RAID system, obtaining the sequence numbers of corresponding blocks of the plurality of disks;

comparing the sequence numbers of the corresponding blocks of the plurality of disks; and

storing a maximum sequence number in a cache as the latest sequence numbers for the corresponding blocks.

27. The computer program product of claim 26 , wherein controlling reading and writing of the raw mirror based on the metadata comprises:

obtaining from the cache the latest sequence numbers for the corresponding blocks of the plurality of disks;

increasing the latest sequence numbers;

storing the increased latest sequence numbers into the plurality of disks; and

writing the configuration data into the corresponding blocks of the plurality of disks.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2017
From: GAO, HONGPO; LEI, REE; LI, HUADONG; LI, WAYNE; DONG, JIBING; GONG, SHAOQIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044019/0475 →
Priority Claims (1)
CN 2016 1 0849524 · Sep 23, 2016 · national
Continuity (1)
Related Publication 20180089077A1 · Mar 29, 2018