Virtualization
Intro
Virtualization is the art of subdividing resources provided by modern computers
in order to achieve maximum performance, isolated execution, maximum
utilization, resource managed hardware sharing and so on. Virtualization is not
a novel concept. Mainframes designed in the late '70s incorporated the idea of
isolating hardware design and hardware-agnostic software execution.
Virtualization exists in all aspects of modern high performance computing. We
try to experiment on Virtualized I/O, especially in Network Device
Virtualization.
Storage and Network I/O
We believe that modern High Performance Interconnection Networks provide
abstractions that can be exploited in Virtual Machine execution environments
but lack support in sharing architectures. Previous work has shown that
integrating the semantics of Virtualization in specialized software that runs
on Network Processors can isolate and finally minimize the overhead on the VM
Hypervisor concerning access to the device by Guest VMs. Direct I/O has been
proposed as the solution to the CPU overhead imposed by guest VM transparent
services that can lead to low throughput for high bandwidth links. However,
minimizing CPU overhead comes at the cost of giving away the benefits of the device driver model.
Integrating protocol offload support (present in most modern NICs) in virtual network device drivers
can lead to performance improvement. Bypassing the Hypervisor in data movement
can also minimize the overhead imposed by heavy I/O but at the cost of safety and memory
protection.
We envision a Virtualization-enabled High performance Network Interface that can
achieve line-rate throughput and optimized sharing of Network I/O in Virtual
Machines by utilizing commodity hardware and innovative resource-sharing
virtualization architectures.
Data access in
HPC infrastructures is realized via user-level
networking and OS-bypass techniques through which nodes can communicate
with high bandwidth and low-latency. Virtualizing physical
components requires hardware-aided software hypervisors to control I/O
device access. As a result, line-rate bandwidth or lower latency message
exchange over 10GbE interconnects hosted in Cloud Computing infrastructures
can only be achieved by alleviating software overheads imposed
by the Virtualization abstraction layers, namely the VMM and the driver
domains which hold direct access to I/O devices.
We have designed
MyriXen, a framework in which Virtual Machines
efficiently share network I/O devices bypassing overheads imposed
by the VMM or the driver domains.
MyriXen permits VMs to optimally
exchange messages with the network via a high performance NIC,
leaving security and isolation issues to the Virtualization layers. Smart
Myri-10G NICs provide hardware abstractions that facilitate the integration
of the MX semantics in the Xen split driver model. With
MyriXen,
multiple VMs exchange messages using the MX message passing protocol
over Myri-10G interfaces as if the NIC was assigned solely to them. We
believe that
MyriXen can integrate message passing based application
in clusters of VMs provided by Cloud Computing infrastructures with
near-native performance.
See the
Virtualization Section in our
Bibliography Portal for selected publications concerning Virtualization techniques.