Xen on Fedora 13: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
Line 55: Line 55:
The entry in grub's <span class="code">/boot/grub/menu.lst</span> won't work. You will need to edit it to look like this:
The entry in grub's <span class="code">/boot/grub/menu.lst</span> won't work. You will need to edit it to look like this:


<source lang="bash">
vim /boot/grub/menu.lst
</source>
<source lang="bash">
<source lang="bash">
title Xen 3.4.x, Linux kernel 2.6.32.17-157.xendom0.fc12.x86_64
title Xen 3.4.x, Linux kernel 2.6.32.17-157.xendom0.fc12.x86_64

Revision as of 19:33, 1 September 2010

 AN!Wiki :: How To :: Xen on Fedora 13

Warning: This is currently a dumping ground for notes. DO NOT FOLLOW THIS DOCUMENT'S INSTRUCTIONS. Seriously, it could blow up your computer or cause winter to come early.


Installing from RPM

Note: This method uses the older Xen 3.4.x tools and myoung's dom0, which does not support DRBD.

Xen Hypervisor

Installing Xen (minus dom0) is trivial:

yum install xen

dom0

This uses a kernel built for Fedora 12, but it works on Fedora 13.

Add the repo:

cd /etc/yum.repos.d/
wget -c http://myoung.fedorapeople.org/dom0/myoung.dom0.repo

Edit the repo file and change the two enabled=0 entries to enabled=1.

vim /etc/yum.repos.d/myoung.dom0.repo
[myoung-dom0]
name=myoung's repository of Fedora based dom0 kernels - $basearch
baseurl=http://fedorapeople.org/~myoung/dom0/$basearch/
enabled=1
gpgcheck=0

[myoung-dom0-source]
name=myoung's repository of Fedora based dom0 kernels - Source
baseurl=http://fedorapeople.org/~myoung/dom0/src/
enabled=1
gpgcheck=0

Install the Xen dom0 kernel (edit the version number if needed).

yum install kernel-2.6.32.17-157.xendom0.fc12.x86_64

The entry in grub's /boot/grub/menu.lst won't work. You will need to edit it to look like this:

vim /boot/grub/menu.lst
title Xen 3.4.x, Linux kernel 2.6.32.17-157.xendom0.fc12.x86_64
	root   (hd0,0)
	kernel /xen.gz dom0_mem=1024M
	module /vmlinuz-2.6.32.17-157.xendom0.fc12.x86_64 ro root=/dev/mapper/vg_01-lv_root rd_MD_UUID=4f48439e:39ec22e8:a6154857:c340036f rd_LVM_LV=vg_01/lv_root rd_LVM_LV=vg_01/lv_swap rd_NO_LUKS rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us
	module /initramfs-2.6.32.17-157.xendom0.fc12.x86_64.img

Add this to /etc/fstab

vim /etc/fstab
xenfs                   /proc/xen               xenfs   defaults        0 0

Build from source

This is required if you want dom0 and DRBD.

Install Requirements

For the hypervisor:

yum -y groupinstall "Development Libraries"
yum -y groupinstall "Development Tools"
yum -y install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial
yum -y install glibc-devel.i686

For dom0:

Notes taken from here.

yum -y install rpmdevtools yum-utils

Xen Hypervisor

Note: These are the tools, not dom0.

All of this is from here.

From mercurial, stable tag.

Get version 4.0.1 (or newer, depending on what the latest stable is):

hg clone -r RELEASE-4.0.1 http://xenbits.xen.org/xen-4.0-testing.hg

Go into the directory and compile the tools:

cd xen-4.0-testing.hg
make xen
make tools
make stubdom

Install the tools (assuming compile worked):

make install-xen
make install-tools
make install-stubdom

dom0

Note: Until otherwise noted, you do not need to run these steps as root.

cd ~
rpmdev-setuptree

Note: Copy and modify the entry created by the RPM. Simply copying this entry will almost certainly not work!

Xen 4.0.1:

title Xen 4.0.1, Linux kernel 2.6.32.17-157.xendom0.fc12.x86_64
	root   (hd0,0)
	kernel /xen-4.0.1.gz dom0_mem=1024M
	module /vmlinuz-2.6.32.17-157.xendom0.fc12.x86_64 ro root=/dev/mapper/vg_01-lv_root rd_MD_UUID=4f48439e:39ec22e8:a6154857:c340036f rd_LVM_LV=vg_01/lv_root rd_LVM_LV=vg_01/lv_swap rd_NO_LUKS rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us rhgb quiet
	module /initramfs-2.6.32.17-157.xendom0.fc12.x86_64.img

Add this to /etc/fstab

vim /etc/fstab
xenfs                   /proc/xen               xenfs   defaults        0 0

Make cman and xend play nice

By default under Fedora 13, cman will start before xend. This is a problem because xend takes the network down as part of it's setup. This causes totem communication to fail which leads to fencing.

To avoid this, edit /etc/init.d/cman and tell it to start after xend by adding "xend" to Required-Start and Required-Stop boot facility lists.

When done, the cman LSB header should look like this:

vim /etc/init.d/cman
### BEGIN INIT INFO
# Provides:             cman
# Required-Start:       $network $time xend
# Required-Stop:        $network $time xend
# Default-Start:
# Default-Stop:
# Short-Description:    Starts and stops cman
# Description:          Starts and stops the Cluster Manager set of daemons
### END INIT INFO

Next, we need to tell xend not to default to start position 98. Without this change, services we want to start after xend (xman -> drbd -> clvmd -> xendomains) would all fall to start position 99. This would mean that the start order would become dependent on the daemon name, which is a bad idea. For example, this would cause clvmd to start before cman, which we don't want.

Change chkconfig: 2345 98 01 to chkconfig: 2345 11 98.

vim /etc/init.d/drbd
# chkconfig: 2345 11 98
# description: Starts and stops the Xen control daemon.
### BEGIN INIT INFO
# Provides:          xend
# Required-Start:    $syslog
# Should-Start:      $remote_fs
# Required-Stop:     $syslog 
# Should-Stop:       $remote_fs
# Default-Start:     3 4 5
# Default-Stop:      0 1 2 6
# Default-Enabled:   yes
# Short-Description: Start/stop xend
# Description:       Starts and stops the Xen control daemon.
### END INIT INFO

Lastly, remove and re-add the cman and xend daemon to the start list:

Note': This has extra entries to make sure all relevant entries are sorted when re-added. If you do not have some of the daemons listed below installed yet, simply skip them.

chkconfig xend off; chkconfig cman off; chkconfig drbd off; chkconfig clvmd off; chkconfig xendomains off; chkconfig gfs2 off
chkconfig xend on; chkconfig cman on; chkconfig drbd on; chkconfig clvmd on; chkconfig xendomains on; chkconfig gfs2 on

Done. You should be able to reboot into the dom0 kernel now.

Misc

Source RPM: xen-4.0.1-0.2.fc13.src.rpm, xen-modules.patch

Creating domU VMs

Once you have ...

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.