Virtualisierung ist in aller Munde. Es gibt viele Lösungen um aus einem Rechner mehrere zu machen, um beispielsweise eine Testumgebung oder verschiedene Server in eigenen Umgebungen auf einer einzigen physikalischen Maschine laufen zu Lassen. Allseits bekannt sein sollte Vmware, aber auch Openvz, wie es viele Webhoster für Ihre Vserverangebote einsetzen, Linux Virtual Server und XEN , das derzeitige Non Plus Ultra in Sachen virtualisierung. Xen ist in etwa vergleichbar mit Vmware's ESX Server, kann aber noch einiges mehr. Auf brandaktueller Hardware mit AMDs x2 Prozessor oder Intels Core 2 Duo ist es möglich, dank Pazifica(AMD) und Vanderpool(Intel) Technologie, so ziemlich alle Betriebssysteme ohne Emualtion auf einem Rechner gleichzeitig laufen zu lassen. So kann neben verschiedenen Linuxen auch Windows ab 2000 SP4 parallel installiert sein und laufen. Da nicht alle aktuelleste Hardware haben, beginnt dieser Artikel mit der normalen Virtualisierung mehrerer Linuxversionen auf einer Maschine, in unserem Fall 2 mal SuSE 10.1.
Die SuSE bringt in der Version 10.1 alles mit, was zum Aufsetzen einer Vserverumgebung notwendig ist. Es gibt zwar einige Anleitungen zu XEN und SuSE im Netz, jedoch sind sie alle nicht falsch, aber auch nicht vollständig. Diese Anleitung soll Abhilfe schaffen.
An Hardware sollte man haben:
Mindesten 10 GB freien Festplattenplatz für das Festplattenimage der virtuellen Maschine
*Mindestens 512 MB Speicher im System
*SuSE 10.1 installiert und voll lauffähig
*Netzwerkverbindung via Netzwerkkabel und Kabel ( optimal ) oder Wlan ( geht notfalls auch )
*Die Installationsquellen aus dem hier verfügbaren Artikel müssen eingebunden sein und funktionieren. Auf Xorg 7.x sollte man verzichten oder zumindest die Installationsquelle deaktivieren, während perr yast das Systemimage erzeugt wird.
Sind alle Voraussetzungen erfüllt kann es losgehen.
1. Yast starten ->Software installieren oder Löschen wählen und xen nachinstallieren.
Suchbegriff xen und auch kernel eingeben und mindestens folgende Pakete installieren:
Bei einem AMD Athlon/AthlonXP / Intel Pentium4 ohne 64 Bit Erweiterung:
Ist alles installiert, kann es nun richtig losgehen. Zuerst benötigen wir eine virtuelle Festplatte von 10 Gigabyte für unser Zweitsystem. Das ist eine Datei im Verzeichnisbaum unseres Linuxrechners. Es muss natürlich genügend Platz vorhanden sein.
Öffnen wir eine Konsole und erlangen Rootrechte mit:
su- ENTER Rootpasswort eingeben ENTER
Wechseln wir in den Hauptpfad der Platte
cd / ENTER
Verzeichnisse anlegen:
mkdir xenimage ENTER mkdir dirinstall ENTER
Nun sind die Voraussetzungen geschaffen.
Festplattenimage erzeugen:
cd /xenimage ENTER
dd of=xen1.img bs=1024 seek=10000000 count=0 ENTER
erzeugt ein leeres Festplattenimage von 10 GB Grösse. Das geht recht fix und kann per ls -l ENTER geprüft werden. Nun müssen wir unsere neue, virtuelle Festplatte noch formatieren. Xen akzeptiert bei SuSE nur reiserfs .
mkfs -t reiserfs xen1.img ENTER
reiser meckert mit einer englischen Meldung, das es sich nicht um ein Blockdevice handelt. Hat er recht, denn es ist ja eine Datei die wir formatieren wollen und keine echte Festplatte. Diesen Warnhinweis unbedingt mit y bestätigen. Der Formatvorgang dauert ein wenig, geht nicht so schnell wie das Anlegen der Imaqedatei. Ist unsere vituelle Platte formatiert ( das xen1.img ) muss es mit Inhalt gefüllt werden. Wir müssen die Suse darin installieren. Kingt schlimmer als es ist. Zuerst unser Image ins Dateisystem einhängen ( mounten ), damit wir drauf zugreifen können
mount -t reiserfs /xenimage/xen1.img /dirinstall ENTER
SuSE installieren:
yast starten - Installation in ein Verzeichnis wählen
Voreinstellung ändern und als Installationspfad /dirinstall angeben
Paketauswahl anpassen- hier kontrollieren ob als kernel xen gewählt ist und zwar der, der zum System passt ( siehe Liste oben ). unbedingt ankreuzen, das beim ersten Start yast gestartet werden soll!! kein Kreuz bei Image erzeugen setzen.
Installation starten, Kaffee kochen, fernsehen oder anderweitig sinnvoll beschäftigen. Die Installation dauert........... Gelegentlich die Installation prüfen. Irgendwann wird yast meckern, dass die Kernelpakete nicht installiert werden können. Das ist auch gut so, denn angekreuzt werden müssen sie nur, um das System zu präparieren, werden später zur Funktion nicht gebaucht. Hier ignorieren wählen, damit die Restinstallation weitergeht. Ist die Susie fertig, yast beenden. Anschliessend einen Blick in das Verzeichnis /dirinstall werfen. Hier muss nun die bekannte Festplattenstruktur nochmals auftauchen, wie beim Original.
Letzte Vorbereitung - Grub präparieren:
Die Susie war recht nett und hat uns schon fast alle Einträge bei der Installation der Xenpakete selbst angelegt ( welch Komfort gegenüber anderen Linuxdistributionen). Eins sollte aber noch ergänzt werden und zwar die Speicheraufteilung des Arbeitsspeichers für unser echtes( dom0 ) und virtuelles System ( dom_U )
Gehen wir von 512 MB Gesamtspeicher aus. 256 MB braucht die Suse zu Verwaltung der dom0 selbst. So können wir max 256 MB der/den virtuellen Maschinen zuweisen, abzüglich eines Overheads von 64 MB, ergibt 192 MB effektiv ( dazu später mehr ).
tippe ein:
mcedit /boot/grub/menu.lst
Suche nach diesen Zeilen:
Title --XEN SuSE Linux 10.1
root (hda 0,0) kernel /xen.gz dom0_mem=256M
Füge das Fettgedruckte hinzu. Beachte, das dom0 die Ziffer null ist und nicht der Buchstabe O. Mit F2 die Änderung speichern und mit F10 den Editor schliessen.
ENDE TEIL 1
« Letzte Änderung: 15.10.06, 23:20:11 von Dr. SuSE »
Datei wieder mit F2 speichern Editor mit F10 verlassen.
Image zum ersten Start vorbereiten:
Damit wir nicht alles tippen müssen erzeugen wir uns ein Sript was alle Dinge automatisch macht.
Geht so:
cd /xenimage ENTER
touch imageprep.sh ENTET chmod 0777 imageprep.sh ENTER
mcedit /xenimageImaheprep ENTER
Füge folgenden Inhalt ein:
Code:
#!/bin/bash mount -o loop /xenimage/xen1.img /dirinstall cd / cd /dirinstall cp /boot/*xen* ./boot cp -ax /lib/modules/2.6.16.21-0.25-xen /dirinstall/lib/modules/ echo "/dev/hda1 / reiserfs defaults 1 1" > ./etc/fstab rm -f ./etc/mtab sed -ie "s/^[2-6]:/#\\0/" ./etc/inittab cp /etc/passwd /etc/shadow ./etc cp /etc/ssh/sshd_config ./etc/ssh/sshd_config cd / umount /dirinstall
Dieses kleine Script kopiert die fehlenden Kernelteile für XEN von unserer OrignalSuse in die virtuelle Umgebung, inkl. Passwortdateien und Anpassung von fstab und ssh, damit man sich per ssh auch mit den gewohnten Passwörtern einloggen kann. Es sollte keine Fehlermeldung ausgegeben werden. Der Vorgang dauert einige Minuten. Eine Bestätigung, dass es geklappt hat ist der sich wiedermeldene Prompt.
Nun kann es losgehen.
Erster start der virtuellen Maschine:
xm create -c /etc/xen/vm/xen1 ENTER
Die (virtuelle) Susie startet nun im Textmodus und aktiviert yast. Hier keine Panik walten lassen, die Chance das yast startet um die Umgebung zu konfigurieren hat man nur einmal! Hier die Netzwerkkarte konfigurieren und dabei die gleichen Werte verwenden wie sie im Startscript xen1 in /etc/xen/vm/xen1 stehen und zwar für die Subnetmask, Ip-Adresse und Hostname. Ist yast durchgelaufen hat man eine vollwertige neue Linuxumgebung die sich per Konsole konfigurieren lässt. Aber auch die grafische Umgebung funktioniert und zwar per vnc, von jedem Rechner im Netzwerk aus, auf dem tightvnc installiert ist. Kann auch eine Windowsmaschine sein.
Viel Spass
PS.: Die Anleitung ist eng an das englische SuSE Original angelehnt und weicht nur in wenigen Punkten ab ( Erzeugung des Festplattenimages, Datenpfade ). Wer es im Orginal lesen möchte, klickt hier.