VirtualIron.com | Join | Contact Us

Blog
Virtualization Blog
Virtualization Blog
Decrease font size
Increase font size
July 7, 2006
  Paravirtualization is a Dead-End Approach
Paravirtualization (as an approach to run virtual machines) has been getting a lot of attention lately. The primary hypothesis is that paravirtualization makes the job of virtualization easier and more efficient than pure hardware virtualization.

There was a time and place where paravirtualization made sense, but that time has now passed. Let me explain why it is no longer a viable approach.

Paravirtualization (an idea orginally introduced by the Denali Project) proposes to modify a guest OS in order to redirect virtualization sensitive operations directly to the virtual machine monitor instead of trapping to it as done in pure hardware virtualization. Pure hardware virtualization is where hardware is completely virtualized and supports unmodified guest OSs.

Paravirtualization requires substantial engineering efforts in modifying and maintaining an operating system. However, these heroic efforts are inevitably losing the battle against Moore's Law and hardware advances being made in the x86 space. By the time the first product with paravirtualization appears on the market, more than 80% of the shipping x86 server processors from Intel and AMD will have hardware-based virtualization acceleration integrated into the chips (Intel-VT and AMD-V or "Rev-F"). This hardware-based acceleration is designed to optimize pure virtualization performance, primarily the virtualization of CPU, and it renders OS paravirtualization efforts as completely unnecessaryand behind the technology curve. Perhaps more important, hardware-based virtualization doesn't require users to upgrade their operating systems, or their middleware and application stacks - a very complex and resource-intensive undertaking.

The issue with paravirtualization is that once you break the strict hardware interface between the hypervisor and the guest OS, one might as well call the "hypervisor" a microkernel and a guest OS a process and move on. And we all know how "well" an OS works with a microkernel. Linus Torvalds posted some comments on the recently flamed up (again) debate on the merits of a microkernel, stating, "It's ludicrous how microkernel proponents claim that their system is 'simpler' than a traditional kernel. It's not. It's much, much more complicated, exactly because of the barriers that it has raised between data structures." I concur with Linus.

Virtual Iron has decided against paravirtualization in favor of "native virtualization.". With hardware advances coming out of Intel and AMD, we see native virtualization capable of matching physical hardware performance without any of the complexity and engineering efforts involved in paravirtualizing an OS. From our discussions with a broad range of users, they simply do not want to roll out modified OSs unless the trade-off is heavily in their favor. This Faustian trade-off is no longer necessary.

The current batch of chips offering hardware-based virtualization acceleration from Intel and AMD, primarily helps with virtualization of CPUs and very little for virtualizing an I/O subsystem. To improve the I/O performance of unmodified guest OSs, we are developing accelerated drivers. The early performance numbers are encouraging. Some numbers are many times faster than emulated I/O and close to native hardware performance numbers.

Just to give people a flavor of the performance numbers that we are getting, below are some preliminary results on Intel Woodcrest (51xx series) with a Gigabit network, SAN storage and all of the VMs at 1 CPU. These numbers are very early. Disk performance is very good and we are just beginning to tune performance.

Bonnie-SAN - bigger is better             Native                  VI-accel
Write, KB/sec                                    52,106                 49,500 
Read, KB/sec                                    59,392                 57,186 

netperf - bigger is better              
tcp req/resp (t/sec)                             6,831                   5,648

SPECjbb2000 - bigger is better 
JRockit JVM thruput                            43,061                 40,364

One we complete the tuning, we expect guest OSs to compare very favorably to running on native hardware, but without requiring users to upgrade their OSs. This should open up users to applying virtualization to a whole new sets of applications and workloads.

I welcome your comments.

Edited: 07/07/2006 at 03:20 PM by Virtualization Blog Moderator

    Posted By: Tim Walsh @ 07/07/2006 03:17 PM     Alex's Blog     Comments (4)  

FuseTalk Standard Edition - © 1999-2007 FuseTalk Inc. All rights reserved.


Copyright © 2003-2007 Virtual Iron Software, Inc. | Privacy Statement | Terms of Use | Site Map