Xen Install
From ArchWiki
Contents |
Introduction
This document will cover installing Xen on Arch Linux. It needs to be updated because it's very out of date. Please be careful.
Much of the information comes directly from the Xen Install Doc.
More info about Xen here:
Wikipedia Xen Article
Main Xen site
Requirements
You need to fulfill the requirements before you can get Xen running. Those requirements are:
- iproute
- bridge-utils
- twisted-web
- libcurl
Install
Fulfill the Requirements
Fetch pacman packages.
$ pacman -Sy iproute bridge-utils zope-interface python twisted curl
Fetch Xen Binaries
Download the Xen binaries from The Xen Download Site.
$ wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-2.0.7-install-x86_32.tgz
Extract Xen Binaries
< you need to become root user here >
$ su $ tar -xpzf xen-2.0.7-install-x86_32.tgz $ cd xen-2.0-install
Modification of files
Some of the Xen files need to be modified.
$ edit install.sh change all init.d to rc.d $ cd install $ cd etc $ mv init.d rc.d $ cd ../usr/lib/ $ mv python python2.4 $ cd python2.4/xen $ sed -i "s#twisted.protocols import http#twisted.web import http#g" xend/XendAsynchProtocol.py \ xend/server/SrvDomainDir.py xend/server/SrvDir.py xend/server/SrvBase.py xend/server/SrvDomain.py $ cd ../../../../.. $ sh install.sh
Configuration Xen
Grub
$ vi /boot/grub/menu.lst
Add the following before the current grub entry.
title Xen [/boot/xen.gz] root (hd0,1) kernel /xen.gz dom0_mem=524288 module /vmlinuz-2.6.11.12-xen0 root=/dev/sda5 ro
Of course, replace your information as appropriate. Namely, the root device, and specify an appropriate value for dom0_mem=NUMBER, where NUMBER is the amount of memory (in kilobytes) you wish to dedicate to the main Xen instance (the host).
Rebooting
Now you need to reboot into your new kernel/Xen0 host instance. If the system does not boot, then just reboot with the previous kernel grub entry, and attempt to fix the errors.
Starting Xen Daemon
After a successful kernel reboot, start xend.
$ /etc/rc.d/xend start
If you get any errors, attempt to fix them.
Creating a xenU instance
The /etc/xen file
You need to create a domain configuration file for your xenU instance.
Here is a simple example. The useful comments have been removed. If you wish to delve deeper, the xmexample1 and xmexample2 files contain more information. Just copy them to a custom filename, and edit away.
Here is the example used for this how to:
# -*- mode: python; -*- #============================================================================ # Kernel image file. kernel = "/boot/vmlinuz-2.6.11-xenU" # Initial memory allocation (in megabytes) for the new domain. memory = 256 # A name for your domain. All domains must have different names. name = "WebServer" disk = [ 'file:/home/xen/webserver,hda1,w','file:/home/xen/webserver-swap,hda2,w' ] # Set root device. root = "/dev/hda1 ro" # Sets runlevel 4. extra = "3" restart = 'onreboot'
Name the file webserver for the purposes of this example. /etc/xen/webserver
Create data files
$ cd /home $ mkdir xen $ cd xen $ dd if=/dev/zero of=webserver-swap bs=1k seek=768k count=1 $ dd if=/dev/zero of=webserver bs=1k seek=2048k count=1 $ mkfs -t ext3 webserver $ mkswap webserver-swap
Populate xenU instance
We now need to populate our xen vm instance. I installed Xen on a pretty barebones/fresh Arch install. I took the following steps to get a usable vm install.
$ mount -o loop webserver /mnt/fl/ $ cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt/fl/ $ cd /mnt/fl $ mkdir {proc,sys,home,tmp} $ vi /mnt/fl/etc/inittab < remove all but the first agetty respawn lines > $ vi /mnt/fl/etc/rc.conf < modify ip address, hostname, and anything else you desire > $ cd $ umount /mnt/fl
Start XenU instance
$ xm create /etc/xen/webserver -c
Special note: If you use the -c flag, the tty will attach to that the xenU instance being started. You will see the kernel start output, as well as receive a login. All the other tty's on the box will remain attached to the host xen0 system. If you leave off the -c, then it will not attach directly, and will instead start in the 'background'.
Login and configure your installation
Since this is a copy of the host system, I recommend modifying your user/group information. Namely, changing the root password, and removing/adding users as needed. Once that is done, the xenU instance behaves just like a standalone system, while inside the xenU tty. You can ssh to the system, run services, install things with pacman, etc.
More info
Instance Management
From the xen0, or host system, you can manage your xenU, or user subsystems. The management interface is xm.
$ xm help
It is also advisable to add xend to your DAEMONS array list in the xen0 system's /etc/rc.conf
= Addendum
Check out the talk for this page.