Assuming you have already got running debian stable machines using the 2.6.8 kernel that was shipped with Debian, we are ready to move on to installing XEN from backports.org. This process needs to be done on all three machines.
Prepare the apt sources by adding the backports repositories to
the file /etc/apt/sources.list
dangermouse:~# echo "deb http://www.backports.org/debian/ sarge-backports main" >> /etc/apt/sources
Now tell apt that we don't normally want to install packages from backports.org unless we specifically ask.
dangermouse:~# cat <<! >> /etc/apt/preferences Package: * Pin: release a=sarge-backports Pin-Priority: 200 !
Update the apt cache:
dangermouse:~# apt-get update
Now we want to install the xen kernel and hypervisor on every machine. This is so we get a consistent 2.6.16 kernel on every machine including the machine we will use for the disk so we can use the latest version of iSCSI Target software from IET.
dangermouse:~# aptitude -t sarge-backports install linux-image-2.6.16-1-xen-686 linux-modules-2.6.16-1-xen-686 grub xen-hypervisor-3.0-i386 xen-utils-3.0 udev
There is probably a few other packages that I have left out that will get automatically updated as well. They should all be fine.
We need to disable tls as it is not supported by XEN at this time.
There may be a libc686-xen package available, and I would suggest
installing that if possible instead of disabling
/lib/tls
.
dangermouse:~# mv /lib/tls /lib/tls.disabled
The Debian package of XEN kernel or hypervisor doesn't yet make an initrd image, so we need to make one manually.
dangermouse:~# mkinitrd -o /boot/initrd.img-2.6.16-1-xen-686 2.6.16-1-xen-686
Now prepare the boot loader. Firstly run
update-grub to automatically populate
/boot/grub/menu.1st
, then fixup the created XEN entries,
by adding two module lines and removing the initrd line.
dangermouse:~# update-grub
turn this:
kernel /boot/vmlinuz-2.6.16-1-xen-686 root=/dev/hda1 ro initrd /boot/initrd.img-2.6.16-1-xen-686
into this in the /boot/grub/menu.1st
:
kernel /boot/xen-3.0-i386.gz console=vga dom0_mem=256000 module /boot/vmlinuz-2.6.16-1-xen-686 root=/dev/hda1 ro xencons=off module /boot/initrd.img-2.6.16-1-xen-686
Replace /dev/hda1
with whatever is your root partition.
dom0_mem is the amount of memory available to the host virtual machine or domain0.
xencons turns off the use of the serial port. I need the serial
ports for other purposes, so this one is up to you.
Now you need to reboot and confirm that the XEN hypervisor boots and domain0 starts as well. If this fails go over the steps and make sure you didn't leave a step out. Because you still have your Debian standard kerenl installed you can always recover to that with no ill affect
Now that you have XEN installed and you are successfully booting
off the XEN Hypervisor we can configure the xen daemon. The
configuration file is
/etc/xen/xend-config.sxp.
(xend-relocation-server yes) (xend-relocation-hosts-allow '') (network-script 'network-bridge netdev=eth0') (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0)
Now restart the xend process.
dangermouse:~# /etc/init.d/xend restart