qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Xen mit BSD als Dom0,HVM, NetBSD

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Xen/ BSD als Dom0]])

<<<|###| >>> | English


Xen mit dem Gast-System ReactOS.
Xen mit dem Gast-System ReactOS.
Xen und libvirtDer Virt Manager.
Xen und libvirt
Der Virt Manager.

Inhaltsverzeichnis

[bearbeiten] Xen mit BSD als Dom0

[bearbeiten] Xen mit NetBSD 5.1 (x86 64-Bit) als Dom0

Website: http://www.netbsd.org

[bearbeiten] Installation

NetBSD ist ein Unix der BSD-Familie und wird unter der BSD-Lizenz frei vertrieben. NetBSD ist aufgrund seiner guten Portierbarkeit auf nahezu jedem Computer einsetzbar: Auf Servern, Workstations, Desktop-PCs, Notebooks, PDAs und auf Embedded-Systemen. Da per Default bei NetBSD alle Dienste deaktiviert sind, muss man für einen Remote-Zugang den SSH-Daemon starten. Eine dauerhafte Aktivierung wird durch den Eintrag sshd=YES in der Datei /etc/defaults/rc.conf konfiguriert. Per Default ist der root-Zugang per SSH nicht erlaubt. Für ein Test-System kann in der Datei /etc/ssh/sshd_config die Zeile PermitRootLogin yes eingetragen werden.

Host ~# /etc/rc.d/sshd start

Software wird für NetBSD in Package Source (Pkgsrc) angeboten. Falls nicht geschehen, muss das Package Source-Systems installiert werden. Hier wird vereinfacht der Download der Pakete des Current-Branches als tar-Archiv beschrieben. Das Package-System kann auch mit dem Software Update Protocol (SUP) oder mit dem Concurrent Versions System (CVS) heruntergeladen und aktuell gehalten werden.

Host ~# cd /usr
Host ~# ftp ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.gz
Host ~# tar xzvf pkgsrc.tar.gz

Für die Paravirtualisierung wird folgende Software benötigt:

Host ~# cd /usr/pkgsrc/sysutils/grub
Host ~# make install clean
Host ~# cd /usr/pkgsrc/sysutils/xentools3
Host ~# make install clean

Es wird ermittelt, ob die Prozessoren die Full Virtualization unterstützen.

Host ~# cpuctl identify 0 | egrep '(VMX|SVM|HVM)' 
cpu0: features2 0xe3bd<SSE3,DTES64,MONITOR,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>

Erfolgte eine Ausgabe, so wird die Software für die Full Virtualization installiert.

Host ~# cd /usr/pkgsrc/sysutils/xentools3-hvm
Host ~# make install clean
Host ~# ls -l /usr/pkg/libexec/qemu-dm

Es ist zu empfehlen zusätzlich QEMU zu installieren.

Host ~# cd /usr/pkgsrc/emulators/qemu
Host ~# make install clean

Man installiert den Xen-Kernel.

Host ~# cd /usr/pkgsrc/sysutils/xenkernel3
Host ~# make install clean

Der Xen-Kernel xen.gz ist in das Wurzel-Verzeichnis zu kopieren und zu entpacken.

Host ~# cp /usr/pkg/xen3-kernel/xen.gz /
Host ~# gunzip /xen.gz

Der Kernel für die Dom0 ist zu installieren.

Host ~# cd /
Host ~# ftp    \
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-5.1/amd64/binary/kernel/netbsd-XEN3_DOM0.gz
Host ~# gunzip netbsd-XEN3_DOM0.gz

Die Xen-Devices werden angelegt.

Host ~# cd /dev && sh MAKEDEV xen
Host ~# ls -l /dev/xen*
crw-------  1 root  wheel  143, 0 Aug 12 07:41 /dev/xencons
crw-------  1 root  wheel  141, 0 Aug 12 07:41 /dev/xenevt

In der Datei /etc/ifconfig.bridge0 wird die Bridge konfiguriert. Das Device msk0 ist bei Bedarf anzupassen.

# /etc/ifconfig.bridge0
create
!brconfig $int add msk0 up

Die Datei /grub/menu.lst ist mit folgenden Inhalt anzulegen. Eventuell müssen die Devices angepasst werden. Wenn die Grub-Konfiguration fehlgeschlagen ist, lässt sich mit dem zweiten Eintrag NetBSD per chainloader booten.

# /grub/menu.lst
default=0
timeout=10
title Xen 3.0 / NetBSD (grub)
  root   (hd0,0)
  kernel (hd0,a)/xen dom0_mem=131072
  module (hd0,a)/netbsd-XEN3_DOM0 root=wd0a ro console=tty0
  # module (hd0,a)/netbsd-XEN3_DOM0 bootdev=wd0a ro console=tty0
title NetBSD (chainloader)
  root        (hd0,0)
  chainloader +1

Der Boot-Manager grub wird installiert.

Host ~# grub-install '(hd0)' 

Das System ist neu zu starten.

Host ~# reboot

Nach dem Neustart überprüft man, ob der Xen-Kernel geladen und die Loop-Devices (/etc/modules) angelegt wurden.

Dom0 ~# uname -a
... NetBSD 5.1 (XEN3_DOM0) ...
Dom0 ~# ls -l /dev/xen*
crw-------  1 root  wheel  143, 0 Aug 12 07:41 /dev/xencons
crw-------  1 root  wheel  141, 0 Aug 12 07:41 /dev/xenevt

Man ist in der privilegierten virtuellen Maschine Dom0 eingeloggt. Bei Problemen ist wieder NetBSD ohne Xen zu booten und die Log-Dateien (/var/log/xen*) zu studieren. In der Datei /etc/rc.conf sind folgende Zeilen einzufügen:

xend=YES
xenbackendd=YES
# xendomains=YES

Die Xen-Daemons sind zu starten.

Dom0 ~# /usr/pkg/share/examples/rc.d/xend start
Dom0 ~# /usr/pkg/share/examples/rc.d/xenbackendd start

Man überprüft die Xen-Dienste. Dazu lässt man sich mit dem Xen Management User Interface (xm) und dessen Befehl info Informationen über den Xen-Host anzeigen.

Dom0 ~# xm info
host                   : mein-pc
release                : 5.1
version                : NetBSD 5.1 (XEN3_DOM0) ...
machine                : amd64
nr_cpus                : 4
nr_nodes               : 1
sockets_per_node       : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 2404
hw_caps                : bfebfbff:20000800:00000000:00000140:0000e3bd:00000000:00000001
total_memory           : 2047
free_memory            : 1876
xen_major              : 3
xen_minor              : 1
xen_extra              : .4
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.3 20080704 prerelease (NetBSD nb2 20081120)
cc_compile_by          : root
cc_compile_domain      : 
cc_compile_date        : Fri Aug 12 11:41:33 CEST 2011
xend_config_format     : 4

Konfiguriert wird xend mit der Datei /usr/pkg/etc/xen/xend-config.sxp.

# /usr/pkg/etc/xen/xend-config.sxp
(xend-relocation-server yes)
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 196)
(dom0-cpus 0)
(vncpasswd )

Die Daemons xenbackendd, xend und xendomains sollen aktiviert werden.

Dom0 ~# cp /usr/pkg/share/examples/rc.d/xen* /etc/rc.d/

Das System ist neu zu starten.

Dom0 ~# reboot

Man testet die laufenden Xen-Domains mit dem Befehl xm list.

Dom0 ~# xm list
Name                ID   Mem VCPUs      State   Time(s)
Domain-0             0   128     1     r-----      7.2
[bearbeiten] Anlegen von paravirtualisierten Gast-Systemen
[bearbeiten] NetBSD 5.1 (64-Bit) als DomU

Es ist das Verzeichnis für die virtuellen Maschinen anzulegen. Für jede virtuelle Maschine wird dort ein Unterverzeichnis generiert.

Dom0 ~# mkdir -p /home/xen/domains

Man benötigt einen DomU-Kernel für den Betrieb der NetBSD-Gast-Systeme. Zum Installieren von NetBSD wird der Kernel netbsd-INSTALL_XEN3_DOMU.gz benötigt.

Dom0 ~# cd /home/xen
Dom0 ~# ftp    \
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-5.1/amd64/binary/kernel/netbsd-XEN3_DOMU.gz
Dom0 ~# ftp    \
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-5.1/amd64/binary/kernel/netbsd-INSTALL_XEN3_DOMU.gz
Dom0 ~# gunzip *.gz

Es ist zu empfehlen für jede DomU ein Unterverzeichnis anzulegen. In diesem Beispiel soll die DomU den Namen vm1.beispiel.de tragen. In dem Unterverzeichnis ist ein Image zu generieren.

Dom0 ~# mkdir -p /home/xen/domains/vm1.beispiel.de
Dom0 ~# cd /home/xen/domains/vm1.beispiel.de
Dom0 ~# dd if=/dev/zero of=disk.img bs=1024k count=4096

Die Konfigurationsdatei /usr/pkg/etc/xen/vm1.beispiel.de.cfg wird mit folgendem Inhalt angelegt.

# /usr/pkg/etc/xen/vm1.beispiel.de.cfg
kernel = "/home/xen/netbsd-INSTALL_XEN3_DOMU"
#kernel = "/home/xen/netbsd-XEN3_DOMU"
memory = 128
name = "vm1.beispiel.de.cfg"
vcpus = 1
nics = 1
vif = [ 'mac=aa:00:00:50:02:f1, bridge=bridge0' ]
disk = [ 'file:/home/xen/domains/vm1.beispiel.de/disk.img,0x01,w' ]
root = "xbd0"

In der Datei /usr/pkg/etc/xen/vif-bridge wird die Bridge für die DomU konfiguriert. Das Device msk0 ist bei Bedarf anzupassen.

# /usr/pkg/etc/xen/vif-bridge
create
!brconfig $int add msk0 up

Zum Start der virtuellen Maschine muss man mit xm create eine Domain anlegen. Durch die Option -c wird man direkt mit der Konsole der neuen DomU verbunden. Es erscheinen die Dialoge von sysinst zur Installation von NetBSD.

Dom0 ~# xm create -c /usr/pkg/etc/xen/vm1.beispiel.de.cfg
Welcome to sysinst, the NetBSD-5.1 system installation tool.  This
menu-driven tool is designed to help you install NetBSD to a hard disk, or
upgrade an existing NetBSD system, with a minimum of work.
In the following menus type the reference letter (a, b, c, ...) to select an
item, or type CTRL+N/CTRL+P to select the next/previous item.
The arrow keys and Page-up/Page-down may also work.
Activate the current selection from the menu by typing the enter key.

        ┌─────────────────────────────────────────────┐
        │>a: Installation messages in English         │
        │ b: Messages d'installation en francais      │
        │ c: Installation auf Deutsch                 │
        │ d: Komunikaty instalacyjne w jezyku polskim │
        │ e: Mensajes de instalacion en castellano    │
        └─────────────────────────────────────────────┘

Auf einer anderen Konsole listet der Befehl xm list die virtuelle Maschine auf.

Dom0 ~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   128     1     r-----     76.7
vm1.beispiel.de.cfg                          8   128     1     -b----      6.5

Nach der Installation ist das Gast-System herunter zu fahren.

Gast ~# halt -p

Beim Befehl xm list darf diese DomU nicht mehr aufgelistet werden.

Dom0 ~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   128     1     r-----     42.9

In der Datei /usr/pkg/etc/xen/vm1.beispiel.de.cfg ist der Kernel netbsd-XEN3_DOMU zu aktivieren.

# /usr/pkg/etc/xen/vm1.beispiel.de.cfg
#kernel = "/home/xen/netbsd-INSTALL_XEN3_DOMU''
kernel = "/home/xen/netbsd-XEN3_DOMU"
...

Die DomainU wird wieder gestartet.

Dom0 ~# xm create -c /usr/pkg/etc/xen/vm1.beispiel.de.cfg
...
login: root
Password: *****
Gast ~# uname -a
... NetBSD 5.1 (XEN3_DOMU) ...

Auf einer anderen Konsole wird mit dem Befehl xm shutdown die virtuelle Maschine herunter gefahren.

Dom0 ~# xm shutdown vm1.beispiel.de.cfg
[bearbeiten] Anlegen von vollvirtualisierten Gast-Systemen (HVM)
[bearbeiten] TinyCore Live-CD als DomU

Tiny Core Linux (http://tinycorelinux.com) ist eine 11 MByte große Linux-Distribution (Live-CD). Im ersten Schritt wird ein Verzeichnis für die ISO-Images angelegt. Von der Website ist das Image der Live-CD in dieses Verzeichnis herunterzuladen.

Dom0 ~# mkdir -p /home/iso-images/

Die Konfigurationsdatei /usr/pkg/etc/xen/tinycore.beispiel.de.cfg wird mit folgendem Inhalt angelegt.

# /usr/pkg/etc/xen/tinycore.beispiel.de.cfg
kernel       = '/usr/pkg/lib/xen/boot/hvmloader'
builder      = 'hvm'
memory       = '256'
device_model = '/usr/pkg/libexec/qemu-dm'
disk         = [ 'file:/home/iso-images/tinycore-current.iso,ioemu:hdc:cdrom,r' ]
name         = 'tinycore.beispiel.de'
vif          = [ 'mac=aa:00:00:50:02:f3, bridge=bridge0' ]
boot         = 'd'
sdl          = 1

Zum Start der virtuellen Maschine muss man mit xm create eine Domain anlegen.

Dom0 ~# xm create /usr/pkg/etc/xen/tinycore.beispiel.de.cfg

Bei Problemen hilft die Ausgabe des Befehls xm dmesg weiter. Bedingt durch die Zeile sdl = 1 startet der virtuelle PC mit der Live-CD in einem Fenster. Dieses Fenster fängt den Maus-Kursor. Mit der Tastenkombination [Strg]+[Alt] löst sich der Maus-Zeiger wieder.

Dom0 ~# xm list
Name                           ID   Mem VCPUs      State   Time(s)
Domain-0                        0   128     1     r-----    203.5
tinycore.beispiel.de           20   256     1     r-----      1.7

Zu beachten ist, das bei der Full Virtualization der Befehl xm shutdown das Gast-System nicht sauber herunter fahren kann. Zum Herunterfahren muss man sich im Gast-System einloggen und dort den Shutdown einleiten. Ist das Gast-System heruntergefahren, ist der Befehl xm shutdown anzuwenden.

[bearbeiten] ReactOS als DomU

Für dieses Beispiel wurde das Betriebssystem ReactOS (http://www.reactos.org/de/) als Gast­-System ausgewählt. Mit diesen Schritten lassen sich auch MS Windows-Versionen und andere Betriebssysteme installieren. Im ersten Schritt wird ein Verzeichnis für die ISO-Images angelegt. Von der ReactOS-Website ist das Image der Installations-CD herunterzuladen und zu entpacken.

Dom0 ~# mkdir -p /home/iso-images/
Dom0 ~# cd /home/iso-images/
Dom0 ~# unzip ReactOS*-iso.zip

Für die virtuelle Maschine ist ein Verzeichnis anzulegen. In diesem Verzeichnis ist eine virtuelle Festplatte zu generieren.

Dom0 ~# mkdir -p /home/xen/domains/reactos1.beispiel.de
Dom0 ~# cd /home/xen/domains/reactos1.beispiel.de
Dom0 ~# dd if=/dev/zero of=disk.img bs=1024k count=4096

Die Konfigurationsdatei /usr/pkg/etc/xen/reactos1.beispiel.de.cfg wird mit folgendem Inhalt angelegt.

# /usr/pkg/etc/xen/reactos1.beispiel.de.cfg
kernel       = '/usr/pkg/lib/xen/boot/hvmloader'
builder      = 'hvm'
memory       = '256'
device_model = '/usr/pkg/libexec/qemu-dm'
disk         = [
                 'file:/home/xen/domains/reactos1.beispiel.de/disk.img,0x01,w',
                 'file:/home/iso-images/ReactOS.iso,ioemu:hdc:cdrom,r'
               ]
name         = 'reactos1.beispiel.de'
vif          = [ 'mac=aa:00:00:50:02:f2, bridge=bridge0', type=ioemu' ]
boot         = 'd'
sdl          = 1
usb          = 1
usbdevice    = "tablet"

Zum Start der virtuellen Maschine muss man mit xm create eine Domain anlegen.

Dom0 ~# xm create /usr/pkg/etc/xen/reactos1.beispiel.de.cfg

Bei Problemen hilft die Ausgabe des Befehls xm dmesg weiter. Bedingt durch die Zeile sdl = 1 startet der virtuelle PC in einem Fenster. Dieses Fenster fängt den Maus-Kursor. Mit der Tastenkombination [Strg]+[Alt] löst sich der Maus-Zeiger wieder. Die Installation von ReactOS wird durch Klicken in das Fenster und das Betätigen einer beliebigen Taste begonnen. Zuerst wird die deutsche Tastatur ausgewählt. Danach wird die virtuelle Festplatte partitioniert und formatiert. Das Zielverzeichnis für die Installation der ReactOS-Dateien braucht nicht geändert zu werden. Im Anschluss wird der Bootloader installiert, wobei die vorgegebene Option Install bootloader on the harddisk (mbr) gilt. Danach muss die virtuelle Maschine neu gestartet werden und die Installation wird grafisch weitergeführt. Nach der Installation ist die virtuelle Maschine herunter zu fahren und die virtuelle CD aus der Konfigurationsdatei zu entfernen.

# /etc/xen/reactos1.beispiel.de.cfg
kernel       = '/usr/lib/xen-4.0/boot/hvmloader'
builder      = 'hvm'
memory       = '256'
device_model = '/usr/lib/xen-4.0/bin/qemu-dm'
disk         = [ 
                 'file:/home/xen/domains/reactos1.beispiel.de/disk.img,ioemu:hda,w'
               ]
name         = 'reactos1.beispiel.de'
vif          = ['type=ioemu,mac=00:16:3E:7F:6F:91,bridge=eth0']
sdl          = 1

Zu beachten ist, das bei der Full Virtualization der Befehl xm shutdown das Gast-System nicht sauber herunter fahren kann. Zum Herunterfahren muss man sich im Gast-System einloggen und dort den Shutdown einleiten. Ist das Gast-System heruntergefahren, ist der Befehl xm shutdown anzuwenden.

Damit ein Zugriff von einem anderen Rechner erfolgen kann, ist sdl zu deaktivieren und mit vnc=1 der in QEMU integrierte VNC-Server zu aktivieren (siehe http://qemu-buch.de/d/Netzwerkoptionen/_Netzwerkdienste#VNC).

# /etc/xen/reactos1.beispiel.de.cfg
...
sdl          = 0
vnc          = 1
vncdisplay   = 5
vnclisten    = '0.0.0.0'
vncpasswd    = 'geheim'

Die Verbindung erfolgt mit einem VNC-Client, zum Beispiel virt-viewer, vinagre oder xtightvncviewer. Die VNC-Adresse ergibt sich aus der IP-Adresse der Dom0, einem Doppelpunkt und dem Wert von vncdisplay. Mit vnclisten = '0.0.0.0' erlaubt man Verbindungen von allen IP-Adressen. Ein geringe Sicherheit bietet ein Passwort (vncpasswd). Sicherer ist die Verwendung von Zertifikaten. In diesem Beispiel hat die Dom0 die IP-Adresse 172.16.1.10.

Host ~$ sudo apt-get install vinagre
Host ~$ vinagre 172.16.1.10:5

Ist das Gast-System hochgefahren und das Netzwerk funktioniert, kann man sich mit den Verbindungsprotokollen, die vom Gast-System unterstützt werden, direkt einloggen. Zum Beispiel mit rdekstop bei MS Windows und ssh bei Unix/Linux.

Bei der Full Virtualization enthalten die Images, wie bei QEMU üblich, eine komplette virtuelle Festplatte mit Partitionierungstabelle.

Dom0 ~# fdisk -lu /home/xen/domains/reactos1.beispiel.de/disk.img
Disk /home/xen/domains/reactos1.beispiel.de/disk.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9b0d26e7
Device Boot      Start         End      Blocks   Id  System
disk.img1   *          63     8385929     4192933+   b  W95 FAT32

Diese Images lassen sich auch von dem originalen QEMU verwenden.

Dom0 ~# qemu-system-x86_64 -hda /home/xen/domains/reactos1.beispiel.de/disk.img

[bearbeiten] libvirt

Die Bibliothek libvirt dient als Grundlage für das Verwalten von virtuellen Maschinen.

Host ~# cd /usr/pkgsrc/sysutils/libvirt
Host ~# make install clean

In der Datei /usr/pkg/etc/xen/xend-config.sxp ist die Zeile (xend-unix-server yes) anzufügen. Dadurch wird der Xen-Treiber aktiviert (http://libvirt.org/drvxen.html).

# /usr/pkg/etc/xen/xend-config.sxp
...
(xend-unix-server yes)

Anschließend ist der Rechner neu zu starten.

Dom0 ~# reboot

Getestet wird die Installation mit folgenden Befehl.

Dom0 ~# virsh version

Eine ausführliche Beschreibung findet man unter der URL http://qemu-buch.de/d/Managementtools/_libvirt-Tools. Eine Befehlsübersicht ist unter der URL http://qemu-buch.de/d/Anhang/_libvirt aufgelistet.

[bearbeiten] Links

<<<|###| >>>

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Xen/_BSD_als_Dom0

Diese Seite wurde bisher 8.616 mal abgerufen. Diese Seite wurde zuletzt am 23. November 2011 um 18:38 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …