oreilly.comSafari Books Online.Conferences.


Linux Virtualization with Xen
Pages: 1, 2

Building a Different Virtual Host

This is Fedora on Fedora, but I promised to give you a Debian on a Fedora. This is where you need debootstrap. It comes in an RPM, but if you want a correct installation you need to find an up-to-date config script for Sarge, which you can easily find on any Debian box you have around. From there, again it's a matter of creating a new LVM entry, mounting it, and using debootstrap to populate the Debian instance:

$ debootstrap --arch i386 sarge root.hope/

The Debian box has a similar config file:

kernel = "/boot/vmlinuz-2.6.11-1.1366_FC4xenU"

memory = 128
name   = ""
nics   = 1

vif    = ['ip = "", bridge=xen-br0']

disk   = ['phy:vm_volumes/root.hope,sda1,w'

root   = "/dev/sda1 ro"

After running xm create newhope, you should get a listing like:

[root@xen xen]# xm list
Name              Id  Mem(MB)  CPU  State  Time(s)  Console
Domain-0           0      891    0  r----     62.3   1      127    1  -b---     24.6    9601   2      127    1  -b---    177.2    9602

Basic Xen virtual machine management is simple. Use xm shutdown and xm destroy, respectively, to do a clean shutdown or an immediate domain kill. For console access:

$ xm console $id

# and 

$ xencons localhost $port

are similar and give you a better console than just a telnet localhost $port. (The port is 9600 + the $id of the particular virtual machine.)

Networking Virtual Hosts

Of course, you probably want to connect your virtual machines to the network. You first need to understand the bridging tool brctl. Xen provides one or more virtual network interfaces to your guest hosts, but in your Domain0 you will also see some changes to your default network config.

For each interface you define in a virtual machine, Xen will create a vifx.y interface, where x is the domain ID and y is the number of the interface in your virtual machine. For example, vif1.1 refers to eth1 in the domain with ID 1.

There are different ways of getting networking active, but I will show only one. Suppose that your network is and your physical machine usually is at You want to add your first virtual machine on Log in to your virtual machine and configure the eth0 in the virtual machine to have the appropriate IP address, just as you would do if it were a physical machine.

Now you want to have physical network interface and the interface of your virtual machine (vifx.y) in a bridge. If you haven't already created xen-br0, use brctl addbr xen-br0 to do so, and then add both interfaces to it. Where vif1.0 is the first Ethernet device in your first domain, the commands are:

$ brctl addif xenbr0 eth0
$ brctl addif vif1.0

HOSTA:~ # brctl show
bridge name     bridge id               STP enabled     interfaces
xen-br0         8000.000bdb90c517       no              eth0

Your eth0 and vif1.0 don't need an IP address; you can put your on the xen-br0 interface and route all the traffic for the network to that xen-br0 interface. With this done and IP forwarding enabled, you should be able to reach the network. You should now be able to go from your virtual machine to other machines on the network and vice versa.

Looking Ahead

With Intel's announcement that it will ship its VT CPUs soon, operating systems without freely available source will soon run in a Xen environment. The 3.0 release happened in early December 2005, and every major Linux distribution is planning on using Xen somehow. Red Hat wants it in the kernel, and Suse already has added options in Yast for it.

The virtualization and consolidation market is fast changing, and Xen is playing an important role there!

Kris Buytaert is a Linux and open source consultant operating in the Benelux. He currently maintains the openMosix HOWTO.

Return to the Linux DevCenter.

Linux Online Certification

Linux/Unix System Administration Certificate Series
Linux/Unix System Administration Certificate Series — This course series targets both beginning and intermediate Linux/Unix users who want to acquire advanced system administration skills, and to back those skills up with a Certificate from the University of Illinois Office of Continuing Education.

Enroll today!

Linux Resources
  • Linux Online
  • The Linux FAQ
  • Linux Kernel Archives
  • Kernel Traffic

  • Sponsored by: