IP Library Granted Patent US 10,439,878
Granted Patent B1
US 10,439,878 · App. 15/993,703 · Granted Oct 8, 2019

Process-based load balancing and failover policy implementation in storage multi-path layer of host device

Inventors: Arnab Tah (Bangalore, IN); Rimpesh Patel (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
H04L41/0893H04L67/1034H04L67/1097H04L69/14H04L69/18H04L69/40
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,439,878
App. No.
15/993,703
Granted
Oct 8, 2019
Kind
B1
Abstract

An apparatus in one embodiment comprises a host device configured to communicate over a network with a storage system comprising a plurality of storage devices. The host device includes a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system. The multi-path input-output driver is further configured to detect at least first and second input-output operations from respective ones of at least first and second different processes executing on the host device, to assign a first policy identifier to the first input-output operation from the first process, and to assign a second policy identifier different than the first policy identifier to the second input-output operation from the second process. The input-output operations are queued in different ones of the queues of the set of input-output queues based at least in part on their respective assigned policy identifiers.

Claims (54)

1. An apparatus comprising:

a host device configured to communicate over a network with a storage system comprising a plurality of storage devices;

the host device comprising:

a set of input-output queues; and

a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network;

wherein the multi-path input-output driver is further configured:

to detect at least first and second input-output operations from respective ones of at least first and second different processes executing on the host device;

to assign a first policy identifier to the first input-output operation from the first process; and

to assign a second policy identifier different than the first policy identifier to the second input-output operation from the second process;

wherein the input-output operations are queued in different ones of the queues of the set of input-output queues based at least in part on their respective assigned policy identifiers.

2. The apparatus of claim 1 further comprising one or more additional host devices each configured to communicate over the network with the storage system and wherein each additional host device comprises a set of input-output queues and a multi-path input-output driver configured to select input-output operations from the set of input-output queues for delivery to the storage system over the network.

3. The apparatus of claim 1 wherein the first policy identifier specifies at least one of a first load balancing policy and a first failover policy for the first input-output operation and the second policy identifier specifies at least one of a second load balancing policy and a second failover policy for the second input-output operation, and wherein the second load balancing policy and the second failover policy are different than respective corresponding ones of the first load balancing policy and the first failover policy.

4. The apparatus of claim 1 wherein the first and second processes comprise different processes of a given application executing on the host device.

5. The apparatus of claim 1 wherein the first and second processes comprise different processes of respective different applications executing on the host device.

6. The apparatus of claim 1 wherein the first and second processes comprise respective different applications executing on the host device.

7. The apparatus of claim 1 wherein the storage system comprises a storage array having a particular logical unit type and the first and second input-output operations to which the multi-path input-output driver assigns the different first and second policy identifiers are directed to the same storage array having the particular logical unit type.

8. The apparatus of claim 1 wherein the multi-path input-output driver is further configured to maintain at least one table that provides a mapping between process identifiers and respective corresponding policy identifiers.

9. The apparatus of claim 1 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

determining a process identifier for the given input-output operation;

accessing a mapping table to determine a policy identifier corresponding to the process identifier; and

assigning the policy identifier to the given input-output operation.

10. The apparatus of claim 1 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

forming at least one multi-path input-output request packet based at least in part on the given input-output operation; and

inserting at least a portion of the given policy identifier into one or more fields of the multi-path input-output request packet.

11. The apparatus of claim 1 wherein the first and second input-output operations are part of respective first and second subsets of a given set of input-output operations directed to a particular logical unit of the storage system and wherein different load balancing and failover policies are applied to the first subset of input-output operations than are applied to the second subset of input-output operations.

12. The apparatus of claim 11 wherein the set of input-output queues comprises at least first and second different input-output queues for use with respective ones of the first and second subsets of the given set of input-output operations.

13. The apparatus of claim 1 wherein input-output operations assigned the first policy identifier are queued in a first one of the queues of the set of input-output queues and input-output operations assigned the second policy identifier are queued in a second one of the queues of the set of input-output queues.

14. The apparatus of claim 13 wherein the multi-path input-output driver is configured to select the input-output operations queued in the first queue in accordance with a first policy identified by the first policy identifier and to select the input-output operations queued in the second queue in accordance with a second policy identified by the second policy identifier.

15. A method comprising:

configuring a multi-path input-output driver of a host device to select input-output operations from a set of input-output queues of the host device for delivery to a storage system over a network;

wherein the multi-path input-output driver performs the following steps:

detecting at least first and second input-output operations from respective ones of at least first and second different processes executing on the host device;

assigning a first policy identifier to the first input-output operation from the first process; and

assigning a second policy identifier different than the first policy identifier to the second input-output operation from the second process;

wherein the input-output operations are queued in different ones of the queues of the set of input-output queues based at least in part on their respective assigned policy identifiers.

16. The method of claim 15 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

determining a process identifier for the given input-output operation;

accessing a mapping table to determine a policy identifier corresponding to the process identifier; and

assigning the policy identifier to the given input-output operation.

17. The method of claim 15 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

forming at least one multi-path input-output request packet based at least in part on the given input-output operation; and

inserting at least a portion of the given policy identifier into one or more fields of the multi-path input-output request packet.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by a host device comprising a multi-path input-output driver and a set of input-output queues, the host device being configured to communicate over a network with a storage system, causes the multi-path input-output driver:

to detect at least first and second input-output operations from respective ones of at least first and second different processes executing on the host device;

to assign a first policy identifier to the first input-output operation from the first process; and

to assign a second policy identifier different than the first policy identifier to the second input-output operation from the second process;

wherein the input-output operations are queued in different ones of the queues of the set of input-output queues based at least in part on their respective assigned policy identifiers.

19. The computer program product of claim 18 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

determining a process identifier for the given input-output operation;

accessing a mapping table to determine a policy identifier corresponding to the process identifier; and

assigning the policy identifier to the given input-output operation.

20. The computer program product of claim 18 wherein assigning a given one of the policy identifiers to a given one of the input-output operations comprises:

forming at least one multi-path input-output request packet based at least in part on the given input-output operation; and

inserting at least a portion of the given policy identifier into one or more fields of the multi-path input-output request packet.

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 (047648/0422) 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
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/0001 →
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 Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2018
From: TAH, ARNAB; PATEL, RIMPESH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046276/0059 →
Cited By (15)
US 12,189,957 US 12,204,762 US 12,216,526 US 12,222,863 US 12,299,118 US 12,299,300 US 12,299,327 US 12,328,296 US 12,353,711 US 12,405,738 US 12,487,771 US 12,493,409 US 12,498,866 US 12,561,419 US 12,568,040