IP Library Granted Patent US 9,880,764
Granted Patent B1
US 9,880,764 · App. 15/085,923 · Granted Jan 30, 2018

Flash disk cache management for increased virtual LUN availability

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 9,880,764
App. No.
15/085,923
Granted
Jan 30, 2018
Kind
B1
Abstract

Systems, methods, and computer readable media are disclosed. A map including the number of dirty cache pages stored in the flash disk cache for each VLUN of the plurality of VLUNs on the storage system is maintained, by the storage system. A flash disk cache error requiring the storage system to take the flash disk cache offline is detected. In response to detecting the flash disk cache error a first one or more VLUNs of the plurality of VLUNs with at least one dirty cache page stored in the flash disk cache are identified by the storage system based on the map. The first one or more VLUNs are taken offline by the storage system. The flash disk cache is taken offline by the storage system. A second one or more VLUNs comprising VLUNs of the plurality of VLUNs without dirty cache pages stored in the flash disk cache are maintained online by the storage system.

Claims (88)

1. A method performed by a storage system comprising a flash disk cache and a plurality of virtual LUNs (VLUNs), the method comprising:

maintaining, by the storage system, a map comprising a number of dirty cache pages stored in the flash disk cache for each VLUN of the plurality of VLUNs on the storage system;

detecting, by the storage system, a flash disk cache error requiring the storage system to take the flash disk cache offline;

in response to detecting the flash disk cache error, identifying, by the storage system, based on the map a first one or more VLUNs of the plurality of VLUNs with at least one dirty cache page stored in the flash disk cache;

taking offline, by the storage system, the first one or more VLUNs;

taking offline, by the storage system, the flash disk cache; and

maintaining online, by the storage system, a second one or more VLUNs comprising VLUNs of the plurality of VLUNs without dirty cache pages stored in the flash disk cache.

2. The method of claim 1 , wherein a VLUN of the second one or more VLUNs has at least one clean cache page in the flash disk cache.

3. The method of claim 1 , wherein the plurality of VLUNs are thin-provisioned LUNs.

4. The method of claim 1 , further comprising:

receiving, by the storage system, a write request comprising data to write to a first VLUN of the plurality of VLUNs and an identification of the first VLUN;

determining, by the storage system, based on the write request there is a cache hit in the flash disk cache, the cache hit for a first cache page in the flash disk cache;

determining, by the storage system, the first cache page is clean prior to writing the data to the flash disk cache;

determining, by the storage system, the first cache page is dirty as a result of executing the write request;

incrementing, by the storage system, the number of dirty cache pages for the first VLUN in the map; and

writing, by the storage system, the data to the flash disk cache.

5. The method of claim 1 , further comprising:

identifying, by the storage system, a first cache page in the fast disk cache for eviction;

determining, by the storage system, the first cache page is dirty and associated with a first VLUN;

writing, by the storage system, data of the first cache page to a physical LUN; and

decrementing, by the storage system, the number of dirty cache pages for the first VLUN in the map.

6. The method of claim 1 , wherein the map comprises an entry for each VLUN of the plurality of VLUNs, the entry comprising a VLUN identifier for the VLUN and an associated number of dirty cache pages stored in the flash disk cache.

7. The method of claim 6 , further comprising:

creating, by the storage system, a new VLUN; and

in response to creating the new VLUN, creating, by the storage system, a new entry in the map for the new VLUN.

8. The method of claim 6 , further comprising:

creating, by the storage system, a new VLUN;

receiving, by the storage system, a write request comprising data to write to the new VLUN;

in response to receiving the write request, creating, by the storage system, a new entry in the map for the new VLUN.

9. A storage system comprising:

a plurality of virtual LUNs (VLUNs);

a flash disk cache;

a service processor configured to:

maintain a map comprising a number of dirty cache pages stored in the flash disk cache for each VLUN of the plurality of VLUNs on the storage system;

detect a flash disk cache error requiring the storage system to take the flash disk cache offline;

in response to detecting the flash disk cache error, identify, based on the map a first one or more VLUNs of the plurality of VLUNs with at least one dirty cache page stored in the flash disk cache;

take offline the first one or more VLUNs;

take offline the flash disk cache; and

maintain online a second one or more VLUNs comprising VLUNs of the plurality of VLUNs without dirty cache pages stored in the flash disk cache.

10. The storage system of claim 9 , wherein a VLUN of the second one or more VLUNs has at least one clean cache page in the flash disk cache.

11. The storage system of claim 9 , wherein the plurality of VLUNs are thin-provisioned LUNs.

12. The storage system of claim 9 , wherein the storage processor is further configured to:

receive a write request comprising data to write to a first VLUN of the plurality of VLUNs and an identification of the first VLUN;

determine based on the write request there is a cache hit in the flash disk cache, the cache hit for a first cache page in the flash disk cache;

determine the first cache page is clean prior to writing the data to the flash disk cache;

determine the first cache page is dirty as a result of executing the write request;

increment the number of dirty cache pages for the first VLUN in the map; and

write the data to the flash disk cache.

13. The storage system of claim 9 , wherein the storage processor is further configured to:

identify a first cache page in the fast disk cache for eviction;

determine the first cache page is dirty and associated with a first VLUN;

write data of the first cache page to a physical LUN; and

decrement the number of dirty cache pages for the first VLUN in the map.

14. The storage system of claim 9 , wherein the map comprises an entry for each VLUN of the plurality of VLUNs, the entry comprising a VLUN identifier for the VLUN and an associated number of dirty cache pages stored in the flash disk cache.

15. The storage system of claim 14 , wherein the storage processor is further configured to:

create a new VLUN; and

in response to creating the new VLUN, create a new entry in the map for the new VLUN.

16. The storage system of claim 14 , wherein the storage processor is further configured to:

create a new VLUN;

receive a write request comprising data to write to the new VLUN;

in response to receiving the write request, create a new entry in the map for the new VLUN.

17. A computer readable program product embodied in a non-transitory medium storing instructions that, when executed by a storage system, cause the storage system to:

maintain a map comprising a number of dirty cache pages stored in a flash disk cache for each virtual LUN (VLUN) of a plurality of VLUNs on the storage system;

detect a flash disk cache error requiring the storage system to take the flash disk cache offline;

in response to detecting the flash disk cache error, identify, based on the map a first one or more VLUNs of the plurality of VLUNs with at least one dirty cache page stored in the flash disk cache;

take offline the first one or more VLUNs;

take offline the flash disk cache; and

maintain online a second one or more VLUNs comprising VLUNs of the plurality of VLUNs without dirty cache pages stored in the flash disk cache.

18. The computer readable program product of claim 17 , further storing instructions that cause the storage system to:

receive a write request comprising data to write to a first VLUN of the plurality of VLUNs and an identification of the first VLUN;

determine based on the write request there is a cache hit in the flash disk cache, the cache hit for a first cache page in the flash disk cache;

determine the first cache page is clean prior to writing the data to the flash disk cache;

determine the first cache page is dirty as a result of executing the write request;

increment the number of dirty cache pages for the first VLUN in the map; and

write the data to the flash disk cache.

19. The computer readable program product of claim 17 , further storing instructions that cause the storage system to:

identify a first cache page in the fast disk cache for eviction;

determine the first cache page is dirty and associated with a first VLUN;

write data of the first cache page to a physical LUN; and

decrement the number of dirty cache pages for the first VLUN in the map.

20. The computer readable program product of claim 17 , wherein the map comprises an entry for each VLUN of the plurality of VLUNs, the entry comprising a VLUN identifier for the VLUN and an associated number of dirty cache pages stored in the flash disk cache.

21. The computer readable program product of claim 20 , further storing instructions that cause the storage system to:

create a new VLUN; and

in response to creating the new VLUN, create a new entry in the map for the new VLUN.

22. The computer readable program product of claim 20 , further storing instructions that cause the storage system to:

create a new VLUN;

receive a write request comprising data to write to the new VLUN;

in response to receiving the write request, create a new entry in the map for the new VLUN.

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 (045482/0131) 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 061749/0924 →
RELEASE OF SECURITY INTEREST AT REEL 045482 FRAME 0395 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/0314 →
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 Mar 1, 2018
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 045482/0395 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 1, 2018
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 045482/0131 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044360/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2016
From: XU, XINLEI; GAO, JIAN; YANG, LIFENG; HAN, GENG; DONG, JIBING; CHEN, LILI
To: EMC CORPORATION
Reel/Frame 038818/0828 →