IP Library Granted Patent US 11,231,861
Granted Patent B2
US 11,231,861 · App. 16/743,097 · Granted Jan 25, 2022

Host device with active-active storage aware path selection

Inventors: Sanjib Mallick (Bangalore, IN); Vinay G. Rao (Bangalore, IN); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0635G06F3/067G06F3/0611G06F3/0659G06F3/0665G06F3/0683H04L29/08549H04L45/24H04L67/1097
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,231,861
App. No.
16/743,097
Granted
Jan 25, 2022
Kind
B2
Abstract

An apparatus comprises at least one processing device that includes a processor coupled to a memory. The processing device is configured to control delivery of input-output (IO) operations from a host device to at least first and second storage systems over selected ones of a plurality of paths through a network, the first and second storage systems being arranged in an active-active configuration relative to one another. The processing device is further configured to identify one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems, and to modify path selection for IO operations directed to the one or more identified logical storage devices relative to path selection for IO operations directed to one or more other logical storage devices. The processing device illustratively comprises at least a portion of the host device.

Claims (62)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

said at least one processing device being configured:

to control delivery of input-output operations from a host device to at least first and second storage systems over selected ones of a plurality of paths through a network, the first and second storage systems being arranged in an active-active configuration relative to one another;

to identify one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems; and

to modify path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices;

wherein a given one of the identified logical storage devices is stored in the first storage system as a first instance of the given identified logical storage device and is also stored in the second storage system as a second instance of the given identified logical storage device, so as to be fully accessible in each of the first and second storage systems; and

wherein input-output operations targeting logical addresses in a first range of logical addresses of the given identified logical storage device are directed to the first instance of the given logical storage device in the first storage system, and input-output operations targeting logical addresses in a second range of logical addresses of the given identified logical storage device, different than the first range of logical addresses of the given identified logical storage device, are directed to the second instance of the given logical storage device in the second storage system, in accordance with the modified path selection for the input-output operations directed to the given identified logical storage device.

2. The apparatus of claim 1 wherein modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices comprises:

performing path selection for the given identified logical storage device in a manner that separates the given identified logical storage device into multiple portions and applies different path selection techniques to different ones of the portions; and

performing path selection for a given one of the one or more other logical storage devices in a manner that treats the given other logical storage device as a unitary device and applies a single path selection technique to that unitary device.

3. The apparatus of claim 1 wherein the paths are associated with respective initiator-target pairs, the initiators being implemented on the host device and the targets being implemented on the first and second storage systems, and 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.

4. The apparatus of claim 1 wherein said at least one processing device comprises at least a portion of the host device.

5. The apparatus of claim 4 wherein said at least one processing device comprises a multi-path input-output driver of the host device, with the multi-path input-output driver of the host device being configured to control the delivery of the input-output operations from the host device to the first and second storage systems over the selected ones of the plurality of paths through the network.

6. The apparatus of claim 5 wherein the multi-path input-output driver is further configured to perform at least a portion of the identifying one or more logical storage devices, and the modifying of path selection for input-output operations directed to the one or more identified logical storage devices.

7. The apparatus of claim 1 wherein identifying one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems comprises:

sending commands on respective ones of the paths over which a given logical storage device is accessible to the host device;

obtaining from at least one of the first and second storage systems information regarding the given logical storage device responsive to the commands; and

determining whether or not the given logical storage device is accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems based at least in part on the obtained information.

8. The apparatus of claim 7 wherein the commands comprise respective commands of a storage protocol that the host device utilizes to communicate with the first and second storage systems.

9. The apparatus of claim 7 wherein the commands comprise respective inquiry page commands each of which when received by one of the first and second storage systems causes a designated page comprising logical storage device constituency information to be returned by that storage system to the host device.

10. The apparatus of claim 7 wherein the obtained information for one of the commands sent on one of the paths comprises an identifier of the given logical storage device and an identifier of its corresponding one of the first and second storage systems.

11. The apparatus of claim 10 wherein the given logical storage device is identified as one of the one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems responsive to the obtained information for one of the commands comprising an identifier of the first storage system and the obtained information for another one of the commands comprising an identifier of the second storage system.

12. The apparatus of claim 1 wherein modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices comprises:

separating the given identified logical storage device into at least first and second portions;

sending input-output operations directed to the first portion over one or more selected paths to the first storage system; and

sending input-output operations directed to the second portion over one or more selected paths to the second storage system.

13. The apparatus of claim 12 wherein separating the given identified logical storage device into at least first and second portions comprises separating the given identified logical storage device into n contiguous portions each representing a corresponding fraction 1/n of a contiguous logical address space of the identified logical storage device, where n is an even integer greater than or equal to two.

14. The apparatus of claim 1 wherein modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices comprises:

determining a particular portion of the given identified logical storage device that is experiencing a relatively high level of input-output activity relative to one or more other portions of the given identified logical storage device;

separating the particular portion into at least first and second sub-portions;

sending input-output operations directed to the first sub-portion over one or more selected paths to the first storage system; and

sending input-output operations directed to the second sub-portion over one or more selected paths to the second storage system.

15. A method comprising:

controlling delivery of input-output operations from a host device to at least first and second storage systems over selected ones of a plurality of paths through a network, the first and second storage systems being arranged in an active-active configuration relative to one another;

identifying one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems; and

modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices;

wherein a given one of the identified logical storage devices is stored in the first storage system as a first instance of the given identified logical storage device and is also stored in the second storage system as a second instance of the given identified logical storage device, so as to be fully accessible in each of the first and second storage systems;

wherein input-output operations targeting logical addresses in a first range of logical addresses of the given identified logical storage device are directed to the first instance of the given logical storage device in the first storage system, and input-output operations targeting logical addresses in a second range of logical addresses of the given identified logical storage device, different than the first range of logical addresses of the given identified logical storage device, are directed to the second instance of the given logical storage device in the second storage system, in accordance with the modified path selection for the input-output operations directed to the given identified logical storage device; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein identifying one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems comprises:

sending commands on respective ones of the paths over which a given logical storage device is accessible to the host device;

obtaining from at least one of the first and second storage systems information regarding the given logical storage device responsive to the commands; and

determining whether or not the given logical storage device is accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems based at least in part on the obtained information.

17. The method of claim 15 wherein modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices comprises:

separating the given identified logical storage device into at least first and second portions;

sending input-output operations directed to the first portion over one or more selected paths to the first storage system; and

sending input-output operations directed to the second portion over one or more selected paths to the second storage system.

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 at least one processing device comprising a processor coupled to a memory, causes said at least one processing device:

to control delivery of input-output operations from a host device to at least first and second storage systems over selected ones of a plurality of paths through a network, the first and second storage systems being arranged in an active-active configuration relative to one another;

to identify one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems; and

to modify path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices;

wherein a given one of the identified logical storage devices is stored in the first storage system as a first instance of the given identified logical storage device and is also stored in the second storage system as a second instance of the given identified logical storage device, so as to be fully accessible in each of the first and second storage systems; and

wherein input-output operations targeting logical addresses in a first range of logical addresses of the given identified logical storage device are directed to the first instance of the given logical storage device in the first storage system, and input-output operations targeting logical addresses in a second range of logical addresses of the given identified logical storage device, different than the first range of logical addresses of the given identified logical storage device, are directed to the second instance of the given logical storage device in the second storage system, in accordance with the modified path selection for the input-output operations directed to the given identified logical storage device.

19. The computer program product of claim 18 wherein identifying one or more logical storage devices that are each accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems comprises:

sending commands on respective ones of the paths over which a given logical storage device is accessible to the host device;

obtaining from at least one of the first and second storage systems information regarding the given logical storage device responsive to the commands; and

determining whether or not the given logical storage device is accessible via at least first and second different ones of the paths to respective ones of the first and second storage systems based at least in part on the obtained information.

20. The computer program product of claim 18 wherein modifying path selection for input-output operations directed to the one or more identified logical storage devices relative to path selection for input-output operations directed to one or more other logical storage devices comprises:

separating the given identified logical storage device into at least first and second portions;

sending input-output operations directed to the first portion over one or more selected paths to the first storage system; and

sending input-output operations directed to the second portion over one or more selected paths to the second storage system.

Assignments (9)
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 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 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 Jan 16, 2020
From: MALLICK, SANJIB; RAO, VINAY G.; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051534/0827 →