Virtual input/output server
DCFirst Claim
1. An apparatus, comprisinga memory;
- one or more processors;
an input/output (I/O) fabric interface;
an I/O subsystem physical interface;
I/O subsystem device protocol stack logic operative to control data transfer with one or more peripheral systems over the I/O subsystem physical interface; and
virtualization logic encoded in one or more tangible media for execution and when executed operable to cause the one or more processors to;
establish one or more persistent control connections to virtual I/O peripheral subsystem interface driver modules of one or more application servers;
transmit I/O peripheral subsystem configurations to the one or more application servers over the respective one or more persistent control connections;
emulate, relative to the one or more peripheral systems, the one or more application servers;
intermediate I/O subsystem traffic between the one or more application servers and the one or more peripheral systems; and
control utilization of resources of the I/O subsystem physical interface by the one or more application servers according to a configured allocation of resources for the I/O subsystem physical interface across the one or more application servers.
8 Assignments
Litigations
1 Petition
Accused Products
Abstract
Methods, apparatuses and systems directed to virtualized access to input/output (I/O) subsystems. In one implementation, the present invention allows multiple stand-alone application servers or virtual servers to share one or more I/O subsystems, such as host-bus adapters and network interface cards. In one implementation, I/O access is managed by one or more virtual I/O servers. A virtual I/O server includes a multiplexer, and associated modules, that connect application servers over an I/O switch fabric with one or more HBA and/or NIC drivers. Implementations of the present invention can be configured to consolidate I/O access, allowing multiple servers to share one or more HBAs and NICs; dynamic control over network and storage I/O bandwidth; and provisioning of network and storage I/O access across multiple application servers.
143 Citations
23 Claims
-
1. An apparatus, comprising
a memory; -
one or more processors; an input/output (I/O) fabric interface; an I/O subsystem physical interface; I/O subsystem device protocol stack logic operative to control data transfer with one or more peripheral systems over the I/O subsystem physical interface; and virtualization logic encoded in one or more tangible media for execution and when executed operable to cause the one or more processors to; establish one or more persistent control connections to virtual I/O peripheral subsystem interface driver modules of one or more application servers; transmit I/O peripheral subsystem configurations to the one or more application servers over the respective one or more persistent control connections; emulate, relative to the one or more peripheral systems, the one or more application servers; intermediate I/O subsystem traffic between the one or more application servers and the one or more peripheral systems; and control utilization of resources of the I/O subsystem physical interface by the one or more application servers according to a configured allocation of resources for the I/O subsystem physical interface across the one or more application servers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus, comprising
a memory; -
one or more processors; an input/output (I/O) fabric interface; a network physical interface operative to transmit frames to, and receive frames from, one or more remote nodes over a network; a network protocol stack operative to control the network physical interface, wherein the network protocol stack comprises a virtual network interface layer, a bridge module, and a link layer network interface layer; and a multiplexer module operative to control utilization of resources of the network interface associated with one or more application servers according to a configured allocation of resources for the network physical interface across the one or more application servers; wherein the bridge module is operative to forward frames received at the network physical interface to the virtual interface layer; wherein the virtual interface layer is operative to transmit the frames to the one or more application servers over the I/O fabric interface; and wherein the virtual interface layer is further operative to establish one or more persistent control connections to virtual network interface driver modules of the one or more application servers; transmit network interface profile configurations to the one or more application servers for configuration of the virtual network interface driver modules of the one or more application servers over the respective one or more persistent control connections. - View Dependent Claims (9, 10, 11, 12)
-
-
13. An apparatus, comprising
a memory; -
one or more processors; an input/output (I/O) fabric interface; a storage system physical interface; storage driver protocol stack logic operative to control data transfer with one or more data storage systems over the storage system physical interface; and virtualization logic encoded in one or more tangible media for execution and when executed operable to cause the one or more processors to; establish, over the I/O fabric interface, one or more persistent control connections to a virtual block interface of one or more application servers; transmit block level storage device configurations to the one or more application servers over the respective one or more persistent control connections; emulate, relative to the one or more data storage systems, the one or more application servers; intermediate storage traffic between the one or more application servers and the one or more data storage systems; and control utilization of resources of the storage system physical interface by the one or more application servers according to a configured allocation of resources for the storage system interface across the one or more application servers. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A system, comprising
one or more application servers, each of the one or more application servers comprising a memory; -
one or more processors; a first input/output (I/O) fabric interface; and computer program code stored in a storage medium, wherein the computer program code comprises an operating system; and an I/O communications protocol stack comprising a virtual I/O subsystem interface driver module, comprising computer-readable instructions operative, when executed, to cause the one or more processors; establish persistent control connections to one or more virtual I/O servers to receive I/O subsystem interface configuration information; register with the operating system as a device driver to present a virtual device configured according to the configuration information; emulate, at a device level, an I/O subsystem interface, including one or more storage devices, to the operating system; and intercept messages passed to the I/O subsystem interface and forward the intercepted messages over the connection to a virtual I/O server; and the one or more virtual input/output (I/O) server(s) comprising; a memory; one or more processors; a second I/O fabric interface; an I/O subsystem physical interface; I/O subsystem device protocol stack logic operative to control data transfer with one or more peripheral systems over the I/O subsystem physical interface; and virtualization logic encoded in one or more tangible media for execution and when executed operable to cause the one or more processors to; establish one or more persistent control connections to a virtual I/O peripheral subsystem interface of the one or more application servers to transmit I/O subsystem interface configuration information; emulate, relative to the one or more peripheral systems, the one or more application servers; intermediate I/O subsystem traffic between the one or more application servers and the one or more peripheral systems; and control utilization of resources of the I/O subsystem physical interface by the one or more application servers according to a configured allocation of resources for the I/O subsystem physical interface across the one or more application servers. - View Dependent Claims (22, 23)
-
Specification