|
There are a number of existing and emerging usage models where support for I/O virtualization is, or will become,
increasingly important. Performance, scalability, cost, trust, reliability, and availability are all important
considerations, and their relative importance can vary depending upon usage models and the market segment in which they
are deployed.
There are two key requirements that are common across market segments and usage models. The first requirement is
protected access to I/O resources from a given virtual machine (VM), such that it cannot interfere with the operation of
another VM on the same platform. This isolation between VMs is essential for achieving availability, reliability, and
trust. The second major requirement is the ability to share I/O resources among multiple VMs. In many cases, it is not
practical or cost-effective to replicate I/O resources (such as storage or network controllers) for each VM on a given
platform.
First we consider the importance of I/O virtualization in the data center. Many server applications are I/O intensive,
especially for networking and storage. Key requirements within the data center include scalability and performance to
enable server consolidation. Reliability and availability are important as mission-critical applications move onto
virtualized data center servers and infrastructures.
In the case of server consolidation, virtualization is used to deploy multiple VMs (each containing an operating system
(OS) and associated services and applications) onto a single server. This consolidation is done primarily to utilize the
underlying server hardware more effectively. Many server applications require a significant amount of I/O performance,
and so it follows that the consolidation of multiple server applications will need a scalable and high-performance
solution for I/O virtualization. The scalability requirement comes from the fact that the total network and storage I/O
required from a given server platform is the aggregate of the I/O requirements of the multiple consolidated
applications. I/O performance is needed by each VM to satisfy a wide range of server applications with varied and
demanding I/O performance requirements.
Next we look at the importance of I/O virtualization in client platforms. For most client platforms, I/O scalability and
performance are relatively modest as compared to servers, but tend to be more sensitive to cost and trust issues.
In the case of the enterprise client, virtualization can be used to create a self-contained operating environment, or
"virtual appliance," that is dedicated to capabilities such as manageability or security. These capabilities generally
need protected and secure access to a network device to communicate with down-the-wire management agents and to monitor
network traffic for security threats. For example, a security agent within a VM requires protected access to the actual
network controller hardware. This agent can then intelligently examine network traffic for malicious payloads or
suspected intrusion attempts before the network packets are passed to the guest OS, where user applications might be
affected.
This virtual-appliance model can be applied beyond the enterprise client. Workstations and home computers can use this
technique for management, security, content protection, and a wide variety of other dedicated services. The type of
service deployed may dictate that various types of I/O resources, graphics, network, and storage devices, be isolated
from the OS where the user's applications are running.
In this paper we survey a variety of existing and emerging techniques for addressing the above requirements of I/O
virtualization. We begin in the next section by studying different options for Virtual Machine Monitor (VMM) structuring
and software architecture, and then we discuss various techniques for sharing I/O resources among multiple guest OSs.
Our survey highlights various challenges faced by today's I/O-virtualization techniques, and it underscores the need for
new forms of hardware support to facilitate I/O-resource assignment, protection, and sharing. We then detail the
architecture of Intel's VT-d and explain how it helps to establish a new platform infrastructure for addressing the challenges of I/O
virtualization in future platforms based on Intel® technology.
|