IP Library Granted Patent US 11,023,161
Granted Patent B1
US 11,023,161 · App. 16/694,291 · Granted Jun 1, 2021

Host device with multi-path layer implementing efficient load balancing for active-active configuration

Inventors: Amit Pundalik Anchi (Bangalore, IN); Vinay G. Rao (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0655G06F3/0604G06F3/067
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,023,161
App. No.
16/694,291
Granted
Jun 1, 2021
Kind
B1
Abstract

An apparatus comprises a host device that includes a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the host device to first and second storage systems over selected paths through a network. The MPIO driver is further configured to obtain a copy command associated with at least one of the IO operations, to identify a plurality of paths shared between source and destination logical storage devices of the copy command, to select a particular path from the identified paths, and to send the copy command to one of the first and second storage systems over the selected path. The first and second storage systems in some embodiments are arranged in an active-active configuration relative to one another. A given one of the source and destination logical storage devices may comprise a paired logical device established in accordance with the active-active configuration of the first and second storage systems.

Claims (59)

1. An apparatus comprising:

a host device configured to communicate over a network with first and second storage systems;

the host device comprising:

a multi-path input-output driver configured to control delivery of input-output operations from the host device to the first and second storage systems over selected paths through the network;

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

to obtain a copy command associated with at least one of the input-output operations;

to identify a plurality of paths that are shared between source and destination logical storage devices of the copy command;

to select a particular path from the identified paths; and

to send the copy command to one of the first and second storage systems over the selected path;

wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices comprises:

accessing a first data structure of the host device, the first data structure corresponding to the source logical storage device and specifying a first set of paths;

accessing a second data structure of the host device, the second data structure corresponding to the destination logical storage device and specifying a second set of paths; and

identifying the plurality of paths utilizing path information obtained from the first and second data structures, wherein identifying the plurality of paths utilizing the path information obtained from the first and second data structures comprises identifying the plurality of paths as an intersection of the first and second sets of paths.

2. The apparatus of claim 1 , wherein the first and second storage systems are arranged in an active-active configuration relative to one another.

3. The apparatus of claim 2 , wherein a given one of the source and destination logical storage devices comprises a paired logical device established in accordance with the active-active configuration of the first and second storage systems, the paired logical device being identified by the multi-path input-output driver as a single logical device but having separate corresponding logical devices on the respective first and second storage systems.

4. The apparatus of claim 1 , wherein the paths are associated with respective initiator-target pairs with the initiators being implemented on the host device and the targets being implemented on the first and second storage systems.

5. The apparatus of claim 4 , wherein the initiators of the initiator-target pairs comprise respective host bus adaptors of the host device and the targets of the initiator-target pairs comprise respective storage array ports of the first and second storage systems.

6. The apparatus of claim 1 , wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices further comprises:

determining at least respective identifiers of the source and the destination logical storage devices of the copy command;

wherein accessing the first data structure of the host device is based at least in part on the identifier of the source logical storage device; and

wherein accessing the second data structure of the host device is based at least in part on the identifier of the destination logical storage device.

7. The apparatus of claim 1 , wherein the first data structure comprises a first object specifying the first set of paths, the first set of paths being between the host device and at least one of the first and second storage systems, and the second data structure comprises a second object specifying the second set of paths, the second set of paths being between the host device and at least one of the first and second storage systems.

8. The apparatus of claim 7 , wherein at least one of the first object and the second object comprises a federated object that specifies paths to both the first and the second storage systems for a paired logical device that is identified by the multi-path input-output driver as a single logical device but has separate corresponding logical devices on the respective first and second storage systems.

9. The apparatus of claim 1 , wherein the copy command comprises a Small Computer System Interface (SCSI) command of a particular type.

10. The apparatus of claim 1 , wherein the copy command comprises an extended copy command.

11. The apparatus of claim 1 , wherein the copy command comprises a command payload, the command payload comprising a plurality of descriptors, including at least a first descriptor identifying the source logical storage device and a second descriptor identifying the destination logical storage device.

12. The apparatus of claim 1 , wherein operation of a load balancing algorithm of the multi-path input-output driver is modified based at least in part on the identified paths that are shared between the source and the destination logical storage devices.

13. The apparatus of claim 1 , wherein selecting a particular path from the identified paths that are shared between the source and the destination logical storage devices comprises limiting a load balancing algorithm of the multi-path input-output driver to consideration of only the identified paths that are shared between the source and the destination logical storage devices in selecting the particular path for sending the copy command to one of the first and second storage systems.

14. A method comprising:

configuring a multi-path input-output driver of a host device to control delivery of input-output operations from the host device to first and second storage systems over selected paths through a network;

the multi-path input-output driver:

obtaining a copy command associated with at least one of the input-output operations;

identifying a plurality of paths that are shared between source and destination logical storage devices of the copy command;

selecting a particular path from the identified paths; and

sending the copy command to one of the first and second storage systems over the selected path;

wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices comprises:

accessing a first data structure of the host device, the first data structure corresponding to the source logical storage device and specifying a first set of paths;

accessing a second data structure of the host device, the second data structure corresponding to the destination logical storage device and specifying a second set of paths; and

identifying the plurality of paths utilizing path information obtained from the first and second data structures, wherein identifying the plurality of paths utilizing the path information obtained from the first and second data structures comprises identifying the plurality of paths as an intersection of the first and second sets of paths.

15. The method of claim 14 , wherein the first and second storage systems are arranged in an active-active configuration relative to one another.

16. The method of claim 14 , wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices further comprises:

determining at least respective identifiers of the source and the destination logical storage devices of the copy command;

wherein accessing the first data structure of the host device is based at least in part on the identifier of the source logical storage device; and

wherein accessing the second data structure of the host device is based at least in part on the identifier of the destination logical storage device.

17. 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, the multi-path input-output driver being configured to control delivery of input-output operations from the host device to first and second storage systems over selected paths through a network, causes the multi-path input-output driver:

to obtain a copy command associated with at least one of the input-output operations;

to identify a plurality of paths that are shared between source and destination logical storage devices of the copy command;

to select a particular path from the identified paths; and

to send the copy command to one of the first and second storage systems over the selected path;

wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices comprises:

accessing a first data structure of the host device, the first data structure corresponding to the source logical storage device and specifying a first set of paths;

accessing a second data structure of the host device, the second data structure corresponding to the destination logical storage device and specifying a second set of paths; and

identifying the plurality of paths utilizing path information obtained from the first and second data structures, wherein identifying the plurality of paths utilizing the path information obtained from the first and second data structures comprises identifying the plurality of paths as an intersection of the first and second sets of paths.

18. The computer program product of claim 17 , wherein the first and second storage systems are arranged in an active-active configuration relative to one another.

19. The computer program product of claim 17 , wherein identifying the plurality of paths that are shared between the source and the destination logical storage devices further comprises:

determining respective identifiers of the source and the destination logical storage devices of the copy command;

wherein accessing the first data structure of the host device is based at least in part on the identifier of the source logical storage device; and

wherein accessing the second data structure of the host device is based at least in part on the identifier of the destination logical storage device.

20. The computer program product of claim 17 , wherein the first data structure comprises a first object specifying the first set of paths, the first set of paths being between the host device and at least one of the first and second storage systems, and the second data structure comprises a second object specifying the second set of paths, the second set of paths being between the host device and at least one of the first and second storage systems.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 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 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
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 AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: ANCHI, AMIT PUNDALIK; RAO, VINAY G.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051106/0578 →