Virtualization is a hot topic in the enterprise space these days. It's being touted as the solution to every problem from server proliferation to CPU underutilization to application isolation. While the technology does indeed have many benefits, it's not without drawbacks.
With all the new vendors entering the space, you have a range of choices. It can be tough to pick the right one for your needs. VMware has been around as long as any of the other vendors and continues to deliver new products, including free ones like VMware Player and Server. Microsoft bought its way into the virtualization game several years ago when it purchased Connectix and its Virtual PC product. Microsoft has since delivered a Virtual Server product and a newer version of the Virtual PC product.
Xen is an open source project started at the University of Cambridge. It has been adopted by a number of different Linux distributions, including Novell's SuSE Linux Enterprise Server. Novell is putting all its eggs in the Xen basket, hoping that Xen will attract more interest in the company's enterprise server product.
While you can run Novell's NetWare operating system (OS) on any of the VMware products, you won't get the same level of performance as you will when running it under Xen on the next version of Open Enterprise Server (OES) due out in early 2007. Novell is investing lots of effort in optimizing Xen specifically for running a virtualized copy of NetWare on top of Linux.
While many technical details of virtualization are similar, varying approaches exist to solve the problems associated with the different implementations. The three architectures are labeled as single OS image, full virtualization and para-virtualization.
Vendors following single OS image approach include Virtuozo, Vservers and Zones. This method groups user processes into resource containers and manages access to physical resources. While this approach can scale well, it is hard to get strong isolation among the different containers.
In the full virtualization camp you'll find vendors like VMware and Microsoft, along with the open source project QEMU. With this approach the entire operating system and applications are virtualized as a guest OS operating on top of the host OS. The primary advantage to this approach is that you can run any number of different guest OSes on a single host. On the downside, the x86 architecture does not lend itself to efficient virtualization.
Para-virtualization is the name for the technique whereby you modify the host operating system to support low-level calls needed by the guest OSes. Xen and User-mode Linux (UML) use this approach. Advantages include performance, scalability and manageability. Para-virtualization also helps in taking advantage of the newer AMD and Intel CPU architectures that have hardware virtualization capabilities.
The answer depends on what you're trying to accomplish. If you're a developer looking for a flexible way to test your application in multiple environments, you'll probably want to go with either Virtual PC or VMware Workstation. If you want to use Linux as your host OS, you'll definitely have to go with VMware.
If you're trying to solve one of the server-based issues like consolidation or application isolation, you'll want to go with a server solution. The decision then becomes what are your key requirements? Cost, performance, platform independence and OS support are some of the typical non-negotiable requirements in many shops. Supportability is another major concern that could be set aside with a vendor like Novell standing behind an option like Xen.
An open source solution will win the cost battle almost every time until you look at what it will take to get it implemented and where you can turn for support. Most enterprise IT organizations want more than just access to Internet news groups and IRC chats to get technical support. That points to a solution such as Novell's that mixes the best of both worlds.
To get our Virtualization Updates delivered to your inbox just click the link and fill in your email address here now.
About the author: Paul Ferrill is a programmer and engineer. He holds bachelor's and master's degrees in electrical engineering. By day, he's an engineer for an engineering services company that works primarily in the defense industry. He has also been a programmer for years, writing in many languages including C, C++, Visual Basic, Python and others. Since 1986, Ferrill has written numerous product reviews and articles for IT publications.
This tip originally appeared on SearchOpenSource.com.
This was first published in May 2006