My domain0 and two further domains work fine.Also the network connections do what i want to (by using bridge such you did explain - thanks).
Only the halt and shutdown commands makes me sleepless nowIf i execute the command "halt -p" in the new domains and wait till the last message,
nothing happens until i press the enter button. Then i get this output: on the screen ************************ REMOTE CONSOLE EXITED ************************ (54, 'Connection reset by peer') Error: Error connecting to xend, is xend running? $ I press the enter key again and next i get this: Traceback (most recent call last): File "/usr/pkg/sbin/xm", line 9, in ? main.main(sys.argv)File "/usr/pkg/lib/python2.3/site-packages/xen/xm/main.py", line 808, in main
$ xm.main(args)File "/usr/pkg/lib/python2.3/site-packages/xen/xm/main.py", line 106, in main
self.main_call(args)File "/usr/pkg/lib/python2.3/site-packages/xen/xm/main.py", line 124, in main_
call p.main(args[1:])File "/usr/pkg/lib/python2.3/site-packages/xen/xm/main.py", line 259, in main
create.main(args)File "/usr/pkg/lib/python2.3/site-packages/xen/xm/create.py", line 476, in mai
n console_client.connect('localhost', console)File "/usr/pkg/lib/python2.3/site-packages/xen/util/console_client.py", line 8
6, in connect __send_to_sock(sock)File "/usr/pkg/lib/python2.3/site-packages/xen/util/console_client.py", line 4
4, in __send_to_sock data = os.read(0,1024) OSError: [Errno 5] Input/output errorNow i get the command prompt i want. But also xend seem to be stop while the error above. If i try to execute the command "xm shutdown -H dom1" from doamin0 nothing happen.
I found your mail (http://mail-index.netbsd.org/source-changes/2005/04/18/0022.html) but i don't know how this can help me. What do i have to do exactly to update to this changes?
Because of my problems i thought it is a god idea to translate the NetBSD/xen-Howto into german. You will find it as an attachement. If you like to you can publish it on the netbsd homepage. Maybe it could be helpfull for other german speaking user who have problems to understand something in the english documentation because here or his english is as god as mine ;-) Title: deutsche Übersetzung der NetBSD/xen Howto
NetBSD/xen HowtoEinleitungXen ist ein VM-Monitor für x86 (läuft nur auf i686-class CPUs), der den Einsatz verschiedenster Gast-Betriebssysteme auf einem einzelnen Computer unterstützt. Gast-Betriebssysteme (so genannte "domains") benötigen einen angepassten Kernel, welcher Xen hypercalls für die Verbindung zur Hardware unterstützt. Der Xen-Kernel wird beim booten (via grub) des Gastbetriebssystems der ersten domain (domain0 genannt) geladen. Die domain0 besitzt Privilegien um die Hardware (PCI- und ISA-Geräte) zugänglich zu machen, andere domains zu administrieren und virtuelle Geräte (Festplatten und Netzwerk) anderen domains zur Verfügung zu stellen. Für mehr Details siehe http://www.cl.cam.ac.uk/Research/SRG/netos/xen/. NetBSD kann sowohl für das Gastbetriebssystem domain0 als auch für andere, unprivilegierte domains verwendet werden. (tatsächlich kann es mehrere privilegierte domains geben die unterschiedliche Teile der Hardware, den unpreviligierten domains als virtuelle Geräte zur Verfügung stellen. Wir sprechen nur über den Fall einer privilegierten domain, und zwar der domain0). Diese domain0 sieht physikalische Geräte ganz wie ein regulärer i386-Kernel und besitzt die physikalische Konsole (VGA oder Seriell). Unprivilegierte domains sehen nur eine character-only virtuelle Konsole, virtuelle Festplatten (xbd) und virtuelle Netzwerkschnittstellen (xennet) bereitgestellt durch eine privilegierte domain (normalerweise domain0). xbd-geräte werden an physikalische Block-Gerät (eine Partition einer Festplatte, Raid, ccd,... Geräte) in den privilegierten domains verbunden. NetBSD-Installation als domain0Zuerst installiere NetBSD/i386-current oder -3.0_BETA wie sonst auch.
Die nächsten Schritte sind die Installation von sysutils/xentools20 und sysutils/grub Pakete. Grub wird für das Laden der xen und domain0 Kernel benötigt; xentools20 enthält Dienstprogramme für die xen-Steuerung der domain0. Danach wird der Xen 2.0 Kernel selbst benötigt. Man erhält einen der unterstützten binaries von http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html (lade die Datei xen-2.0.x-install.tgz herunter). Entpacke hieraus die Datei xen.gz und kopiere sie in das root-Dateisystem. Anschliessend installiere Grub um den xen.gz-Kernel, ebenso wie den NetBSD-domain0-Kernel, als Modul laden zu können. In der Grub-Konfiguration wird unter anderem definiert wieviel Speicher domain0 zugewiesen wird, welche Konsole verwendet wird, etc ... Im folgenden wird ein Beispiel der Grub-Konfiguration (/grub/menu.lst) dargestellt:
Unprivilegierte domains erstellenNachdem domain0 läuft starte den xentool-Dienst (/usr/pkg/sbin/xend start). Stelle sicher, dass die Dateien /dev/xencons und /dev/xenevt existieren bevor xend gestartet wird. Diese Dateien können mit folgendem Befehl erstellt werden:
xend protokolliert nach /var/log/xend.log und /var/log/xend-debug.log.
Die gesammte Kommunikation zwischen xend und xm findet über TCP-Sockets statt. Hierbei hört xend auf die Ports 8000, 8001 und 8002. Jeder könnte xen über diese Ports steuern daher wird empfohlen diese Ports unter domain0 dahingehend zu filtern (verwende IPF oder PF), dass nur von 127.0.0.1 und in der Berechtigung eingeschränkte Anwender sich bei der domain0 einloggen können. Der Befehl "xm create" ermöglicht das Erstellen einer neuen domain. Es wird hierbei eine Konfigurationsdatei aus /etc/xen/ verwendet. Beim Erstellen muss ein Kernel spezifiziert sein welcher in der neuen domain ausgeführt wird (Dieser Kernel liegt im Dateisystem von domain0 und nicht auf der virtuellen Festplatte der neuen domain). Ein anwendbarer Kernel wird als Teil von i386 binary sets bereit gestellt. Dieser Kernel hat die Bezeichnung XENU. Hier nun der Beispielinhalt der Datei /etc/xen/nbsd:
Wurde eine neue domain erstellt ruft xen für jede virtuelle Netzwerkkarte der domain0 ein script auf (/etc/xen/scripts/vif-bridge). Dieses Script kann verwendet werden um automatisch die xvif?.?-Schnittstelle der domain0 zu konfigurieren. In diesem Beispiel bezieht diese Schnittstelle eine IP (domain0 unterstützt dann routing und NAT für Internet-Zugang via IPF). Hier eine anwendbare /etc/xen/scripts/vif-bridge:
Das Ausführen des folgenden Befehls sollte eine domain erstellen und hierin den, in der Konfigurationsdatei /etc/xen/nbsd definierten, NetBSD-kernel laden:
(Hinweis: -c weist xm an eine Verbindung zur Konsole einer domain aufzubauen nachdem diese erstellt wurde)
Wenn NetBSD anhand eines CDROM-Images installiert werden soll, müssen in /etc/xen/nbsd die folgenden Zeilen enthalten sein:
Nach dem booten der domain sollte der Gerätename des CD/DVD-ROM nach xbd1d geändert worden sein sofern die Option zur Installation via CD/DVD-ROM übernommen wurde. Anschliessend führe halt -p in der neuen domain aus (kein reboot oder halt. INSTALL_XENU wird jedesmal neu geladen bis die Konfigurationsdatei wieder angepasst wurde), wechsel zurück zum XENU-Kernel in der Konfigurationsdatei /etc/xen/nbsd und starte die neue domain erneut. Nun sollte es möglich sein root unter xbd0a zu verwenden und du hast ein zweites, funktionsfähiges NetBSD/i386-System unter deiner xen-Installation. Während des boot-Vorgang der neuen domain sieht man einige Warnungen hinsichtlich wscons und der pseude-terminals, dies kann korrigiert werden indem die Dateien /etc/ttys und /etc/wscons.conf editiert werden. Es müssen alle terminals, bis auf die Konsole, in /etc/ttys wie folgt deaktivieren:
Abschliessend müssen alle Screens in der Datei /etc/wscons.conf auskommentiert werden.
Hierdurch wird die domain korrekt herunter gefahren wenn "xm shudown -R" oder "xm shutdown -H" unter domain0 verwendet wird. Erstellen von unprevilegierten Linux domainsDas Erstellen von unprevilegierten Linux domains ist nicht wesentlich unterschiedlich zu unprevilegierten NetBSD domains, aber es gibt einige Dinge die man wissen sollte. Zu allererst der zweite Parameter bezüglich der Festplatte (die "wd0d" im unten stehenden Beispiel) ist bezogen auf Linux:
Erwartet wird hier einen Linux-Gerätenamen (z.B. hda1). Die xen-tools suchen diesen Namen im Verzeichnis /dev/ der domain0 um die Geräte-Nummer zu erhalten. Glücklichwerweise ist es möglich diesen Namen durch die Geräte-Nummer im hex-Format anzugeben. Linux erstellt Geräte-Nummern als: (major <<8 + minor). Somit hat hda1, mit major 3 und minor 1 auf Linux-Systemen, die Geräte-Nummer 0x301. Um eine Partition für einen Linux-Gastsystem zu exportieren können wir folgendes anwenden:
wodurch es als /dev/hda1 auf dem System Linux erscheint und als root-Partition verwendet wird. Ein virtuelles Block-Gerät in der Linux domain kann nicht partitioniert werden wie in einer NetBSD domain. Das bedeutet, dass jede Partition, welche unter Linux verfügbar sein soll, von domain0-System exportiert werden muss. Normalerweise werden 2 benötigt (/ und swap) dadurch ergibt sich ein ähnlicher Eintrag in der Konfigurationsdatei wie:
Hierbei wird hda1 zu root und hda2 zu swap. Um Linux auf die Partition der Gast-domain zu installieren kann die folgende Methode verwendet werden: install sysutils/e2fsprogs from pkgsrc. Um die Root-Partition der Linux-domain zu formatiern verwende mke2fs und mounte es dann. Anschliessend kopiere die Dateien eines funktionierenden Linux-Systems, führe Anpassungen in etc (fstab, Netzerk-Konfiguration) durch. Es sollte ebenso möglich sein binary Packages wie .rpm oder .deb direkt zur gemounteten Partition zu extrahiert, unter Verwendung des passenden Tools, als NetBSD's Linux-Emulation laufen zu lassen. Nachdem das Dateisystem bekannt gemacht wurde unmounte es. Wenn gewünscht kann das Dateisystem unter Verwendung von "tune2fs -j" zu ext3 konvertiert werden. Es sollte nun möglich sein die Linux-Gast-domain zu booten wenn einer der vmlinuz-*-xenU Kernel aus der Xen binary distribution verwendet werden. Hinweis des Übersetzers:Dieser Text ist eine Übersetzung des englischen Original NetBSD/xen-Howto. Weder die Entwickler von NetBSD noch von xen sind verantwortlich für die Übersetzung welche ich hier angerichtet habe. Sollten sich also aufgrund der Übersetzung inhaltliche Fehler eingeschlichen haben sendet bitte eine Mail an mich damit ich dies korrigieren kann. Erstellt am: 17.05.2005 - 20:40letzte Änderung: 20.05.2005 - 21:20 |