Xen
In the last half century, microcomputers have become increasingly powerful. Server systems have grown so powerful, that many enterprise servers typically are underutilized. Modern computers are sufficiently powerful to use virtualization to present the illusion of running many virtual systems on a single machine. Each virtual system runs a separate operating system instance simultaneously. So, you can run multiple instances of Linux at the same time on the same machine, or you can run combinations of operating systems, such as Linux, FreeBSD, Windows and so on. This has led to a resurgence of interest in Virtual Machine (VM) technology, which has been around for decades on bigger iron.
The Systems Research Group at the University of Cambridge Computer Laboratory originally developed Xen (open-source virtualization software) as part of the XenoServers Project, funded by the UK-EPSRC.
XenoServers aims to provide a “public infrastructure for global distributed computing”. Xen plays a key part in that project, allowing users to partition a single machine efficiently to enable multiple independent clients to run their operating systems and applications in an environment. See www.cl.cam.ac.uk/xeno for more information on the XenoServers Project.
Xen is an x86 virtual machine monitor that allows multiple commodity operating systems, such as Linux and MS Windows, to share conventional hardware in a safe and resource-managed fashion. It is designed with minimal performance overhead. As a result, the virtualized instances of operating systems have close to native performance. The Xen folks achieve this by providing a virtual machine abstraction to which operating systems, such as Linux and MS Windows, can be ported with minimal effort. Xen has, according to a number of benchmarks, considerably out-performed competing commercial and freely available solutions.
XenSource
Xen is such an effective means of lowering total cost of ownership through virtualization that the original Xen development team launched a consulting business based on the project. See XenSource (www.xensource.com), which is considered “home to the worldwide Xen open source community”.
One of the major uses of Xen so far has been for consolidation of servers. An organization can shift server software hosted on multiple physically separate servers and locate them onto a single server, by using virtual machines for each individual server. For example, it is now possible for a company to host Sendmail on a FreeBSD installation while hosting the Apache Web server on Red Hat Enterprise Edition, both on the same physical server.
This enables enterprises to reduce their total cost of ownership by using a few servers to do tasks that used to require many servers. Server consolidation also makes it easier to manage systems.
Xen can enable the development of distributed Web services. This gives users the perception that services are hosted on separate systems, but they, in fact, are hosted on the same physical system. This leads to huge savings in IT budgets in deploying service-oriented applications and provides a platform for hosting other network-centric applications.
Xen has been a boon in operating system research. Through Xen, it is now possible to implement new kernel-level algorithms and test them in a virtual environment without affecting the host OS. In Linux kernel development, employing user-mode Linux is popular; however, Xen has out-performed user-mode Linux in a number of benchmarks.
Xen's virtualization capabilities have enabled organizations to keep their servers available 24/7. Organizations can launch a temporary virtual server to keep services available while patching and upgrading an OS on the virtual server they normally use to provide those services.
Xen also enables organizations to run legacy applications on new hardware, protecting their past investments.
Now that we have a taste of the potential applications and advantages Xen offers, let's briefly look how it compares to other approaches and explore some salient features of its internal workings.
Hosting different operating systems in single server is nothing new. Many desktop PCs nowadays are dual-boot systems, where at least two different operating systems are installed in a single machine, each running a set of software specific to each.
When users require both operating systems to run at the same time, there are several options. They can get two computer systems and dedicate each system to each service. They can use an emulator such as Wine or Win4Lin to run services from MS Windows on Linux, or use CoLinux to run unmodified Linux services on MS Windows.
However, these approaches have certain drawbacks. Getting two servers to host two services is inherently expensive and would lead to underutilization of resources. Wine, Win4Lin or other emulators often have performance, scalability and compatibility problems.
So, the best solution in many cases is to run virtual machine software on a single machine and host both operating systems at once on the same machine.
Proprietary virtualization systems exist, such as VMware Workstation [see page 56 for Mick Bauer's review of VMware Workstation 5.5]. Software, such as VMware, implements what is called full virtualization. VMware virtualizes every aspect of the computer. VMware, therefore, introduces a good deal of overhead. The concurrent operating systems often run more slowly than usual. As hardware becomes cheaper and more powerful and software becomes more optimized, this lag in performance may not be noticeable in the future, but currently it poses a problem.
VMware does have enterprise-level commercial products, such as ESX Server, which have better performance than the VMware Workstation product, and such a product may be able to run virtualized operating systems close to their native performance. However, benchmarks of this product are not available, and VMware Workstation consistently has under-performed Xen in various benchmark tests.
VMware's approach does have one large advantage over Xen's approach. VMware is capable of virtualizing proprietary operating systems. As I discuss later in this article, you have to port an operating system's kernel to Xen for it to work with Xen. You cannot run an operating system on Xen otherwise.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Designing Electronics with Linux | May 22, 2013 |
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
- RSS Feeds
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Designing Electronics with Linux
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- A Topic for Discussion - Open Source Feature-Richness?
- Drupal Is a Framework: Why Everyone Needs to Understand This
- Validate an E-Mail Address with PHP, the Right Way
- What's the tweeting protocol?
- Kernel Problem
4 hours 31 min ago - BASH script to log IPs on public web server
8 hours 58 min ago - DynDNS
12 hours 34 min ago - Reply to comment | Linux Journal
13 hours 6 min ago - All the articles you talked
15 hours 30 min ago - All the articles you talked
15 hours 33 min ago - All the articles you talked
15 hours 34 min ago - myip
19 hours 59 min ago - Keeping track of IP address
21 hours 50 min ago - Roll your own dynamic dns
1 day 3 hours ago




Comments
Mr. Habib: You mention in
Mr. Habib:
You mention in the article:
"VMware's approach does have one large advantage over Xen's approach. VMware is capable of virtualizing proprietary operating systems. As I discuss later in this article, you have to port an operating system's kernel to Xen for it to work with Xen. You cannot run an operating system on Xen otherwise."
I'm not sure this is exactly correct, in the case of Xen running
on a cpu with AMD-v or Intel VT hardware extentions, you can
run proprietary OS's raw with no porting of the guest OS to xen.
In the case of AMD, you'd have to use a AM2 or later chip or
with Intel any of the recent Core 2, Xeon or other chips with
Vanderpool support.
Mark Schlegel