Virt-install&Virt-manager at Xen 4.0-rc8 (2.6.32.10 pvops) Dom0 on top Ubuntu Karmic Koala Server

79

The final target of this post is to demonstrate how flexible is Ubuntu Karmic Koala Server environment. Build Xen 4.0-rc8 and the most recent stable pvops kernel 2.6.32.10 ( with DRM support). Loading Xen Instance followed by install Ubuntu’s Libvirt environment, providing utility virt-install for creating PV and HVM DomUs, virt-manager completely functional to manage any DomU been built via virt-install. Finally HVM image created by beta version Ubuntu 10.04 Lucid Lynx is utilized to bring up Ubuntu 10.04 Lucid Lynx PV DomU, regardless standard trick with “pygrub”  due to Lucid grub2 notation set root='(/dev/sda,1)’ instead of  Karmic’s set root=(hd0,1) doesn’t work any longer. Xen’s 4.0-rc8 “pygrub” was not ready to parse such unexpectedness First install required packages:

apt-get install libcurl4-openssl-dev xserver-xorg-dev python2.6-dev mercurial gitk build-essential libncurses5-dev uuid-dev gawk gettext texinfo bcc bridge-utils iasl

Second – build Xen from source

# cd /usr/src
# hg clone http://xenbits.xensource.com/xen-unstable.hg
# cd xen-unstable.hg
Set in Config.mk
PYTHON = python
PYTHON_PREFIX_ARG =
# make install-xen
# make install-tools
# make install-stubdom

Now checkout and build 2.6.32.10 pvops kernel

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
# cd linux-2.6-xen
# git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x

Notice :-

# git checkout origin/xen/master -b xen/master

will result building the most recent 2.31.12 version of pvops kernel. Branch above , actually is not required to be checked out . It’s default branch of “git clone”.However, APIC rework has been committed for 2.6.32.9.

# make menuconfig
and tune kernel to support Xen in Dom0

# make -j4
# make modules_install install
# mkinitramfs -o /boot/initrd-2.6.32.10.img 2.6.32.10

Tuning Config.mk results Xen packages to be placed into /usr/local/lib/python2.6/dist-packages
due to Changeset 19594 in xen-3.4-testing.hg. Otherwise, Xen packages would go to /usr/lib/python2.6/site-packages, which is not default location for python 2.6 on Ubuntu 9.10 ( vs F12 ). Thus you won’t be able to start xend in Dom0. Add entry to /boot/grub/grab.cfg:-

menuentry “Xen 4.0-rc8 / Ubuntu 9.10 kernel 2.6.32.10 pvops” {
insmod ext2
set root=(hd1,8)
multiboot (hd1,8)/boot/xen.gz
module (hd1,8)/boot/vmlinuz-2.6.31.12 dummy=dummy root=/dev/sdb8 ro console=tty0
module (hd1,8)/boot/initrd-2.6.31.12.img
}

Reboot system and install libvirt environment :-

Two steps in procedure bellow make Xen default Hypervisor on Ubuntu 9.10.
First is commenting out (xend-unix-server yes) in /etc/xen/xend-config.sxp , second export variable export VIRSH_DEFAULT_CONNECT_URI=”xen:///”
in root’s .bashrc.

Then run:-

# apt-get install ubuntu-virt-server ubuntu-virt-mgmt

Now you should be able to install Ubuntu 10.04 Lucid Server HVM via virt-install :-

# virt-install -n LucidSRV -r 1024 –hvm –vnc -f /dev/sda8 -c /home/boris/Lucid.iso –debug

Start up LucidSRV HVM via virt-manager and scp to Dom0 vmlinuz-2.6.32-16-server and initrd.img-2.6.32-16-server

File bellow may be used for command :-

# virsh define Lucid-def.xml

***************
Lucid-def.xml
***************

***************
Lucid-def.xml
***************
<domain type='xen' id='3'>
<name>Ubuntu10.04</name>
<uuid>40721ad3-27fd-39a9-35d8-ffa9d12bd494</uuid>
<memory>2097152</memory>
<currentMemory>2097152</currentMemory>
<vcpu>2</vcpu>
<bootloader></bootloader>
<os>
<type>linux</type>
<kernel>/home/boris/lucid/vmlinuz-2.6.32-16-server</kernel>
<initrd>/home/boris/lucid/initrd.img-2.6.32-16-server</initrd>
<cmdline>root=/dev/xvda1 ro </cmdline>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<disk type='block' device='disk'>
<driver name='phy'/>
<source dev='/dev/sda8'/>
<target dev='xvda' bus='xen'/>
</disk>
<interface type='bridge'>
<mac address='00:16:3e:04:6b:5a'/>
<source bridge='eth0'/>
<script path='/etc/xen/scripts/vif-bridge'/>
<target dev='vif3.0'/>
</interface>
<console type='pty' tty='/dev/pts/1'>
<source path='/dev/pts/1'/>
<target port='0'/>
</console>
<input type='mouse' bus='xen'/>
<graphics type='vnc' port='5900' autoport='yes'/>
</devices>
</domain>

At this point Lucid Server PV DomU may be started via virt-manager.

Runtime snapshots

At this point Lucid Server PV DomU may be started via virt-manager:-

Runtime snapshots                               
At this point Lucid Server PV DomU may be started via virt-manager:-

// [[>