FreeBSD/Xen - Anleitung für eine Testinstallation (DE)
Aus Xen-Forum-Wiki
Artikel-Lizenz
Dies ist die deutsche Übersetzung des FreeBSD/Xen-howto von Yuan, Jue.
Das Originaldokument und diese Übersetzung stehen unter der BSD-Lizenz.
Diese Übersetzung wurde zunächst im xen-forum.net Wiki veröffentlicht und nun auch im BSDForen.de-Wiki für die BSD-Community bereitgestellt.
Hinweis:
Das hier vorgestellte Vorgehen dokumentiert ein Testszenario und könnte für eine Produktivumgebung unbrauchbar sein. Derzeit wird lediglich FreeBSD/i386 unterstützt. Die dom0-Unterstützung befinde sich noch in der Entwicklung. Bleiben Sie am Ball :-)
Das hier beschriebene Vorgehen wurde von Jue Yuan unter Kubuntu 6.0.6 LTS getestet, wobei der Kernel in der Version 2.6.15-23 verwendet wurde. Die Xen Version war 3.0.2-2.
Installation von FreeBSD als domU
Es werden diverse Dateien benötigt um FreeBSD als Gastsystem zu installieren: Kernel (freebsd-XENU_INSTALL & freebsd-XENU), Konfigurationsdatei (freebsd_xen_INSTALL) und selbstverständlich eine Image-Datei sofern die FreeBSD-domU in einer Datei statt auf einem Festplattenbereich installiert werden soll.
1. Wenn Sie ein Datei-unterstütztes System bevorzugen, sollten Sie zunächst eine Image-Datei erzeugen. Hierzu gehen Sie wie folgt vor:
dd if=/dev/zero of=freesd_xen_INSTALL.img bs=1024k count=1000
Dies erzeugt eine leere Image-Datei von 1GB. Passen Sie die Parametern Ihren Anforderungen an.
2. Stellen Sie sicher, dass sowohl Kernel- als auch Konfigurationsdatei sich im korrekten Verzeichnis befinden. Überlicherweise befindet sich die Konfigurationsdatei unter /etc/xen/vm und der Ablageort des Kernel ist in der Konfigurationsdatei definiert.
3. Zur Installation von FreeBSD als domU sollte sichergestell sein, dass die folgenden Zeilen in der Konfigurationsdatei enthalten sind:
kernel = "/Path/To/Kernel/freebsd-XENU_INSTALL" #kernel = "/Path/To/Kernel/freebsd-XENU" extra += ",vfs.root.mountfrom=ufs:/dev/md0" #extra += ",vfs.root.mountfrom=ufs:/dev/md0/xbd769s1a"
4. Nun kann mit der Installation begonnen werden indem der folgende Befehl ausgeführt wird:
xm create -c /Path/To/Config/freebsd_xen_INSTALL
Nach dem das Gastsystem bootet erscheint die Aufforderung eine Konsole auszuwählen um die Installation fortzusetzen. "2 ...................... VT100 or compatible terminal." ist die empfohlene Auswahl. Daraufhin erscheint das bekannte Sysinstall-Dialogmenü. Als erstes sollte an dieser Stelle die Versionsbezeichnung von 7.0-CURRENT zur tatsächlich zu installierenden geändert werden. Dies gilt solange Xen nicht zu 7.0-CURRENT portiert und kein entsprechender RELEASE-Kernel mit Xen-Unterstützung angeboten wird. Diese Anpassung kann unter dem Menüpunkt "Options" vorgenommen werden.
Hinweis: Die Installation könnte sich aufhängen während "Extracting base in / directory" wenn die Installation des 6.1-RELEASE ausgewählt wird. Das 6.0-RELEASE wurde hingegen in der Testumgebung unter Verwendung einer Image-Datei erfolgreich installiert. Entscheiden Sie selbst ob Sie 6.1-RELEASE testen wollen.
5. Nach der Auswahl der korrekten FreeBSD-Version fahren Sie mit der Installation nach dem bekannten Verfahren fort. Sobald der Dialog des FDISK-Partitionseditor erscheint werden Sie feststellen, dass Festplatten-Geometrie mit 0 Zylindern, 0 Köpfen und 0 Sektoren angezeigt wird, was 0 MB verfügbaren Plattenplatz zur Folge hat. Verwenden Sie "G" um die Festplatten-Geometrie manuell anzupassen. Eine Eingabe von Werten wie zum Beispiel "1000/1000/1000" sind ausreichend da Sysinstall feststellt, dass die eingegebene Geometrie unsinnig ist und eine brauchbare Festplatten-Geometrie vorschlägt die Sie annehmen bevor Sie fortfahren.
6. Eine FTP-basierte Installation wurde erfolgreich getestet. Andere Netzwerk-basierte Installationen sollten ebenso erfolgreich verlaufen. Wählen Sie Ihr bevorzugtes Installations-Medium und lassen Sie Sysinstall die Installation abschliessen.
7. Nach dem Installationsprozess wurde fast alles erledigt. Führen Sie jedoch nicht sofort einen Reboot aus, an dieser Stelle muss noch ein Trick angewendet werden. Im Hauptinstallationsmenü wechseln Sie zur "Configure"-Auswahl, wählen den "TTYs"-Eintrag und aktivieren "Yes" um /etc/ttys anzupassen. Was nun folgt ist einfach: Fügen Sie eine Zeile hinzu und deaktivieren Sie alle Zeilen mit ttyv.
Die modifizierte ttys Datei sollte anschliessend aus folgenden Inhalt bestehen:
xc0 "/usr/libexec/getty Pc" vt100 on secure #ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals #ttyv1 "/usr/libexec/getty Pc" cons25 on secure #ttyv2 "/usr/libexec/getty Pc" cons25 on secure #ttyv3 "/usr/libexec/getty Pc" cons25 on secure #ttyv4 "/usr/libexec/getty Pc" cons25 on secure #ttyv5 "/usr/libexec/getty Pc" cons25 on secure #ttyv6 "/usr/libexec/getty Pc" cons25 on secure #ttyv7 "/usr/libexec/getty Pc" cons25 on secure #ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
8. Abschliessend muss die Konfigurationsdatei für dieses Gastsystem angepasst werden um dieses neue Gastsystem zu booten ohne eine erneute Installation zu starten. Ändern Sie diese Konfigurationsdatei wie folgt:
#kernel = "/Path/To/Kernel/freebsd-XENU_INSTALL" kernel = "/Path/To/Kernel/freebsd-XENU" #extra += ",vfs.root.mountfrom=ufs:/dev/md0" extra += ",vfs.root.mountfrom=ufs:/dev/md0/xbd769s1a"
9. Ok. Nun können Sie dieses Gastsystem beruhigt rebooten in dem Sie entweder den Befehl "xm reboot <domainID>" in der dom0 ausführen oder einfach Sysinstall hierzu verwenden. Aber Sie können auch den Befehl "xm shutdown <domainID>" und anschliessend "xm create <domU-Konfig-Datei>" in der dom0 ausführen. Wenn Sie die Reboot-Option anwenden, verifizieren Sie die <domainID> nach dem Reboot indem Sie den Befehl "xm list" in der dom0 ausführen (normalerweise sollte der Wert um 1 höher sein als vor dem Reboot). Anhand des Befehls "xm console <domainID>", selbstverständlich wieder ausgeführt in der dom0, wechseln Sie auf die Konsole des brandneuen Gastsystems. Viel Spass damit. :-)
Vorhandenes FreeBSD in domU migrieren - P2V
Wenn Sie es vorziehen ein vorhandenes FreeBSD-System zu verwenden, statt einer Neuinstallation durchzuführen, erhalten Sie hier eine Anleitung zum hierzu notwendigen Vorgehen. Die Dateien die hierzu benötigt werden sind der Kernel (freebsd-XENU) und die Konfigurationsdatei (freebsd_xen).
In diesem Beispiel verwenden wir wieder ein Datei-unterstütztes System. Für eine Installation auf einem Festplattenbereich sind einige Anpassungen notwendig.
1. Erstellen Sie ein Image für ein Datei-unterstütztes System. Da hierin ein vorhandenes System integriert wird statt eine Installation durchzuführen, wird es nicht so einfach wie die Erzeugung einer leeren Image-Datei im Rahmen des domU-Installationsprozesses. Das Basisvorgehen für diesen neuen Fall stellt sich wie folgt dar:
- Erzeugen Sie ein Dateisystem in dem Image.
dd if=/dev/zero of=freesd_xen.img bs=1024k count=1000 mdconfig -a -t vnode -f freebsd_xen.img -u 0 bsdlabel -e md0 #Editieren von md0 um /(md0a) and swap(md0b) hinzuzufügen, abschliessend werden diese beiden für ein funktionierendes System benötigt newfs md0a
- Mounten Sie /dev/md0a und kopieren Sie die Daten von einem vorhanden System hierher. Hierzu empfiehlt sich die Verwendung der Tools "Dump" und "Restore".
2. Nach dem das Image erzeugt wurde wenden Sie einige Tricks an um eine Funktionsfähigkeit unter Xen zu erreichen.
- Passen Sie die Datei /etc/fstab wie folgt an:
# Device Mountpoint FStype Options Dump Pass# /dev/xbd769b none swap sw 0 0 /dev/xbd769a / ufs rw 1 1
Dies ist notwendig da Xen mit Begriffen wie ad0, ad0s1 oder ähnlichem nichts anfangen kann. Daher sollte Xen es nutzen wie Linux es vormacht.
- Passen Sie die Datei /etc/ttys an. Fügen Sie foglende Zeile hinzu und kommentieren Sie alle ttyv-Zeilen aus.
xc0 "/usr/libexec/getty Pc" vt100 on secure #ttyv0 "/usr/libexec/getty Pc" cons25 on secure ...
Die FreeBSD-Konsolenbezeichnung die Xen erkennen wird ist xc0.
- Passen Sie die Datei /etc/rc.conf an. Ändern Sie die Bezeichnung der Netzwerkkarte zu xn0 wie im folgenden Beispiel:
ifconfig_xn0="inet 192.168.1.103 netmask 255.255.255.0"
Die FreeBSD-Netzwerkkartenbezeichnung die Xen erkennen wird ist xn0.
