Xen on Fedora 13: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
Line 155: Line 155:
</source>
</source>


= Make cman and xend play nice =
= Make xend play nice with clustering =


By default under Fedora 13, <span class="code">cman</span> will start before <span class="code">xend</span>. This is a problem because <span class="code">xend</span> takes the network down as part of it's setup. This causes [[totem]] communication to fail which leads to fencing.
By default under Fedora 13, <span class="code">cman</span> will start before <span class="code">xend</span>. This is a problem because <span class="code">xend</span> takes the network down as part of it's setup. This causes [[totem]] communication to fail which leads to fencing.


To avoid this, edit <span class="code">/etc/init.d/cman</span> and tell it to start after <span class="code">xend</span> by adding "<span class="code">xend</span>" to <span class="code">Required-Start</span> and <span class="code">Required-Stop</span> boot facility lists.
To avoid this, edit <span class="code">/etc/init.d/xend</span> and tell it to start earlier than position <span class="code">98</span>. This is done by changing the line <span class="code">chkconfig: 2345 98 01</span> to <span class="code">chkconfig: 2345 11 98</span>.  
 
When done, the <span class="code">cman</span> LSB header should look like this:


<source lang="bash">
<source lang="bash">
vim /etc/init.d/cman
vim /etc/init.d/xend
</source>
<source lang="bash">
### 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
</source>
 
Next, we need to tell <span class="code">xend</span> not to default to start position <span class="code">98</span>. Without this change, services we want to start after <span class="code">xend</span> (<span class="code">xman</span> -> <span class="code">drbd</span> -> <span class="code">clvmd</span> -> <span class="code">xendomains</span>) would all fall to start position <span class="code">99</span>. This would mean that the start order would become dependent on the daemon name, which is a bad idea. For example, this would cause <span class="code">clvmd</span> to start before <span class="code">cman</span>, which we don't want.
 
Change <span class="code">chkconfig: 2345 98 01</span> to <span class="code">chkconfig: 2345 11 98</span>.
 
<source lang="bash">
vim /etc/init.d/drbd
</source>
</source>
<source lang="bash">
<source lang="bash">
#!/bin/bash
#
# xend          Script to start and stop the Xen control daemon.
#
# Author:      Keir Fraser <keir.fraser@cl.cam.ac.uk>
#
# chkconfig: 2345 11 98
# chkconfig: 2345 11 98
# description: Starts and stops the Xen control daemon.
# description: Starts and stops the Xen control daemon.
### BEGIN INIT INFO
### BEGIN INIT INFO
# Provides:          xend
# Provides:          xend
# Required-Start:    $syslog
# Required-Start:    $syslog $remote_fs
# Should-Start:     $remote_fs
# Should-Start:
# Required-Stop:    $syslog  
# Required-Stop:    $syslog $remote_fs
# Should-Stop:       $remote_fs
# Should-Stop:
# Default-Start:    3 4 5
# Default-Start:    3 4 5
# Default-Stop:      0 1 2 6
# Default-Stop:      0 1 2 6
Line 202: Line 187:
</source>
</source>


Lastly, remove and re-add the <span class="code">cman</span> and <span class="code">xend</span> daemon to the start list:
Lastly, remove and re-add the <span class="code">xend</span> daemon in 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.


<source lang="bash">
<source lang="bash">
chkconfig xend off; chkconfig cman off; chkconfig drbd off; chkconfig clvmd off; chkconfig xendomains off; chkconfig gfs2 off
chkconfig xend off
chkconfig xend on; chkconfig cman on; chkconfig drbd on; chkconfig clvmd on; chkconfig xendomains on; chkconfig gfs2 on
chkconfig xend on
</source>
</source>



Revision as of 20:27, 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

echo "xenfs                   /proc/xen               xenfs   defaults        0 0" >> /etc/fstab

Build from source

This is required if you want a more up to date dom0.

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 xend play nice with clustering

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/xend and tell it to start earlier than position 98. This is done by changing the line chkconfig: 2345 98 01 to chkconfig: 2345 11 98.

vim /etc/init.d/xend
#!/bin/bash
#
# xend          Script to start and stop the Xen control daemon.
#
# Author:       Keir Fraser <keir.fraser@cl.cam.ac.uk>
#
# chkconfig: 2345 11 98
# description: Starts and stops the Xen control daemon.
### BEGIN INIT INFO
# Provides:          xend
# Required-Start:    $syslog $remote_fs
# Should-Start:
# Required-Stop:     $syslog $remote_fs
# Should-Stop:
# 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 xend daemon in the start list:

chkconfig xend off
chkconfig xend 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.