Add to Technorati Favorites

Testing Xen on the Cluster

While running The IND-Network Cluster, I try to test out different open source solutions to achieve a particular task and often, the experimentation spawns new projects.

In the past, I have been asked if I could host a cluster node on my network so that a user can have their own remote server.

It sounded quite a good idea because sever rental could provide badly needed funds for the cluster and running ‘all the nodes - all the time’ does cost money.

The main problem is that the cluster uses all different types of open source clustering techniques to achieve high-availability, high-redundancy with process load balancing and giving a user root access on any node within the network is definitely a bad idea.

Run Linux Inside Itself

A few years ago I heard about User Mode Linux which allows you to ‘Run Linux inside itself‘ and after some interesting and extensive testing, I found UML’s to be a good way to host virtual servers using real nodes on my network.

However, there were a few limitations with my cluster setup as using the UML skas patch on the real node host was incompatible with other patches applied to the clusters Linux 2.4 kernel.

This lead to the UML’s being very slow and cpu intensive causing boot up of the virtual servers to take an age and also the very nature of my cluster was to use load balancing techniques but using UML’s were cumbersome and hard to manage in this situation.
(I have not tested the latest UML linux kernels or patches - at the current time of writing, they have a linux 2.6.19 kernel download available along with an optional ready made Fedora Core 5 root image to get you started with UML)

Run a Virtual Machine on Linux

Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs).

The host operating system runs virtual machines that attempt to emulate existing hardware devices to enable the installation and running of other operating systems.

Although I only use VMware workstation and have never tried VMware server, VMware needs mentioning because you can install it onto an existing operating system (Windows and Linux) using standard x86 hardware.

You can run multiple virtual machines each with different operating systems easily from one host machine but due to licensing, I only use VMware Workstation on my desktop to test out Linux Distributions and boot script procedure on projects I work with.

Run Virtual Machines on a Virtual Machine Monitor

The main problem with virtual machines are the way they interact with the host operating system.

Rather than attempting to emulate some existing hardware device, Xen exports specially designed block device and network interface abstractions before the host operating system is started allowing virtual machines the advantage of excellent I/O performance that closely matches the native machine.

Xen™ is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. Xen is Open Source software, released under the terms of the GNU General Public License.

The following illustrates how I am using Xen and does not show how you would use virtual machines for an operating system other than Linux.

Native Machine (POST)
           |
    Grub Boot loader
           |
Xen Virtual Machine Monitor..
           |                |
   Linux Dom_0 kernel       |
           |                |
   Host Linux Distro (with Xen tools)
                            |
                            |- Linux Dom_U kernel - Some Linux Distro
                            |
                            |- Linux Dom_U kernel - Some Linux Distro
                            |
                          (etc)

The pure nature of Xen allows virtual machines to be live migrated from one cluster node to another and can be used to load balance virtual machines across a network.

Not only would Xen allow me to host virtual machines but also make them highly available.

Conclusion

Xen is definitely going to be incorporated into The IND-Network Cluster very soon but before I start any major new projects, I am moving to Australia and relocating the cluster which is a high priority project I will write about shortly.

When The IND-Network Cluster is relocated, I will be looking into what openMosix process load balancing techniques have been tested with Xen as openMosix was a major component of the cluster.

Along side this, implementing a better cluster file system on the nodes is critical for Xen to work efficiently with virtual machine migration and also would create better failover, data redundancy and speed.

Created by: Martin Guppy
Created on: Monday, February 26th, 2007 - 2:17 pm
Last Modified: Tuesday, January 1st, 2008
Post Tags: , , , , No Responses
Post Rating: 1 Star2 Stars3 Stars4 Stars5 Stars (Be the first to rate this post)

Leave a Response...

Note: Will not be published