IP Library Granted Patent US 11,044,347
Granted Patent B2
US 11,044,347 · App. 16/371,603 · Granted Jun 22, 2021

Command communication via MPIO driver agnostic of underlying communication protocols

Inventors: Kundan Kumar (Bangalore, IN); Shubham Sharma (Bangalore, IN); Sanjib Mallick (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
H04L69/08G06F13/1668G06F13/4221H04L67/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,044,347
App. No.
16/371,603
Filed
Apr 1, 2019
Granted
Jun 22, 2021
Kind
B2
Art Unit
2446
USPC
709/230
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 comprises an MPIO driver that is configured to deliver input-output operations from the host device to the storage system over the network. The MPIO driver is configured to obtain a command generated by the host device under a first protocol for communicating with one or more of the storage devices. The command is directed to a target storage device of the plurality of storage devices. The target storage device is configured to communicate using a second protocol that is different than the first protocol. The MPIO driver is further configured to convert the command for communication under the second protocol and to provide the converted command to the target storage device.

Claims (63)

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 processing device comprising at least one processor coupled to memory, the processing device being configured to implement cluster command logic for generating commands under a first protocol, the processing device being configured to implement a multi-path input-output driver that is configured to deliver input-output operations from the host device to the storage system over the network, the multi-path input-output driver of the host device being further configured to submit commands to one or more of the storage devices under the first protocol, wherein the multi-path input-output driver is further configured:

to obtain a command generated by the cluster command logic of the host device under the first protocol, the command being directed to a target storage device of the plurality of storage devices;

to determine a type of the target storage device;

to determine a second protocol corresponding to the identified type of the target storage device, the target storage device being configured to submit responses to the host device under the second protocol, the second protocol being different than the first protocol;

to convert the command for communication under the second protocol; and

to submit the converted command to the target storage device under the second protocol.

2. The apparatus of claim 1 wherein the first protocol is one of a small computer system interface (SCSI) protocol and a non-volatile memory express (NVMe) protocol, and wherein the second protocol is the other of the SCSI protocol and the NVMe protocol.

3. The apparatus of claim 2 wherein converting the command comprises translating the command from the one of the SCSI protocol and the NVMe protocol to the other of the SCSI protocol and the NVMe protocol.

4. The apparatus of claim 1 wherein the command is a registration command that is configured to register the target storage device for use with the host device.

5. The apparatus of claim 1 wherein the command is a reservation command that is configured to reserve the target storage device for use by the host device.

6. The apparatus of claim 1 wherein determining the type of the target storage device comprises determining an identifier of the target storage device, the identifier comprising an indication of the type of the target storage device.

7. The apparatus of claim 1 wherein the multi-path input-output driver is further configured:

to obtain a response to the converted command from the target storage device under the second protocol;

to convert the response to the first protocol; and

to provide the converted response to the host device.

8. A method comprising:

obtaining, by a multi-path input-output driver implemented by a processing device of a host device, the multi-path input-output driver being configured to communicate over a network with a storage system comprising a plurality of storage devices, a command generated under a first protocol by cluster command logic implemented by the processing device of the host device, the multi-path input-output driver of the host device being further configured to submit commands to one or more of the storage devices under the first protocol, the command being directed to a target storage device of the plurality of storage devices;

determining, by the multi-path input-output driver, a type of the target storage device;

determining, by the multi-path input-output driver, a second protocol corresponding to the identified type of the target storage device, the target storage device being configured to submit responses to the host device under the second protocol, the second protocol being different than the first protocol;

converting, by the multi-path input-output driver, the command for communication under the second protocol; and

submitting, by the multi-path input-output driver, the converted command to the target storage device under the second protocol;

wherein the processing device of the host device comprises a processor coupled to a memory.

9. The method of claim 8 wherein the first protocol is one of a small computer system interface (SCSI) protocol and a non-volatile memory express (NVMe) protocol, and wherein the second protocol is the other of the SCSI protocol and the NVMe protocol.

10. The method of claim 9 wherein converting the command comprises translating the command from the one of the SCSI protocol and the NVMe protocol to the other of the SCSI protocol and the NVMe protocol.

11. The method of claim 8 wherein determining the type of the target storage device comprises determining an identifier of the target storage device, the identifier comprising an indication of the type of the target storage device.

12. The method of claim 8 further comprising, by the multi-path input-output driver:

obtaining a response to the converted command from the target storage device under the second protocol;

converting the response to the first protocol; and

providing the converted response to the host device.

13. 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 multi-path input-output driver implemented by a processing device of a host device, the processing device comprising a processor coupled to a memory, the multi-path input-output driver being configured to communicate over a network with a storage system comprising a plurality of storage devices, the processing device being configured to implement cluster command logic for generating commands under a first protocol, the multi-path input-output driver being further configured to submit commands to one or more of the storage devices under the first protocol, causes the multi-path input-output driver:

to obtain a command generated by the cluster command logic of the host device under the first protocol, the command being directed to a target storage device of the plurality of storage devices;

to determine a type of the target storage device;

to determine a second protocol corresponding to the identified type of the target storage device, the target storage device being configured to submit responses to the host device under the second protocol, the second protocol being different than the first protocol;

to convert the command for communication under the second protocol; and

to submit the converted command to the target storage device under the second protocol.

14. The computer program product of claim 13 wherein:

the first protocol is one of a small computer system interface (SCSI) protocol and a non-volatile memory express (NVMe) protocol;

the second protocol is the other of the SCSI protocol and the NVMe protocol; and

wherein converting the command comprises translating the command from the one of the SCSI protocol and the NVMe protocol to the other of the SCSI protocol and the NVMe protocol.

15. The computer program product of claim 13 wherein:

determining the type of the target storage device comprises determining an identifier of the target storage device, the identifier comprising an indication of the type of the target storage device.

16. The computer program product of claim 13 wherein the program code further causes the multi-path input-output driver:

to obtain a response to the converted command from the target storage device under the second protocol;

to convert the response to the first protocol; and

to provide the converted response to the host device.

17. The apparatus of claim 1 wherein the multi-path input-output driver is further configured:

to obtain a second command generated by the cluster command logic of the host device under the first protocol, the second command being directed to a second storage device of the plurality of storage devices;

to determine a second type of the second storage device;

to determine that the first protocol corresponds to the identified second type of the second storage device; and

to submit the second command to the second storage device under the first protocol.

18. The apparatus of claim 17 wherein determining that the first protocol corresponds to the identified second type of the second storage device comprises determining that both the host device and the second storage device are configured to communicate using the first protocol.

19. The method of claim 8 wherein the method further comprises:

obtaining, by the multi-path input-output driver, a second command generated by the cluster command logic of the host device under the first protocol, the second command being directed to a second storage device of the plurality of storage devices;

determining, by the multi-path input-output driver, a second type of the second storage device;

determining, by the multi-path input-output driver, that the first protocol corresponds to the identified second type of the second storage device; and

submitting, by the multi-path input-output driver, the second command to the second storage device under the first protocol.

20. The computer program product of claim 13 wherein the multi-path input-output driver is further configured:

to obtain a second command generated by the cluster command logic of the host device under the first protocol, the second command being directed to a second storage device of the plurality of storage devices;

to determine a second type of the second storage device;

to determine that the first protocol corresponds to the identified second type of the second storage device; and

to submit the second command to the second storage device under the first protocol.

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 (050724/0466) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: KUMAR, KUNDAN; SHARMA, SHUBHAM; MALLICK, SANJIB
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048763/0876 →
Continuity (1)
Related Publication 20200314218A1 · Oct 1, 2020
Cited By (5)
US 12,216,526 US 12,222,863 US 12,299,300 US 12,493,409 US 12,568,040