IP Library Granted Patent US 9,477,414
Granted Patent B1
US 9,477,414 · App. 14/464,535 · Granted Oct 25, 2016

Methods and systems for improved caching with data recovery

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,477,414
App. No.
14/464,535
Granted
Oct 25, 2016
Kind
B1
Abstract

Systems and methods for improved caching with data recovery are disclosed. A write input/output (I/O) request is received from an application to write to a storage area network (SAN) LUN that is cached by a first intelligent storage adapter (ISA) using a cache LUN and mirrored by a second ISA using a mirror LUN. Write through caching is enabled, when either the first ISA or the second ISA has failed. The write I/O request is proceed by a surviving ISA from among the first ISA and the second ISA, where the surviving ISA sends the write I/O to the SAN LUN. Data is copied from a local storage device of the surviving ISA to a recovery LUN; and periodically data is also flushed from the local storage of the surviving ISA to the SAN LUN.

Claims (49)

1. A machine-implemented method, comprising:

receiving a write input/output (I/O) request from an application to write to a storage area network (SAN) LUN that is based on storage space at a storage device accessible via a network connection, wherein data for the SAN LUN is cached by a first intelligent storage adapter (ISA) using a cache LUN based on storage space at a first storage device of the first ISA and mirrored by a second ISA using a mirror LUN that is based on storage space at a second storage device of the second ISA; wherein the first ISA is coupled to a first computing device and the second ISA is coupled to a second computing device and both the first ISA and the second ISA provide access to SAN based storage operating as host adapters and to local storage that is also managed by each of the first ISA and the second ISA;

disabling write back caching and enabling write-through caching, when either the first ISA or the second ISA has failed;

processing the write I/O request by a surviving ISA from among the first ISA and the second ISA, where the surviving ISA sends the write I/O to the SAN LUN via the network connection;

copying dirty data from a local storage device of the surviving ISA to a recovery LUN via the network connection; wherein the dirty data from the surviving ISA is data that has not been transferred to the SAN LUN and the dirty data is copied to the recovery LUN at a higher priority than the data sent to the SAN LUN by the surviving ISA; and

periodically flushing data from the local storage of the surviving ISA to the SAN LUN.

2. The machine-implemented method of claim 1 , wherein the cache LUN is based on storage space at a solid state storage device (SSD) managed by the first ISA and the mirror LUN is based on storage space at a SSD managed by the second ISA.

3. The machine-implemented method of claim 1 , wherein processing the write I/O includes storing a write I/O data to the local storage device of the surviving ISA.

4. The machine-implemented method of claim 1 , further comprising:

copying any data stored at local storage of both the first ISA and the second ISA to the recovery LUN, after the failed ISA becomes available again.

5. The machine-implemented method of claim 1 , further comprising:

accepting a second write I/O request at the surviving ISA; and

storing data of the second write I/O at the local storage device of the surviving ISA.

6. The machine-implemented method of claim 1 , further comprising:

immediately forwarding the second write I/O request to the SAN LUN as part of the enabled write-through caching.

7. The machine-implemented method of claim 1 , wherein the recovery LUN is based on storage that is accessible via the SAN.

8. A non-transitory, machine readable storage medium storing executable instructions, which when executed by a machine, causes the machine to perform a method, the method comprising:

receiving a write input/output (I/O) request from an application to write to a storage area network (SAN) LUN that is based on storage space at a storage device accessible via a network connection, wherein data for the SAN LUN is cached by a first intelligent storage adapter (ISA) using a cache LUN based on storage space at a first storage device of the first ISA and mirrored by a second ISA using a mirror LUN that is based on storage space at a second storage device of the second ISA; and wherein the first ISA is coupled to a first computing device and the second ISA is coupled to a second computing device and both the first ISA and the second ISA provide access to SAN based storage operating as host adapters and to local storage that is also managed by each of the first ISA and the second ISA;

disabling write back caching and enabling write-through caching, when either the first ISA or the second ISA has failed;

processing the write I/O request by a surviving ISA from among the first ISA and the second ISA, where the surviving ISA sends the write I/O to the SAN LUN via the network connection;

copying dirty data from a local storage device of the surviving ISA to a recovery LUN via the network connection; wherein the dirty data from the surviving ISA is data that has not been transferred to the SAN LUN and the dirty data is copied to the recovery LUN at a higher priority than the data sent to the SAN LUN by the surviving ISA; and

periodically flushing data from the local storage of the surviving ISA to the SAN LUN.

9. The storage medium of claim 8 , wherein the cache LUN is based on storage space at a solid state storage device (SSD) managed by the first ISA and the mirror LUN is based on storage space at a SSD managed by the second ISA.

10. The storage medium of claim 8 , wherein processing the write I/O includes storing a write I/O data to the local storage device of the surviving ISA.

11. The storage medium of claim 8 , the method further comprising:

copy any data stored at local storage of both the first ISA and the second ISA to the recovery LUN, after the failed ISA becomes available again.

12. The storage medium of claim 8 , the method further comprising:

accepting a second write I/O request at the surviving ISA; and

storing data of the second write I/O at the local storage device of the surviving ISA.

13. The storage medium of claim 8 , further comprising:

immediately forwarding the second write I/O request to the SAN LUN as part of the enabled write-through caching.

14. The storage medium of claim 8 , wherein the recovery LUN is based on storage that is accessible via the SAN.

15. A system comprising:

a processor executing instructions out of a memory for:

receiving a write input/output (I/O) request from an application to write to a storage area network (SAN) LUN that is based on storage space at a storage device accessible via a network connection, wherein data for the SAN LUN is cached by a first intelligent storage adapter (ISA) using a cache LUN based on storage space at a first storage device of the first ISA and mirrored by a second ISA using a mirror LUN that is based on storage space at a second storage device of the second ISA; and wherein the first ISA is coupled to a first computing device and the second ISA is coupled to a second computing device and both the first ISA and the second ISA provide access to SAN based storage operating as host adapters and to local storage that is also managed by each of the first ISA and the second ISA;

disabling write back caching and enabling write-through caching, when either the first ISA or the second ISA has failed;

processing the write I/O request by a surviving ISA from among the first ISA and the second ISA, where the surviving ISA sends the write I/O to the SAN LUN via the network connection;

copying dirty data from a local storage device of the surviving ISA to a recovery LUN via the network connection; wherein the dirty data from the surviving ISA is data that has not been transferred to the SAN LUN and the dirty data is copied to the recovery LUN at a higher priority than the data sent to the SAN LUN by the surviving ISA; and

periodically flushing data from the local storage of the surviving ISA to the SAN LUN.

16. The system of claim 15 , wherein the cache LUN is based on storage space at a solid state storage device (SSD) managed by the first ISA and the mirror LUN is based on storage space at a SSD managed by the second ISA.

17. The system of claim 15 , wherein processing the write I/O includes storing a write I/O data to the local storage device of the surviving ISA.

18. The system of claim 15 , the processor further executing instructions out of the memory for:

copy any data stored at local storage of both the first ISA and the second ISA to the recovery LUN, after the failed ISA becomes available again.

19. The system of claim 15 , the processor further executing instructions out of the memory for:

accepting a second write I/O request at the surviving ISA; and

storing data of the second write I/O at the local storage device of the surviving ISA.

20. The system of claim 15 , the processor further executing instructions out of the memory for:

immediately forwarding the second write I/O request to the SAN LUN as part of the enabled write-through caching.

21. The system of claim 15 , wherein the recovery LUN is based on storage that is accessible via the SAN.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2014
From: GOKHALE, PARAG
To: QLOGIC, CORPORATION
Reel/Frame 033576/0562 →