IP Library Granted Patent US 11,163,658
Granted Patent B2
US 11,163,658 · App. 16/890,111 · Granted Nov 2, 2021

Methods, devices and computer readable mediums for managing storage system

Inventors: Lifeng Yang (Beijing, CN); Xinlei Xu (Beijing, CN); Jian Gao (Beijing, CN); Jibing Dong (Beijing, CN); Geng Han (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F11/2094G06F3/061G06F3/0619G06F3/0653G06F3/0659G06F3/0689G06F11/1076G06F2201/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,163,658
App. No.
16/890,111
Granted
Nov 2, 2021
Kind
B2
Abstract

The techniques involve, in response to receiving a message indicating that a failure occurs in a first disk group of an array, selecting, from lists in a cache, a first entry to be written into the array, the lists including first and second lists, wherein the first list is used to cache a data entry for the first disk group. The techniques further involve, in response to determining that the first entry comes from the first list, writing the first entry into the array; in response to determining that the first entry comes from the second list and the first entry is to be written into the first disk group, moving the first entry from the second list to the first list; and in response to determining that the first entry is to be written into the second disk group, writing the first entry into the second disk group.

Claims (65)

1. A method for managing a storage system, the storage system including a disk array and a cache, the disk array at least including first and second disk array groups, the method comprising:

in response to receiving a message indicating that a failure occurs in the first disk array group, selecting, from a plurality of lists in the cache, a first data entry to be written into the disk array, the plurality of lists at least including first and second lists, wherein the first list is used to cache a data entry for the failed disk array group in the disk array;

in response to determining that the first data entry comes from the first list, writing the first data entry into the disk array;

in response to determining that the first data entry comes from the second list and the first data entry is to be written into the first disk array group, moving the first data entry from the second list to the first list; and

in response to determining that the first data entry is to be written into the second disk array group, writing the first data entry into the second disk array group.

2. The method according to claim 1 , wherein the selecting from a plurality of lists in the cache a first data entry to be written into the disk array comprises:

generating a set of candidate data entries from the plurality of lists; and

selecting the first data entry from the generated set of candidate data entries.

3. The method according to claim 2 , wherein the generating a set of candidate data entries from the plurality of lists comprises:

selecting a data entry cached for a maximum period of time in one of the plurality of lists into the set of candidate data entries.

4. The method according to claim 2 , wherein the plurality of lists have respective weights, and wherein the selecting the first data entry from the generated set of candidate data entries comprises:

selecting, based on the respective weights, the first data entry from the set of candidate data entries.

5. The method according to claim 4 , wherein the set of candidate data entries include a second data entry from the first list and a third data entry from the second list, the second data entry being cached in the first list for a first period of time, the third data entry being cached in the second list for a second period of time, the first list having a first weight and the second list having a second weight less than the first weight, and

wherein the selecting the first data entry from the set of candidate data entries comprises:

determining a first ratio of the first period of time to the first weight and a second ratio of the second period of time to the second weight;

in response to the first ratio exceeding the second ratio, selecting the second data entry as the first data entry; and

in response to the first ratio being below the second ratio, selecting the third data entry as the first data entry.

6. A device for managing a storage system, the storage system comprising a disk array and a cache, the disk array at least including first and second disk array groups, the device comprising:

at least one processing unit;

at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the device to perform acts, the acts comprising:

in response to receiving a message indicating that a failure occurs in the first disk array group, selecting, from a plurality of lists in the cache, a first data entry to be written into the disk array, the plurality of lists at least including first and second lists, wherein the first list is used to cache a data entry for the failed disk array group in the disk array;

in response to determining that the first data entry comes from the first list, writing the first data entry into the disk array;

in response to determining that the first data entry comes from the second list and the first data entry is to be written into the first disk array group, moving the first data entry from the second list to the first list; and

in response to determining that the first data entry is to be written into the second disk array group, writing the first data entry into the second disk array group.

7. The device according to claim 6 , wherein the selecting a first data entry to be written into the disk array comprises:

generating a set of candidate data entries from the plurality of lists; and

selecting the first data entry from the generated set of candidate data entries.

8. The device according to claim 7 , wherein the generating a set of candidate data entries from the plurality of lists comprises:

selecting a data entry cached for a maximum period of time in one of the plurality of lists into the set of candidate data entries.

9. The device according to claim 7 , wherein the plurality of lists have respective weights, and wherein the selecting the first data entry from the generated set of candidate data entries comprises:

selecting, based on the respective weights, the first data entry from the set of candidate data entries.

10. The device according to claim 9 , wherein the set of candidate data entries include a second data entry from the first list and a third data entry from the second list, the second data entry being cached in the first list for a first period of time, the third data entry being cached in the second list for a second period of time, the first list having a first weight and the second list having a second weight less than the first weight, and

wherein the selecting the first data entry from the set of candidate data entries comprises:

determining a first ratio of the first period of time to the first weight and a second ratio of the second period of time to the second weight;

in response to the first ratio exceeding the second ratio, selecting the second data entry as the first data entry; and

in response to the first ratio being below the second ratio, selecting the third data entry as the first data entry.

11. The method according to claim 1 , wherein moving the first data entry from the second list to the first list includes:

determining that the first data entry is not from the first list;

determining that the first data entry is for the first disk array group; and

(i) after determining that the first data entry is not from the first list and determining that the first data entry is for the first disk array group and (ii) while the first disk array group is in a degraded state, adding the first data entry to the first list, and removing the first data entry from the second list.

12. The method according to claim 1 , wherein writing the first data entry into the second disk array group includes:

while the first disk array group is in a degraded state and while the second disk array group operates as a non-failed disk array group, storing the first data entry into the non-failed disk array group.

13. The device according to claim 6 , wherein moving the first data entry from the second list to the first list includes:

determining that the first data entry is not from the first list;

determining that the first data entry is for the first disk array group; and

(i) after determining that the first data entry is not from the first list and determining that the first data entry is for the first disk array group and (ii) while the first disk array group is in a degraded state, adding the first data entry to the first list, and removing the first data entry from the second list.

14. The device according to claim 6 , wherein writing the first data entry into the second disk array group includes:

while the first disk array group is in a degraded state and while the second disk array group operates as a non-failed disk array group, storing the first data entry into the non-failed disk array group.

15. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage a storage system which includes a disk array and a cache, the disk array at least including first and second disk array groups; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

in response to receiving a message indicating that a failure occurs in the first disk array group, selecting, from a plurality of lists in the cache, a first data entry to be written into the disk array, the plurality of lists at least including first and second lists, wherein the first list is used to cache a data entry for the failed disk array group in the disk array;

in response to determining that the first data entry comes from the first list, writing the first data entry into the disk array;

in response to determining that the first data entry comes from the second list and the first data entry is to be written into the first disk array group, moving the first data entry from the second list to the first list; and

in response to determining that the first data entry is to be written into the second disk array group, writing the first data entry into the second disk array group.

16. The method according to claim 15 , wherein the selecting from a plurality of lists in the cache a first data entry to be written into the disk array comprises:

generating a set of candidate data entries from the plurality of lists; and

selecting the first data entry from the generated set of candidate data entries.

17. The method according to claim 16 , wherein the generating a set of candidate data entries from the plurality of lists comprises:

selecting a data entry cached for a maximum period of time in one of the plurality of lists into the set of candidate data entries.

18. The method according to claim 16 , wherein the plurality of lists have respective weights, and wherein the selecting the first data entry from the generated set of candidate data entries comprises:

selecting, based on the respective weights, the first data entry from the set of candidate data entries.

19. The method according to claim 18 , wherein the set of candidate data entries include a second data entry from the first list and a third data entry from the second list, the second data entry being cached in the first list for a first period of time, the third data entry being cached in the second list for a second period of time, the first list having a first weight and the second list having a second weight less than the first weight, and

wherein the selecting the first data entry from the set of candidate data entries comprises:

determining a first ratio of the first period of time to the first weight and a second ratio of the second period of time to the second weight;

in response to the first ratio exceeding the second ratio, selecting the second data entry as the first data entry; and

in response to the first ratio being below the second ratio, selecting the third data entry as the first data entry.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: YANG, LIFENG; XU, XINLEI; GAO, JIAN; DONG, JIBING; HAN, GENG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053193/0088 →