IP Library Granted Patent US 11,513,956
Granted Patent B2
US 11,513,956 · App. 17/220,317 · Granted Nov 29, 2022

Maintaining availability of a non-volatile cache

Inventors: Vamsi K. Vankamamidi (Hopkinton, MA); Geng Han (Beijing, CN); Chun Ma (Beijing, CN); Jianbin Kang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0802G06F2212/60
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,513,956
App. No.
17/220,317
Granted
Nov 29, 2022
Kind
B2
Abstract

A technique maintains availability of a non-volatile cache. The technique involves arranging a plurality of non-volatile random-access memory (NVRAM) drives into initial drive sets that form the non-volatile cache. The technique further involves detecting a failed initial drive set among the initial drive sets. The plurality of NVRAM drives now includes failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives. The technique further involves, in response to detecting the failed initial drive set, re arranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache.

Claims (73)

1. A method of maintaining availability of a non-volatile cache, the method comprising:

arranging a plurality of non-volatile random-access memory (NVRAM) drives into initial drive sets that form the non-volatile cache;

detecting a failed initial drive set among the initial drive sets, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives; and

in response to detecting the failed initial drive set, rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache;

wherein arranging the plurality of NVRAM drives into the initial drive sets includes:

creating a number of initial drive sets from the plurality of NVRAM drives; and

wherein rearranging the remaining non-failed NVRAM drives includes:

creating a number of new drive sets from the remaining non-failed NVRAM drives that equals the number of initial drive sets created from the plurality of NVRAM drives.

2. A method as in claim 1 wherein the failed initial drive set includes a pair of NVRAM drives; and

wherein detecting the failed initial drive set includes:

sensing that each NVRAM drive of the pair of NVRAM drives has failed.

3. A method as in claim 1 wherein the plurality of NVRAM drives includes a first group of NVRAM drives that receives power from a first battery backup unit (BBU) and a second group of NVRAM drives that receives power from a second BBU; and

wherein arranging the plurality of NVRAM drives into the initial drive sets includes:

creating each initial drive set from an NVRAM drive of the first group and an NVRAM drive of the second group.

4. A method as in claim 1 , further comprising:

prior to detecting the failed initial drive set, copying data from a buffer of a storage processor into each NVRAM drive of the failed initial drive set; and

in response to detecting the failed initial drive set, copying the data from the buffer of the storage processor into standby storage.

5. A method as in claim 4 , further comprising:

after rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into the new drive sets, loading the copied data from the standby storage into one of the new drive sets.

6. A method as in claim 5 , further comprising:

after rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into the new drive sets, reloading the copied data into the buffer of the storage processor.

7. A method as in claim 6 , further comprising:

prior to detecting the failed initial drive set, performing data storage operations from the storage processor, the data storage operations caching data within log-structured storage provided by the non-volatile cache.

8. A method as in claim 7 , further comprising:

in response to detecting the failed initial drive set, halting a datapath that includes the log-structured storage; and

after the copied data is loaded from the standby storage into the one of the new drive sets and after the copied data is reloaded into the buffer of the storage processor, resuming the datapath that includes the log-structured storage.

9. A method as in claim 1 wherein arranging the plurality of NVRAM drives into initial drive sets that form the non-volatile cache includes:

constructing initial virtual NVRAM storage objects from the plurality of NVRAM drives, each initial virtual NVRAM storage object including a pair of NVRAM drives operating as a mirror to store mirroring copies of data.

10. A method as in claim 7 wherein rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives includes:

constructing new virtual NVRAM storage objects from the remaining non-failed NVRAM drives of the plurality of NVRAM drives, each new virtual NVRAM storage object including a pair of NVRAM drives operating as a mirror to store mirroring copies of data.

11. A method as in claim 1 wherein the failed initial drive set includes a pair of NVRAM drives; and

wherein the method further comprises:

prior to detecting the failed initial drive set, operating the pair of NVRAM drives in an optimal state in which each of a first NVRAM drive and a second NVRAM drive of the pair of NVRAM drives stores a respective copy of data to form a mirror.

12. A method as in claim 11 , further comprising:

after the pair of NVRAM drives operates in the optimal state and prior to detecting the failed initial drive set, operating the pair of NVRAM drives in a degraded state in which one of first and second NVRAM drives has failed and another of the first and second NVRAM drives continues to store a respective copy of the data.

13. A method as in claim 12 wherein detecting the failed initial drive set includes:

detecting that each of the first NVRAM drive and the second NVRAM drive of the pair of NVRAM drives has failed.

14. Data storage equipment, comprising:

memory; and

control circuitry coupled to the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to perform a method of:

arranging a plurality of non-volatile random-access memory (NVRAM) drives into initial drive sets that form a non-volatile cache,

detecting a failed initial drive set, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives, and

in response to detecting the failed initial drive set, rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache;

wherein arranging the plurality of NVRAM drives into the initial drive sets includes:

creating a number of initial drive sets from the plurality of NVRAM drives; and

wherein rearranging the remaining non-failed NVRAM drives includes:

creating a number of new drive sets from the remaining non-failed NVRAM drives that equals the number of initial drive sets created from the plurality of NVRAM drives.

15. Data storage equipment as in claim 14 wherein the failed initial drive set includes a pair of NVRAM drives; and

wherein detecting the failed initial drive set includes:

sensing that each NVRAM drive of the pair of NVRAM drives has failed.

16. Data storage equipment as in claim 15 wherein the plurality of NVRAM drives includes a first group of NVRAM drives that receives power from a first battery backup unit (BBU) and a second group of NVRAM drives that receives power from a second BBU; and

wherein creating the number of initial drive sets from the plurality of NVRAM drives includes:

creating each initial drive set from an NVRAM drive of the first group and an NVRAM drive of the second group.

17. Data storage equipment as in claim 14 wherein the method further includes:

prior to detecting the failed initial drive set, copying data from a buffer of a storage processor into each NVRAM drive of the failed initial drive set; and

in response to detecting the failed initial drive set, copying the data from the buffer of the storage processor into standby storage.

18. A computer program product having a non-transitory computer readable medium which stores a set of instructions to maintain availability of a non-volatile cache; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

arranging a plurality of non-volatile random-access memory (NVRAM) drives into initial drive sets that form the non-volatile cache;

detecting a failed initial drive set, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives; and

in response to detecting the failed initial drive set, rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache;

wherein arranging the plurality of NVRAM drives into the initial drive sets includes:

creating a number of initial drive sets from the plurality of NVRAM drives; and

wherein rearranging the remaining non-failed NVRAM drives includes:

creating a number of new drive sets from the remaining non-failed NVRAM drives that equals the number of initial drive sets created from the plurality of NVRAM drives.

19. A method of maintaining availability of a non-volatile cache, the method comprising:

arranging a plurality of non-volatile random-access memory (NVRAM) drives into initial drive sets that form the non-volatile cache;

detecting a failed initial drive set among the initial drive sets, the plurality of NVRAM drives now including failed NVRAM drives that belong to the failed initial drive set and remaining non-failed NVRAM drives; and

in response to detecting the failed initial drive set, rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into new drive sets that form the non-volatile cache;

wherein the method further comprises:

prior to detecting the failed initial drive set, copying data from a buffer of a storage processor into each NVRAM drive of the failed initial drive set; and

in response to detecting the failed initial drive set, copying the data from the buffer of the storage processor into standby storage.

20. A method as in claim 19 , further comprising:

after rearranging the remaining non-failed NVRAM drives of the plurality of NVRAM drives into the new drive sets, loading the copied data from the standby storage into one of the new drive sets.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) 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 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) 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 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
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 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: VANKAMAMIDI, VAMSI K.; HAN, GENG; MA, CHUN; KANG, JIANBIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056145/0822 →
Continuity (1)
Related Publication 20220318141A1 · Oct 6, 2022