Xen on Fedora 13
NOTICE: This section has been moved to Two Node Fedora 13 Cluster - Xen-Based Virtual Machine Host on DRBD+CLVM. This will be removed shortly.
Installing from RPM
Installing Xen (minus dom0) is trivial:
yum install xen
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.
[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
yum install kernel-184.108.40.206-167.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:
Note: Copy and modify the entry created by the RPM. Simply copying this entry will almost certainly not work! Your root= is likely different and your rd_MD_UUID= will definitely be different, even on the same machine across installs. Generally speaking, what follows the kernel /vmlinuz-220.127.116.11-167.xendom0.fc12.x86_64 ... entry made by the dom0 kernel can be copied after the module /vmlinuz-18.104.22.168-167.xendom0.fc12.x86_64 ... entry in the example below.
title Xen 3.4.x, Linux kernel 22.214.171.124-167.xendom0.fc12.x86_64 root (hd0,2) kernel /xen.gz dom0_mem=1024M module /vmlinuz-126.96.36.199-167.xendom0.fc12.x86_64 ... module /initramfs-188.8.131.52-167.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.
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
Notes taken from here.
yum -y install rpmdevtools yum-utils
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
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! Your root= is likely different and your rd_MD_UUID= will definitely be different, even on the same machine across installs. Generally speaking, what follows the kernel /vmlinuz-184.108.40.206-157.xendom0.fc12.x86_64 ... entry made by the dom0 kernel can be copied after the module /vmlinuz-220.127.116.11-157.xendom0.fc12.x86_64 ... entry in the example below.
title Xen 4.0.1, Linux kernel 18.104.22.168-157.xendom0.fc12.x86_64 root (hd0,0) kernel /xen-4.0.1.gz dom0_mem=1024M module /vmlinuz-22.214.171.124-157.xendom0.fc12.x86_64 ro root=/dev/mapper/vg_01-lv_root rd_MD_UUID=<your UUID> 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-126.96.36.199-157.xendom0.fc12.x86_64.img
Add this to /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. We also don't want it to stop until cman has stopped. We accomplish this by adding cman to the Required-Stop line.
#!/bin/bash # # xend Script to start and stop the Xen control daemon. # # Author: Keir Fraser <firstname.lastname@example.org> # # 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 cman # 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
With xend set to start at a position lower than 98, we now have room for chkconfig to put other daemons after it in the start order. First and foremost, we now need to tell cman to not start until after xend is up.
As above, we will now edit cman's /etc/init.d/cman script. This time though, we will not edit it's chkconfig line. Instead, we will add xend to the Required-Start entry.
#!/bin/bash # # cman - Cluster Manager init script # # chkconfig: - 21 79 # description: Starts and stops cman # # ### BEGIN INIT INFO # Provides: cman # Required-Start: $network $time xend # Required-Stop: $network $time # Default-Start: # Default-Stop: # Short-Description: Starts and stops cman # Description: Starts and stops the Cluster Manager set of daemons ### END INIT INFO
Lastly, remove and re-add the xend and cman daemons to re-order them in the start list:
chkconfig xend off; chkconfig cman off; chkconfig xend on; chkconfig cman on
Confirm that the order has changed so that xend is earlier in the boot sequence than cman. Assuming you've switched to run-level 3, run:
ls -lah /etc/rc3.d/
Your start sequence should now look like:
lrwxrwxrwx. 1 root root 14 Sep 1 19:26 S26xend -> ../init.d/xend lrwxrwxrwx. 1 root root 14 Sep 1 19:26 S27cman -> ../init.d/cman
Done. You should be able to reboot into the dom0 kernel now.
Creating domU VMs
If you are running on top of DRBD in a cluster, please see "DRBD on Fedora 13" before proceeding.
|Any questions, feedback, advice, complaints or meanderings are welcome.|
|Us: Alteeve's Niche!||Support: Mailing List||IRC: #clusterlabs on Freenode||© Alteeve's Niche! Inc. 1997-2019|
|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.|