Eine pdf-Version gab es mal. Jetzt aber nicht mehr ;-)
felix
ps. Gefundene Fehler, Kritik und Sonstiges per PN an mich!
Eine pdf-Version gab es mal. Jetzt aber nicht mehr ;-)
felix
ps. Gefundene Fehler, Kritik und Sonstiges per PN an mich!
Geändert von fehl-x (02.01.07 um 21:40 Uhr)
1. Vorwort
2. benötigte Pakte
3. Xen 2.0.6 kompilieren
4. Anpassen des Kernels xen0
5. GRUB anpassen
5.1. Xen Standardkernel
5.2. selbst angepasster Kernel
6. Benchmarks
7. Installation und Konfiguration von Debian 'sarge' 3.1 als Gastsystem
l. Links
ll. Lizenz und Copyrightbestimungen
Geändert von fehl-x (19.02.06 um 21:47 Uhr)
Xen 2.0 stellt die Möglichkeit innerhalb eines Betriebssystems weitere (para-)virtuelle Betriebssysteme zu betreiben. Dazu sind Modifikationen sowohl am Kernel des Hostbetriebssystems, sowie auch am Kernel des Gastbetriebssystems nötig, was das Betreiben von closedsource Betriebssystemen ausschließt.
Zur Zeit besteht die Möglichkeit GNU/Linux 2.4.x, 2.6.x und NetBSD 2 zu nutzen. Dieses Howto beschränkt sich allerdings auf GNU/Linux 2.6.11.
Als Informationsquellen dienten mir die offizielle Installationsanleitung der Xen-Entwickler [1] und eine weitere Anleitung zum patchen des Kernels für Xen [2].
Eine Installation von Xen 2.0.6 aus den Binaryfiles ist wesentlich einfacher, allerdings bietet der mitgelieferte Kernel keine optimale Hardwareunterstützung für das eigene System (Netzwerk und Sound waren bei mir mit dem mitgelieferten xen0-kernel nicht funktionstüchtig).
Ich behaupte nicht, dass der hier beschriebene Weg zu einem Xen 2.0.6 System mit eigenen Kernel irgendwie elegant ist, bzw. dass es nicht auch einfacher geht. Aber der hier beschriebene Weg ist der einzige Weg, der bei mir nach langem Probieren zum Ziel geführt hat.
Als Hostsystem dient mir Debian 'sarge' 3.1.
Geändert von fehl-x (10.07.05 um 11:56 Uhr)
Zur Installation und Kompilierung der Xen-Programme/Tools und des Xen-Kernels werden folgende Programmpakete benötigt:
iproute2, bridge-utils, python-twisted, gcc-3.3, binutils, make, libcurl3-dev, zlib1g-dev, python-dev, transfig, bzip2, latex
Diese sollten sich bequem über das distributionseigene Paketmanagmentsystem installieren lassen. Für apt lautet der Befehl:
Code:# sudo apt-get install iproute bridge-utils python-twisted gcc-3.3 binutils make libcurl3-dev zlib1g-dev python-dev transfig bzip2
Geändert von fehl-x (10.07.05 um 12:16 Uhr)
Es empfiehlt sich in seinem home-Verzeichnis einen eigenen Ordner für die Xen-Installation anzulegen.
Danach werden die Quellarchive in einen eigenen Ordner geladen.Code:# cd ~ # mkdir xen # cd xen
Falls die URLs nicht mehr stimmen sollten, ist der Kernel 2.6.11.10 unter [3] zu finden und die Xen-Sourcen unter [4].Code:# mkdir archive # cd archive # wget http://www.kernel.org/pub/linux/kern....11.10.tar.bz2 # wget http://www.cl.cam.ac.uk/Research/SRG...-2.0.6-src.tgz # cd ..
Jetzt werden die Quellarchive jeweils entpackt.
Im Nächsten Schritt wird Xen 2.0 kompiliert.Code:# tar -xvzf archive/xen-2.0.6-src.tgz # tar -xvjf archive/linux-2.6.11.10.tar.bz2
Während dieses Schrittes werden die von Xen benötigten Tools und ein 2.6.10 Standardkernel kompiliert. Dieser Kernel lässt sich zwar booten, bietet aber keine weitere Hardwareunterstützung, so dass es nötig ist, später noch einen angepassten Kernel zu kompilieren.Code:# cd xen-2.0 # make world
Jetzt muss Xen noch installiert werden:
oderCode:# sudo make install # sudo sh ./install.sh
und man Ende wieder in das Installationsverzeichnis ~/xen wechseln.Code:# su # make install # sh ./install.sh # exit
Um die Performance des xen0-kernels zu erhöhen wird auf [1] empfohlen Thread Local Storage im Hostsystem auszuschalten.Code:# cd ..
Thread Local Storage kann jederzeit mitCode:# mv /lib/tls /lib/tls.disabled
wieder aktiviert werden.Code:# mv /lib/tls.disabled /lib/tls
Hinweis:
Wer keine angepassten Kernel nutzen möchte kann direkt mit Kapitel 5.1 GRUB Xen 2.0 Standardkernel fortfahren.
Geändert von fehl-x (10.07.05 um 12:20 Uhr)
Wir befinden uns im Installationsverzeichnis ~/xen. Es wird ein neuer Ordner erstellt, dessen Dateien allerdings nur mit den Originalen in linux-2.6.11.10 verlinkt sind.
Ich habe mit tm635 einen Hinweis auf die verwendete Hardware (Acer Travelmate 635Lc) in den Kernelnamen eingebaut.
Dann werden die neuen Kernelsourcen an Xen angepasst.Code:# cp -al linux-2.6.11.10 linux-2.6.11.10-tm635-xen0
Kernel patchen:Code:# cd xen-2.0/linux-2.6.11-xen-sparse/ # ./mkbuildtree ../../linux-2.6.11.10-tm635-xen0/ # cd ../.. # echo "-tm635-xen0" > linux-2.6.11.10-tm635-xen0/localversion-xen # diff -Naur linux-2.6.11.10 linux-2.6.11.10-tm635-xen0 > archive/linux-2.6.11.10-tm635-xen0.patch
Jetzt kann kann der Kernel kompiliert werden. Das Ergebnis wird zunächst in einem extra Verzeichnis gespeichert und nicht sofort ins System kopiert.Code:# patch -p1 < ../archive/linux-2.6.11.10-tm635-xen0.patch
Verzeichnis für Installationsergebnis erstellen und ins Kernelverzeichnis wechseln:
Ein .config-file mit Xen-Standardkonfiguration ins Kernelverzeichnis kopieren:Code:# mkdir install # cd linux-2.6.11.10-tm635-xen0
Definiert die Umgebungsvariablen, so dass der neue Kernel und seine Module im Verzeichnis install landen:Code:# cp arch/xen/configs/xen0_defconfig .config
Kernel konfigurieren:Code:# ARCH=xen; INSTALL_PATH=../install; INSTALL_MOD_PATH=../install # export ARCH INSTALL_PATH INSTALL_MOD_PATH
Weitere Kerneleinstellungen können mitCode:# make oldconfig
vorgenommen werden.Code:# make menuconfig
Hinweis:
Ein gutes Howto zur Kernelkonfiguration gibt's unter [5].
Kernel und Module kompilieren und installieren:
Danach müssen nur noch die Dateien/Ordner aus ~/xen/install in die entsprechenden Verzeichnisse kopiert werden.Code:# make modules # make modules_install # make install
Nun muss GRUB, wie in Kapitel 5.2 beschrieben angepasst werden, dann kann der neue Xen-Kernel gebootet werden.Code:# cd ../install/ # sudo cp boot/* /boot # sudo cp -r lib/modules/2.6.11.10-tm635-xen0/ /lib/modules # sudo cp -r usr/include/xen /usr/include
Geändert von fehl-x (10.07.05 um 12:25 Uhr)
5.1. GRUB: Xen 2.0 Standardkernel
In [1] wird der Eintrag in /boot/grub/menu.lst so angegeben:
Die root-Partition, oben angeben mit root=/dev/sda4, muss natürlich noch angepasst werden.Code:title Xen 2.0 / XenLinux 2.6 kernel /boot/xen-2.0.gz dom0_mem=131072 module /boot/vmlinuz-2.6-xen0 root=/dev/sda4 ro console=tty0
Auf meinen Debian 'Sarge' 3.1 mit eigener boot-Partition musste der Eintrag allerdings wie folgt angepasst werden:
Jetzt kann das System gerebooted werden. In GRUB dann natürlich Xen 2.0.6 / XenLinux 2.6.11.10-xen0 auswählen und gucken ob der Kernel bootet. Sollte er aber eigentlich.Code:title Xen 2.0.6 / XenLinux 2.6.11.10-xen0 root (hd0,2) kernel /xen.gz dom0_mem=131072 module /vmlinuz-2.6-xen0 root=/dev/hda5 ro console=tty0
5.1. GRUB: selbst angepasster Kernel
Im Prinzip muss in dem GRUB-Eintrag nur der Dateiname des angepassten Kernels eingetragen werden. Im ersten Fall (siehe 5.1) sieht das dann so aus:
root-Device Namen anpassen nicht vergessen!Code:title Xen 2.0 / XenLinux 2.6 kernel /boot/xen-2.0.gz dom0_mem=131072 module /boot/vmlinuz-2.6.11.10-tm635-xen0 root=/dev/hdaX ro console=tty0
Und im Fall einer eigenen boot-Partition (siehe 5.1) sieht der Eintrag so aus:
Code:title Xen 2.0.6 / XenLinux 2.6.11.10-xen0 root (hd0,2) kernel /xen.gz dom0_mem=131072 module /vmlinuz-2.6.11.10-tm635-xen0 root=/dev/hda5 ro console=tty0
Da ich das subjektive Gefühlt hatte, dass KDE-Programme mit xen0-Kernel länger brauchen zum starten, hab ich beschlossen, dass per Benchmark zu überprüfen. Die durchgeführten Benchmarks bestätigen meine subjektives Gefühl allerdings nicht.
Der Grund für das langsamere starten der KDE-Programme wird sein, dass der xen0-Kernel mit weniger Arbeitsspeicher als ein 'normaler' Kernel gestartet wird (Parameter dom0_mem=131072) gestartet wird.
Geändert von fehl-x (21.04.07 um 19:36 Uhr)
An dieser Stelle ein Verweiss auf an anderes Howto: http://www.pug.org/index.php/Xen-Installation
Geändert von fehl-x (07.09.05 um 09:35 Uhr)
[1] UsersManual der Entwickler
http://www.cl.cam.ac.uk/Research/SRG...user/user.html
[2] Howto: Kernel patchen
http://www.theshore.net/~caker/uml/xen-skas.txt
[3] Kernel Website
http://www.kernel.org/
[4] Xen Entwickler Website
http://xen.sf.net/
[5] Howto zur Kernelkonfiguration
http://www.linuxforen.de/forums/showthread.php?t=161878
[6] Benchmarks
http://www.freebench.org/
[7] Benchmarks-Tools
http://www.freebench.org/benchmarks.shtml
Dieses Howto ist unter der GNU Free Documentation License lizenziert.
englisches Orginal: http://www.gnu.org/licenses/fdl.html
inoffizielle deutsche Übersetzung: http://de.wikipedia.org/wiki/GNU_FDL/Text
zu nennender Autor: Felix Friedrich
Geändert von fehl-x (19.02.06 um 21:55 Uhr)
Lesezeichen