====== Erstellung von Gästen für Xen (DomU) ======
Die verschiedenen DomUs sind die virtuellen Maschinen ("Gäste") oberhalb der dom-0. Die Erstellung mit dem Xen-Tools sollte auf allen Systemen gleich sein. Eine manuelle Variante (ohne Xen-Tools) wird auch beschrieben.
Es wird (bisher) nur die Erstellung von Images (und die Benutzung mit loop) beschrieben. Es geht auch mit [[linux:LVM]].
* {{:xen:xen_install_windows.pdf|Windows+Linux auf Xen}}
===== fertige Xen-Images =====
Auf diesen Seiten gibt es fertige [[xen:Xen]]-Images zum runterladen:
* [[http://www.rpath.com/rbuilder/search?search=buildtype%3D100&type=Projects&byPopularity=1|rpath]]
* [[http://jailtime.org/download:start|jailtime Image Downloads]]
* [[http://www.vmfind.com|vmfind]]
* [[http://wiki.computerwoche.de/doku.php/virtualisierung/virtual-appliances|Vorkonfigurierte virtuelle Maschinen @ wiki.computerwoche.de]]
Die [[http://www.citrixxenserver.com/products/Pages/myproducts.aspx|XenServer Produkte]] unterstützen das Xen Virtual Appliance (XVA) Format, das man mit einer grafischen Schnittstelle oder auf der Kommandozeile mit "xe" importieren kann.
===== eine paravirtualisierte DomU erstellen (Xen-tools) =====
- In der Datei ''/etc/xen/xend-config.sxp'' die gewünschten Änderungen vornehmen, z.B. die Zeile ''(network-script network-dummy)'' durch ''(network-script network-bridge)'' ersetzen.
- Mit den Xen-Tools ist eine VM schnell erstellt: xen-create-image --hostname debian --dhcp --dir /srv/xen
Das Beispiel erstellt zwei Images (eins für das swap-file, eins für das root-Dateisystem) im Verzeichnis /srv/xen (es wird automatisch das Unterverzeichnis domains angelegt) mit dem Namen debian. Die Konfiguration sieht dann nach Anpassung so aus (die letzte Zeile z.B. hinzugefügt werden).
Ohne [[netzwerke:DHCP]] und mit **fester IP** sieht der Anruf so aus:
xen-create-image --hostname debian --ip 192.168.0.1 --dir /srv/xen
:!: bei --dir sollte in der Pfadangabe hinten kein Slash (/) am Pfadnamen stehen.
#
# Kernel + memory size
#
kernel = '/boot/vmlinuz-2.6.22-14-xen'
ramdisk = '/boot/initrd.img-2.6.22-14-xen'
memory = '128'
#
# Disk device(s).
#
root = '/dev/sda1 ro'
disk = [ 'file:/domains/debian/disk.img,sda1,w', 'file:/domains/debian/swap.img,sda2,w' ]
#
# Hostname
#
name = 'debian'
#
# Networking
#
dhcp = 'dhcp'
vif = [ 'bridge=xenbr0' ]
#
# Behaviour
#
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
extra='xencons=tty'
===== eine vollvirtualisierte DomU erstellen (Windows, Xen-Tools) =====
Bei [[xen:Xen-Installation auf einem Desktop#Vollvirtualisierung: Hardwareunterstützung überprüfen|entsprechender Hardwareunterstützung]] können auch nicht angepasste Betriebssysteme, d.h. solche ohne eigenen [[wpde>Hypervisor]] (wie [[windows:Windows]]), betrieben werden. Diese laufen allerdings nicht ganz so schnell, da die Treiber nicht angepasst sind. Novell ([[http://www.novell.com/de-de/products/vmdriverpack/|Virtual Machine Driver Pack]]) und XenSource (XenSource Windows Tools) bieten jeweils angepasste Treiber, die jedoch nicht kostenlos sind.
Zuerst sollte man sich ein Image erstellen (siehe oben: manuelle Erstellung) außerdem muss man eine Konfiguration anlegen:
# WinXP sample config
kernel = '/usr/lib/xen-3.0.3-1/boot/hvmloader'
builder = 'hvm'
memory = '384'
name = 'winxp1'
device_model= '/usr/lib/xen-3.0.3-1/bin/qemu-dm'
boot ='d'
disk = [ 'file:/domains/winxp/winxp.img,ioemu:hda,w', 'file:/domains/WinXP.ISO,hdc:cdrom,r' ]
#
# Networking
#
#dhcp = 'dhcp'
vif = [ 'type=ioemu, bridge=xenbr0' ]
vnc=1
vncpasswd='winxp'
vnclisten='0.0.0.0'
#
# Behaviour
#
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
Zu Erklärung:
* Im Gegensatz zu den oben genannten Debian-Beispiel wird hier die komplette Hardware durch [[software:Qemu]] emuliert. Daher werden vorhande Images von vorhandenen physikalischen Systemen leider nicht reichen, da [[windows:Windows]] andere Hardware vorfindet und relativ sicher nicht starten wird.
* ''/domains/winxp/winxp.img'' ist das oben angelegte Image auf das vom
* CD-Image ''/domains/WinXP.ISO'' installiert wird.
* Die Anzeige der grafischen Oberfläche wird mit VNC realisiert, auf das unter allen IP-Adressen (vnclisten='0.0.0.0') mit dem Passwort winxp zugegriffen werden kann. Dann kann man sich mit vncviewer DOM-0-HOSTNAME:0
dorthin verbinden.
:!: **Nach der Installation**
boot ='d'
auf
boot ='c'
setzen.
==== Abänderungen ====
* Um ein **CD-ROM Laufwerk als Installationsquelle** zu benutzen: disk = [ 'file:/srv/xen/domains/lexware/lexware-c.img,ioemu:hda,w', 'phy:/dev/cdrom,hdc:cdrom,r' ]
* **Feste IP**:vif = [ 'ip=192.168.0.13, type=ioemu, bridge=xenbr0' ]
==== Links ====
* [[http://www.trullala.de/technisches/windows-auf-xen/|Windows auf XEN / Howto]]
* [[http://www.math.dartmouth.edu/~sarunas/xen_304_hvm_etch.html|Xen 3.0.4 HVM and Debian Etch]]
* [[http://www.trullala.de/technisches/windows-auf-xen/|Windows auf XEN / Howto]]
* [[http://www.pug.org/index.php/Xen-Installation-Seite-3#Xen_3.0.4_Bin.C3.A4r_Installation_unter_Debian_Etch_-_HVM_Windows_XP|
Xen 3.0.4 Binär Installation unter Debian Etch - HVM Windows XP]]
===== manuelle Erstellung =====
Wenn die Xen-Tools nicht zur Verfügung stehen (oder man eine grundsätzliches Verständnis bekommen will) ist die manuelle Erstellung eine Alternative.
Dazu
- erzeugt man ein Image (die spätere Systempartition erstellen) mit dem Befehldd if=/dev/zero of=IMAGENAME.IMG count=0 bs=1024k seek=5000
hier wird also die Datei IMAGENAME.IMG mit 5 GB Speicher angelegt. Dieser wird allerdings noch nicht voll belegt, da hier eine [[wpde>Sparse-Datei]] angelegt wurde. Da die Datei bisher leer ist, werden wir
- ein Dateisystem im Image anlegen:mkfs.ext3 IMAGENAME.IMG
.
FIXME (weiter)
xt-install-image Install a new distribution.
xt-customize-image Run a collection of hook scripts to customise the freshly installed system.
xt-create-xen-config Create a configuration file in /etc/xen so that xm can create the new image.
===== Images vergrößern (resize) =====
:!: Vorher sollte das Gastsystem runtergefahren werden.
Die Änderung ist schnell erledigt: Im ersten Schritt wird das Image durch anhängen von Nullen um 1GB vergrößert und anschließend auch das (ext3) Dateisystem.
dd if=/dev/zero bs=1024000 count=1024 >> disk.img
resize2fs -f disk.img
Wer mehr oder weniger als 1GB vergrößern muss natürlich die Zahlen entsprechend (so dass die Multiplikation der Zahlen von bs und count die gewünschte Kapazität ergibt) anpassen.
Anschließend ggf. [[linux:lvm#pv-vergrößern|das LVM anpassen]].
===== Ubuntu =====
Für [[ubuntu:Ubuntu]] gibt es in Etch keine passenden Scripte von debootstrap. Zwar wird dapper als unterstützt angegeben, aber es ist trotzdem nix da.
Also laden wir uns ein aktuelles debootstrap [[http://archive.ubuntulinux.org/ubuntu/pool/main/d/debootstrap/|von Ubuntu]]:
wget http://archive.ubuntulinux.org/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.8_all.deb
dpkg -i debootstrap_1.0.8_all.deb
We're trying to configure an installation of gutsy in
/srv/xen - but there is no hook directory for us to use.
This means we don't know how to configure this installation.
We'd expect the hook directory to be : /usr/lib/xen-tools/gutsy.d
Im Verzeichnis /usr/lib/xen-tools legt man also noch einen Verweis auf ''ubuntu.d'' an:
ln -s ubuntu.d gutsy.d
===== Gentoo =====
* [[http://gentoo-wiki.com/HOWTO_Xen_and_Gentoo|HOWTO Xen and Gentoo]]