IP Library › Granted Patent US 10,459,640
Granted Patent B2
US 10,459,640 · App. 15/923,445 · Granted Oct 29, 2019

High availability storage access using quality of service based path selection in a storage area network environment

Inventors: Joey Parnell (Wichita, KS); Steven Schremmer (Wichita, KS); Brandon Thompson (Wichita, KS); Mahmoud K. Jibbe (Wichita, KS)
Assignee: NETAPP, INC.
G06F3/0617G06F3/067G06F3/0611G06F3/0635G06F3/0658
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,459,640
App. No.
15/923,445
Granted
Oct 29, 2019
Kind
B2
Abstract

A method, a computing device, and a non-transitory machine-readable medium for performing a multipath selection based on a determined quality of service for the paths. An example method includes a host computing device periodically polling a storage system for path information including an indication of a recommended storage controller. The host computing device periodically determines a quality of service information corresponding to a plurality of paths between the host computing device and a storage volume of the storage system, where at least one of the plurality of paths including the recommended storage controller. The host computing device identifies a fault corresponding to a path of the plurality of paths that routes I/O from the host computing device to the storage volume. The host computing device re-routes the I/O from the path to a different path of the plurality of paths, where the different path is selected for the re-routing based on the quality of service information and the path information.

Claims (38)

1. A method comprising:

periodically polling, by a host computing device, a storage system for path information including an indication of a recommended storage controller;

periodically determining, by the host computing device, quality of service information corresponding to a plurality of paths between the host computing device and a storage volume of the storage system, at least one of the plurality of paths including the recommended storage controller;

identifying, by the host computing device, a fault corresponding to a path of the plurality of paths that routes input/output (I/O) between the host computing device and the storage volume; and

re-routing, by the host computing device, the I/O from the path corresponding to the fault to a different path of the plurality of paths, wherein the different path is selected for the re-routing based on the quality of service information and the path information.

2. The method of claim 1 , wherein the quality of service information comprises a response time measurement corresponding to communications between the host computing device and the storage system.

3. The method of claim 1 , wherein the quality of service information comprises a throughput measurement corresponding to communications between the host computing device and the storage system.

4. The method of claim 1 , wherein a manner of selecting the recommended storage controller is specified by a user when provisioning the storage volume on the storage system.

5. The method of claim 1 , wherein the recommended storage controller is assigned ownership of the storage volume by the storage system.

6. The method of claim 1 , wherein the recommended storage controller is assigned ownership of the storage volume based on host connectivity information that is determined by the storage system.

7. The method of claim 1 , wherein the recommended storage controller is assigned ownership of the storage volume based on the storage system determining that there are at least a threshold number of paths between the host computing device and the recommended storage controller.

8. The method of claim 1 , further comprising:

assigning, by the storage system, ownership of the storage volume to a non-owning storage controller that received a plurality of the I/O that was routed through one or more non-owning storage controllers including the non-owning storage controller for more than a threshold duration of time.

9. The method of claim 1 , further comprising:

ranking the plurality of paths based on the path information and the quality of service information.

10. The method of claim 1 , wherein the storage volume comprises a namespace and the host computing device communicates the I/O with the storage volume via a Non-Volatile Memory Express (NVMe) protocol.

11. A computing device comprising:

a memory containing machine-readable medium comprising machine executable code having stored thereon instructions for performing a multipath selection method; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

periodically poll a storage system for path information including an indication of a recommended storage controller;

periodically determine quality of service information corresponding to a plurality of paths between a host computing device and a storage volume of the storage system, at least one of the plurality of paths including the recommended storage controller;

identify a fault corresponding to a path of the plurality of paths that routes input/output (I/O) between the host computing device and the storage volume; and

re-route the I/O from the path corresponding to the fault to a different path of the plurality of paths, wherein the different path is selected for the re-routing based on the quality of service information and the path information.

12. The computing device of claim 11 , wherein the quality of service information comprises at least one of a response time measurement or a throughput measurement.

13. The computing device of claim 11 , wherein the recommended storage controller is assigned ownership of the storage volume by the storage system.

14. The computing device of claim 11 , wherein the storage system performs operations comprising:

assigning ownership of the storage volume to a non-owning storage controller that received a plurality of the I/O that was routed through one or more non-owning storage controllers including the non-owning storage controller for more than a threshold duration of time.

15. The computing device of claim 11 , wherein the storage volume comprises a namespace and the host computing device communicates the I/O with the storage volume via a Non-Volatile Memory Express (NVMe) protocol.

16. A non-transitory machine-readable medium having stored thereon instructions for performing a method comprising machine executable code that when executed by at least one machine, causes the machine to:

periodically poll a storage system for path information including an indication of a recommended storage controller;

periodically determine quality of service information corresponding to a plurality of paths between a host computing device and a storage volume of the storage system, at least one of the plurality of paths including the recommended storage controller;

identify a fault corresponding to a path of the plurality of paths that routes input/output (I/O) between the host computing device and the storage volume; and

re-route the I/O the path corresponding to the fault to a different path of the plurality of paths, wherein the different path is selected for the re-routing based on the quality of service information and the path information.

17. The non-transitory machine-readable medium of claim 16 , wherein the quality of service information comprises at least one of a response time measurement or a throughput measurement.

18. The non-transitory machine-readable medium of claim 16 , wherein the recommended storage controller is assigned ownership of the storage volume by the storage system.

19. The non-transitory machine-readable medium of claim 16 , wherein the storage system performs operations comprising:

assigning ownership of the storage volume to a non-owning storage controller that received a plurality of the I/O that was routed through one or more non-owning storage controllers including the non-owning storage controller for more than a threshold duration of time.

20. The non-transitory machine-readable medium of claim 16 , wherein the storage volume comprises a namespace and the host computing device communicates the I/O with the storage volume via a Non-Volatile Memory Express (NVMe) protocol.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2018
From: PARNELL, JOEY; SCHREMMER, STEVEN; THOMPSON, BRANDON; JIBBE, MAHMOUD K.
To: NETAPP, INC.
Reel/Frame 045255/0797 →
Continuity (2)
Provisional Application 62565855 · Sep 29, 2017
Related Publication 20190102093A1 · Apr 4, 2019