Virtual host controller interface with multipath input/output
First Claim
1. A multipathing subsystem in a computer system having a system interface layer and at least one physical host controller interface (pHCI) in a pHCI layer, including:
- a virtual host controller interface (vHCI) coupled to and interacting with the system interface layer;
a multipath I/O module maintaining path information for the at least one pHCI and for informing the vHCI of the at least one pHCI, wherein the vHCI layer interacts with the multipath I/O module to determine the pHCI to use for a received target driver command packet, and wherein the vHCI is configured to transport received target driver command packets to the determined pHCI.
2 Assignments
0 Petitions
Accused Products
Abstract
A processor-based system (200) with a multipath I/O architecture, including a virtual host controller interface (vHCI) layer (280) between a common architecture layer (270) and a physical host controller interface layer (290), which may include convential host bus adapters (HBAs) coupled to target decives such as storage devices (240, 250) in a storage area network (SAN). Target drivers send I/O requests to a common architecture layer, which forwards them to the vHCI layer (280), which then sends them to HBAs for sending to the target devices (240, 250). A multipathing driver interface (MPXIO) layer (310) resides beneath the vHCI layer (280), and determines target device path information for the vHCI layer (280). Positioning the MPXIO layer (310) beneath the vHCI layer avoids the need for multipathing target drivers (360) above the common architecture layer. A failover operations module may be provided for each type of target device to provide the vHCI layer (280) with failover protocol information in the event of a failed path.
64 Citations
29 Claims
-
1. A multipathing subsystem in a computer system having a system interface layer and at least one physical host controller interface (pHCI) in a pHCI layer, including:
-
a virtual host controller interface (vHCI) coupled to and interacting with the system interface layer;
a multipath I/O module maintaining path information for the at least one pHCI and for informing the vHCI of the at least one pHCI, wherein the vHCI layer interacts with the multipath I/O module to determine the pHCI to use for a received target driver command packet, and wherein the vHCI is configured to transport received target driver command packets to the determined pHCI. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A processor-based system, including:
-
a processor configured to generate input/output (I/O) requests;
at least one target device capable of receiving the generated I/O requests;
at least one physical interface configured to couple to the device;
at least a first and second paths each providing communication to one target device through one physical interface;
a memory in communication with the processor and configured to store program instructions;
at least one target driver module stored in the memory and configured to generate instructions specific to the at least one target device;
a virtual host controller interface stored in the memory and in communication with the target driver module;
a multipath driver module stored in the memory and in communication with the virtual host controller interface; and
wherein the multipath driver module is configured to generate path information relating to paths to each target device and provide the path information to the virtual host controller interface, and wherein the virtual host controller interface is configured to pass I/O requests to a physical interface associated with a selected path to the target device. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for multipath input/output communication with at least one target device coupled to a processor based system, comprising:
-
receiving an I/O packet from a target driver directed to one target device;
interfacing with an I/O module to determine information relating to a plurality of paths and a plurality of physical interfaces, wherein each path defines a connection through one physical interface to one target device;
using the determined information to determine one path to use to access the target device to which the received I/O packet is directed;
forwarding the I/O packet to the physical interface corresponding to the determined path to use, wherein the physical interface transmits the I/O packet to the target device. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. Interface code implemented in a computer readable medium for multipath input/output (I/O) communication with at least one target device coupled to a processor based system, wherein a target driver is used to interface with and transfer packets to a target device via a physical interface for the device, wherein the interface code is executed to perform:
-
providing an I/O module;
receiving an I/O packet from the target driver directed to the target device;
interfacing with the I/O module to determine information relating to a plurality of paths, wherein each path defines a connection through one physical interface to one target device; and
using the determined information to determine one path to use to access the target device to which the received I/O packet is directed; and
forwarding the I/O packet to the physical interface corresponding to the determined path, wherein the physical interface transmits the I/O packet to the target device. - View Dependent Claims (27, 28, 29)
-
Specification