Index: head/de_DE.ISO8859-1/books/handbook/virtualization/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/virtualization/chapter.xml (revision 48929) +++ head/de_DE.ISO8859-1/books/handbook/virtualization/chapter.xml (revision 48930) @@ -1,1363 +1,1716 @@ Virtualisierung MurrayStokelyBeigetragen von + + + Allan + Jude + + bhyve Abschnitt beigetragen von + + + OliverPeterÜbersetzt von Übersicht Virtualisierungssoftware erlaubt es, mehrere Betriebssysteme gleichzeitig auf dem selben Computer laufen zu lassen. Derartige Softwaresysteme für PCs setzen in der Regel ein Host-Betriebssystem voraus, auf dem die Virtualisierungssoftware läuft und unterstützen eine nahezu beliebige Anzahl von Gast-Betriebssystemen. Nachdem Sie dieses Kapitel gelesen haben, Kennen Sie den Unterscheid zwischen einem Host-Betriebssystem und einem Gast-Betriebssystem. Können Sie &os; auf einem &intel;-basierenden &apple; &mac; installieren. Können Sie &os; unter µsoft.windows; und Virtual PC installieren. Wissen Sie, wie man ein virtualisiertes &os;-System für optimale Leistung konfiguriert. Bevor Sie dieses Kapitel lesen, sollten Sie Die Grundlagen von &unix; und &os; verstehen. Wissen, wie Sie &os; installieren können. Wissen, wie Sie eine Netzwerkverbindung konfigurieren. Wissen, wie Sie zusätzliche Software installieren können. &os; als Gast-Betriebssystem <application>Parallels</application> unter &macos; X Parallels Desktop für &mac; ist ein kommerzielles Softwareprodukt, welches für &intel;-basierende &apple; &mac;-Computer mit &macos; X 10.4.6 oder höher verfügbar ist. &os; wird von diesem Softwarepaket als Gast-Betriebssystem vollständig unterstützt. Nach der Installation von Parallels auf &macos; X konfigurieren Sie als erstes eine virtuelle Maschine, in der Sie danach das gewünschte Gast-Betriebssystem (in unserem Fall &os;) installieren. Installation von &os; unter Parallels/&macos; X Der erste Schritt bei der Installation von &os; unter Parallels ist es, eine virtuelle Maschine zu konfigurieren, in der Sie &os; installieren können. Dazu wählen Sie bei der Frage nach dem Guest OS Type &os; aus: Legen Sie geeignete Größen für Festplatten- und Arbeitsspeicher für die zu erstellende &os;-Instanz fest. 4 GB Plattenplatz sowie 512 MB RAM sind in der Regel für die Arbeit unter Parallels ausreichend: Wählen Sie den gewünschten Netzwerktyp aus und konfigurieren Sie Ihre Netzwerkverbindung: Speichern Sie Ihre Eingaben, um die Konfiguration abzuschließen: Nachdem Sie die virtuelle Maschine erstellt haben, installieren Sie im nächsten Schritt &os; in dieser virtuellen Maschine. Dazu verwenden Sie am besten eine offizielle &os;-CDROM oder Sie laden von einem offiziellen FTP-Server ein ISO-Abbild auf Ihren &mac; herunter. Danach klicken Sie auf das Laufwerksymbol in der rechten unteren Ecke des Parallels-Fensters, um das virtuelles Laufwerk mit dem ISO-Abbild oder mit dem physikalischen CD-ROM-Laufwerk des Computers zu verknüpfen. Nachdem Sie diese Verknüpfung hergestellt haben, starten sie die virtuelle &os;-Maschine neu, indem Sie auf das Symbol Neustarten klicken. Parallels startet nun ein Spezial-BIOS, das zuerst prüft, ob eine CD-ROM eingelegt wurde. In diesem Fall findet das BIOS ein &os;-Installationsmedium und beginnt eine normale Installation. Versuchen Sie jetzt noch nicht &xorg; zu konfigurieren. Nachdem die Installation abgeschlossen ist, können Sie die virtuelle &os;-Maschine starten. &os; für den Einsatz unter <application>Parallels</application> konfigurieren Nachdem &os; erfolgreich unter &macos; X mit Parallels installiert wurde, sollten Sie das virtuelles &os;-System für virtualisierte Operationen optimieren: Setzen der Bootloader-Variablen Die wichtigste Änderung ist es, die Variable zu verkleinern, um so die CPU-Auslastung in der Parallels-Umgebung zu verringern. kern.hz=100 Ohne diese Einstellung kann ein unbeschäftigtes &os; unter Parallels trotzdem rund 15 Prozent der CPU-Leistung eines Single Prozessor &imac;'s verbrauchen. Nach dieser Änderung reduziert sich dieser Wert auf etwa 5 Prozent. Erstellen einer neuen Kernelkonfigurationsdatei Sie können alle SCSI-, FireWire- und USB-Laufwerks-Treiber entfernen. Parallels stellt einen virtuellen Netzwerkadapter bereit, der den &man.ed.4;-Treiber verwendet. Daher können alle Netzwerkgeräte bis auf &man.ed.4; und &man.miibus.4; aus dem Kernel entfernt werden. Netzwerkbetrieb einrichten Die einfachste Netzwerkkonfiguration ist der Einsatz von DHCP, um die virtuelle Maschine mit dem gleichen lokalen Netzwerk, in dem sich der Host-&mac; befindet, zu verbinden. Dazu fügen Sie die Zeile ifconfig_ed0="DHCP" in /etc/rc.conf ein. Weitere Informationen zur Konfiguration des Netzwerks unter &os; finden Sie im . <application>Virtual PC</application> unter &windows; JohannKoisÜbersetzt von Virtual PC für &windows; wird von µsoft; kostenlos zum Download angeboten. Die Systemanforderungen für dieses Programm finden Sie hier. Nachdem Virtual PC unter µsoft.windows; installiert wurde, muss eine virtuelle Maschine konfiguriert und das gewünschte Betriebssystem installiert werden. &os; in <application>Virtual PC</application> installieren Der erste Schritt zur Installation von &os; in Virtual PC ist es, eine neue virtuelle Maschine zu erstellen, in die Sie &os; installieren können. Dazu wählen Sie die Option Create a virtual machine, wenn Sie danach gefragt werden: Bei der Frage nach dem Operating system wählen Sie Other: Danach müssen Sie den gewünschten Plattenplatz sowie die Größe des Hauptspeichers angeben. 4 GB Plattenplatz sowie 512 MB RAM sollten für die Installation von &os; in Virtual PC ausreichend sein: Speichern Sie die Eingaben und beenden Sie die Konfiguration: Wählen Sie nun die für &os; erstellte virtuelle Maschine aus und klicken Sie auf Settings, um das Netzwerk zu konfigurieren: Nachdem die virtuelle Maschine erstellt wurde, können Sie &os; installieren. Dazu verwenden Sie am besten eine offizielle &os;-CD-ROM oder ein ISO-Image, das Sie von einem offiziellen &os;-FTP-Server heruntergeladen haben. Wenn Sie ein ISO-Image auf der Festplatte gespeichert haben, oder eine &os;-CD-ROM in das CD-Laufwerk eingelegt haben, doppelklicken Sie auf die virtuelle Maschine, die Sie für &os; angelegt haben. Danach klicken Sie auf CD und wählen die Option Capture ISO Image... im Virtual PC-Fenster. Danach können Sie im folgenden Fenster das CD-Laufwerk mit dem physikalischen CD-Laufwerk oder mit dem ISO-Image verknüpfen. Danach starten Sie die virtuelle Maschine neu, indem Sie zuerst auf Action und danach auf Reset klicken. Virtual PC startet die virtuelle Maschine nun neu und prüft zuerst, ob die virtuelle Maschine über ein CD-Laufwerk verfügt. Da dies hier der Fall ist, beginnt nun eine normale &os;-Installation. Sie können &os; nun installieren, aber verzichten Sie an dieser Stelle unbedingt auf die &xorg;-Konfiguration. Nachdem die Installation abgeschlossen ist, entfernen Sie die CD-ROM aus dem Laufwerk (oder lösen die Verknüpfung zum ISO-Image). Danach starten Sie die virtuelle Maschine neu, um &os; zu starten. &os; in <application>Virtual PC</application> konfigurieren Nachdem &os; auf µsoft.windows; mit Virtual PC erfolgreich installiert wurde, sollten Sie das virtuelles &os; noch anpassen, um eine optimale Funktion zu gewährleisten. Setzen der Bootloader-Variablen Die wichtigste Änderung ist es, die Variable zu verkleinern, um so die CPU-Auslastung in der Virtual PC-Umgebung zu verringern. Dazu fügen Sie die folgende Zeile in /boot/loader.conf ein: kern.hz=100 Ohne diese Einstellung kann ein unbeschäftigtes &os; unter Virutal PC trotzdem rund 40 Prozent der CPU-Leistung eines Ein-Prozessor-Systems verbrauchen. Nach dieser Änderung reduziert sich dieser Wert auf etwa 3 Prozent. Erstellen einer neuen Kernelkonfigurationsdatei Alle SCSI-, FireWire- und USB-Laufwerks-Treiber können aus der Kernelkonfigurationsdatei entfernt werden. Virtual PC stellt einen virtuellen Netzwerkadapter bereit, der den &man.de.4;-Treiber verwendet. Daher können alle Netzwerkgeräte bis auf &man.de.4; und &man.miibus.4; aus dem Kernel entfernt werden. Das Netzwerk einrichten Die einfachste Netzwerkkonfiguration nutzt von DHCP, um die virtuelle Maschine mit dem gleichen lokalen Netzwerk, in dem sich der Host-µsoft.windows; befindet, zu verbinden. Dazu fügen Sie die Zeile ifconfig_de0="DHCP" in /etc/rc.conf ein. Weitere Informationen zur Konfiguration des Netzwerks unter &os; finden Sie in . <application>VMware Fusion</application> unter &macos; JohannKoisÜbersetzt von VMware Fusion für &mac; ist ein kommerzielles Programm, das für &intel; basierte &apple; &mac;-Computer mit &macos; 10.4.9 oder neuer erhältlich ist. &os; wird von diesem Produkt vollständig als Gast-Betriebssystem unterstützt. Nachdem Sie VMware Fusion unter &macos; X installiert haben, können Sie eine virtuelle Maschine konfigurieren und das gewünschte Gastbetriebssystem installieren. &os; in <application>VMware Fusion</application> installieren Zuerst müssen Sie VMware Fusion starten, um eine virtuelle Maschine zu erstellen. Dazu wählen Sie die Option New: Dadurch wird ein Assistent gestartet, der bei der Erzeugung einer neuen virtuellen Maschine behilflich ist. Klicken Sie auf Continue, um den Prozess zu starten: Wählen Sie Other als das Operating System, danach &os; oder &os; 64-bit, je nach dem, welche Version Sie installieren wollen, wenn Sie nach der zu installierenden Version gefragt werden: Vergeben Sie einen Namen für die virtuelle Maschine und legen Sie den Speicherort fest: Legen Sie die Größe der virtuellen Festplatte für die virtuelle Maschine fest: Wählen Sie die Installationsmethode für die virtuelle Maschine. Entweder von einem ISO-Abbild oder von einer CD/DVD: Nachdem Sie auf Finish geklickt haben, wird die virtuelle Maschine gestartet: Nun können Sie &os; wie gewohnt installieren: Nachdem die Installation abgeschlossen ist, können noch verschiedene Parameter der virtuellen Maschine, wie etwa der Speicherverbrauch, konfiguriert werden: Die Hardware der virtuellen Maschine kann nicht geändert werden, solange die virtuelle Maschine läuft. Die Anzahl der CPUs der virtuellen Maschine: Den Status des CD-Laufwerks. Sie können die CD/DVD/ISO von der virtuellen Maschine lösen, wenn Sie es nicht benötigen. Zuletzt sollten Sie noch festlegen, wie sich die virtuelle Maschine mit dem Netzwerk verbinden soll. Sollen neben dem Gastsystem auch andere Rechner auf die virtuelle Maschine zugreifen können, muss die Option Connect directly to the physical network (Bridged) gewählt werden. Ist dies nicht der Fall, sollte die Option Share the host's internet connection (NAT) gewählt werden. In dieser Einstellung kann die virtuelle Maschine zwar auf auf das Internet zugreifen, andere Rechner dürfen aber nicht auf die virtuelle Maschine zugreifen. Nachdem die Konfiguration abgeschlossen ist, kann &os; gestartet werden. &os; unter <application>VMware Fusion</application> konfigurieren Nachdem Sie &os; erfolgreich unter VMware Fusion installiert haben, sollten Sie das virtuelles &os; noch anpassen, um eine optimale Funktion zu gewährleisten. Die wichtigste Änderung ist es, die Variable zu verkleinern, um so die CPU-Auslastung in der VMware Fusion-Umgebung zu verringern. kern.hz=100 Ohne diese Einstellung kann ein unbeschäftigtes &os; unter VMware Fusion trotzdem rund 15 Prozent der CPU-Leistung eines Single Prozessor &imac;'s verbrauchen. Nach dieser Änderung reduziert sich dieser Wert auf etwa 5 Prozent. Erstellen einer neuen Kernelkonfigurationsdatei Alle FireWire- und USB-Laufwerks-Treiber können aus der Kernelkonfigurationsdatei entfernt werden. VMware Fusion stellt einen virtuellen Netzwerkadapter bereit, der den &man.em.4;-Treiber verwendet. Daher können alle Netzwerkgeräte bis auf &man.em.4; und &man.miibus.4; aus dem Kernel entfernt werden. Netzwerkbetrieb einrichten Die einfachste Netzwerkkonfiguration verwendet DHCP, um die virtuelle Maschine mit dem gleichen lokalen Netzwerk, in dem sich der Host-&mac; befindet, zu verbinden. Dazu fügen Sie die Zeile ifconfig_em0="DHCP" in /etc/rc.conf ein. Weitere Informationen zur Konfiguration des Netzwerks unter &os; finden Sie im . &virtualbox; Gasterweiterungen auf einem &os; Gast Die &virtualbox; Gasterweiterungen bieten Unterstützung für: Gemeinsame Zwischenablage. Mauszeiger-Integration. Zeitsynchronisation mit dem Host. Skalierung von Fenstern. Nahtloser Modus. Die folgenden Kommandos werden im &os; Gastsystem ausgeführt. Installieren Sie das Paket oder den Port emulators/virtualbox-ose-additions in das &os; Gastsystem. Dieses Beispiel installiert den Port: &prompt.root; cd /usr/ports/emulators/virtualbox-ose-additions &prompt.root; make install clean Fügen Sie folgende Einträge in /etc/rc.conf hinzu: vboxguest_enable="YES" vboxservice_enable="YES" Wenn &man.ntpd.8; oder &man.ntpdate.8; verwendet wird um die Uhrzeit zu synchronisieren, dann deaktivieren Sie die Synchronisierung mit dem Host: vboxservice_flags"--disable-timesync" Der vboxvideo_drv-Treiber sollte von Xorg -configure automatisch erkannt werden. Alternativ kann auch manuell ein entsprechender Eintrag in /etc/X11/xorg.conf hinzugefügt werden: Section "Device" Identifier "Card0" Driver "vboxvideo" VendorName "InnoTek Systemberatung GmbH" BoardName "VirtualBox Graphics Adapter" EndSection Um den vboxmouse_drv-Treiber zu verwenden, muss /etc/X11/xorg.conf ebenfalls angepasst werden: Section "InputDevice" Identifier "Mouse0" Driver "vboxmouse" EndSection Benutzer von HAL sollten die Datei /usr/local/etc/hal/fdi/policy/90-vboxguest.fdi erstellen oder sie aus /usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi kopieren: <?xml version="1.0" encoding="utf-8"?> <!-- # Sun VirtualBox # Hal driver description for the vboxmouse driver # $Id: chapter.xml,v 1.33 2012-03-17 04:53:52 eadler Exp $ Copyright (C) 2008-2009 Sun Microsystems, Inc. This file is part of VirtualBox Open Source Edition (OSE, as available from http://www.virtualbox.org. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation, in version 2 as it comes in the "COPYING" file of the VirtualBox OSE distribution. VirtualBox OSE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054 USA or visit http://www.sun.com if you need additional information or have any questions. --> <deviceinfo version="0.2"> <device> <match key="info.subsystem" string="pci"> <match key="info.product" string="VirtualBox guest Service"> <append key="info.capabilities" type="strlist">input</append> <append key="info.capabilities" type="strlist">input.mouse</append> <merge key="input.x11_driver" type="string">vboxmouse</merge> <merge key="input.device" type="string">/dev/vboxguest</merge> </match> </match> </device> </deviceinfo> - - &os; als Host + + &os; als Host mit + <application>Virtualbox</application> + BenedictReuschlingÜbersetzt von ChristophSold &virtualbox; ist ein vollständiges Virtualisierungspaket, das aktiv weiterentwickelt wird und für die meisten Betriebssysteme einschliesslich &windows;, &macos;, &linux; und &os; zur Verfügung steht. Es kann sowohl &windows; als auch &unix;-ähnliche Gastsysteme betreiben. Es wird als Open Source Software veröffentlicht, jedoch mit Closed-Source-Komponenten in einem separaten Erweiterungspaket. Zu diesen Komponenten gehört Unterstützung für USB 2.0-Geräte. Weitere Informationen finden Sie auf der Downloads-Seite im &virtualbox; Wiki. Derzeit sind diese Erweiterungen für &os; nicht verfügbar. &virtualbox; installieren &virtualbox; steht als Paket oder Port in emulators/virtualbox-ose bereit. Der Port kann mit folgendem Kommando installiert werden: &prompt.root; cd /usr/ports/emulators/virtualbox-ose &prompt.root; make install clean Eine nützliche Option im Konfigurationsdialog ist die GuestAdditions-Programmsammlung. Diese stellen eine Reihe von nützlichen Eigenschaften in den Gastbetriebssystemen zur Verfügung, wie beispielsweise Mauszeigerintegration (was es ermöglicht, die Maus zwischen dem Host und dem Gast zu teilen ohne eine spezielle Tastenkombination für diesen Wechsel zu drücken), sowie schnelleres Rendern von Videos, besonders in &windows; Gästen. Diese Gastzusätze sind im Devices-Menü zu finden, nachdem die Installation des Gastbetriebssystem abgeschlossen ist. Ein paar Konfigurationsänderungen sind notwendig, bevor &virtualbox; das erste Mal gestartet wird. Der Port installiert ein Kernelmodul in /boot/modules, das in den laufenden Kernel geladen werden muss: &prompt.root; kldload vboxdrv Um sicherzustellen, dass das Modul immer nach einem Neustart geladen wird, fügen Sie die folgende Zeile in die Datei /boot/loader.conf ein: vboxdrv_load="YES" Um die Kernelmodule für die Unterstützung von Netzwerkbrücken oder Host-Only Netzwerken zu laden, fügen Sie folgendes in /etc/rc.conf ein und starten Sie den Computer neu: vboxnet_enable="YES" Die Gruppe vboxusers wird während der Installation von &virtualbox; angelegt. Alle Benutzer, die Zugriff auf &virtualbox; haben sollen, müssen in diese Gruppe aufgenommen werden. pw kann benutzt werden, um neue Mitglieder hinzuzufügen: &prompt.root; pw groupmod vboxusers -m yourusername Damit Netzwerkbrücken funktionieren, müssen die in der Voreinstellung eingeschränkten Berechtigungen für /dev/vboxnetctl angepasst werden: &prompt.root; chown root:vboxusers /dev/vboxnetctl &prompt.root; chmod 0600 /dev/vboxnetctl Um diese Berechtigungen dauerhaft zu speichern, fügen Sie folgende Einträge in /etc/devfs.conf hinzu: own vboxnetctl root:vboxusers perm vboxnetctl 0600 Um &virtualbox; zu starten, geben Sie folgenden Befehl in der &xorg;-Sitzung ein: &prompt.user; VirtualBox Besuchen Sie die offizielle Webseite von &virtualbox; unter http://www.virtualbox.org, um weitere Informationen zur Konfiguration und Verwendung zu erhalten. &os;-spezifische Informationen und Anleitungen zur Fehlerbehebung finden Sie auf der entsprechenden Seite im &os;-Wiki unter http://wiki.FreeBSD.org/VirtualBox. USB Unterstützung für &virtualbox; Um auf USB-Geräte lesend und schreibend zuzugreifen, müssen Benutzer Mitglied der Gruppe operator sein: &prompt.root; pw groupmod operator -m jerry Fügen Sie dann folgenden Eintrag in /etc/devfs.rules hinzu. Erstellen Sie die Datei, wenn sie nicht bereits existiert: [system=10] add path 'usb/*' mode 0660 group operator Um diese neuen Regeln zu laden, fügen Sie folgenden Eintrag in /etc/rc.conf hinzu: devfs_system_ruleset="system" Danach starten Sie devfs neu: &prompt.root; service devfs restart USB kann nun im Gastsystem aktiviert werden. Die USB-Geräte sollten nun in den &virtualbox; Einstellungen sichtbar sein. Host <acronym>CD</acronym>/<acronym>DVD</acronym>-Zugriff in &virtualbox; Ein Gastsystem kann auf die DVD/CD-Laufwerke des Hosts zugreifen. Der Zugriff für die virtuellen Maschinen wird in den Einstellungen von &virtualbox; konfiguriert. Falls erforderlich, erstellen Sie zunächst ein leeres IDE DVD/CD-Gerät und wählen Sie dann ein entsprechendes Medium für dieses Laufwerk aus. Das Kontrollkästchen Passthrough besagt, dass die virtuelle Maschine die Hardware direkt verwenden kann. Audio-CDs und Brenner funktionieren nur, wenn diese Option ausgewählt ist. Damit die CD/DVD-Funktionen von &virtualbox; funktionieren, muss HAL in /etc/rc.conf aktiviert und anschließend gestartet werden: hald_enable="YES" &prompt.root; service hald start Damit die CD/DVD-Funktionen von Benutzern verwendet werden können, benötigen diese Zugriff auf /dev/xpt0, /dev/cdN und /dev/passN. Dies wird in der Regel dadurch erreicht, den Benutzer zum Mitglied der Gruppe operator zu machen. Die Berechtigungen für diese Geräte werden mit folgenden Zeilen in /etc/devfs.conf konfiguriert: - perm cd* 0600 + perm cd* 0660 perm xpt0 0660 perm pass* 0660 &prompt.root; service devfs restart + + + + + + &os; als Host mit + <application>bhyve</application> + + + + + Björn + Heidotting + + Übersetzt von + + + + + Beginnend mit &os; 10.0-RELEASE ist + bhyve, ein + BSD-lizensierter Hypervisor, Teil des + Basissystems. Dieser Hypervisor unterstützt eine Reihe von + Gastbetriebssystemen, darunter &os;, OpenBSD und viele &linux; + Distributionen. Derzeit unterstützt + bhyve nur eine serielle Konsole und + kann keine graphische Konsole emulieren. + bhyve verwendet Offload-Funktionen + von neueren CPUs, um manuelle + Speicherzuordnungen und Anweisungen zu vermeiden. + + Das Design von bhyve erfordert + einen Prozessor, der &intel; Extended Page Tables + (EPT), &amd; Rapid Vitualization + Indexing (RVI) oder Nested Page Tables + (NPT) unterstützt. &os;- oder + &linux;-Gastsysteme mit mehr als einer vCPU + benötigen VMX unrestricted mode support + (UG). Die meisten neueren Prozessoren, + speziell &intel; &core; i3/i5/i7 und &intel; &xeon; + E3/E5/E7, unterstützen diese Funktionen. Unterstützung für + UG wurde mit Intel's Westmere + Mikroarchitektur eingeführt. Eine vollständige Liste der + &intel;-Prozessoren mit EPT-Unterstützung + finden Sie unter . + RVI wird seit der dritten Generation der + &amd.opteron;-Prozessoren (Barcelona) unterstützt. Um zu sehen + ob der Prozessor bhyve unterstützt, + prüfen Sie die Ausgabe von dmesg oder + /var/run/dmesg.boot. Für &amd;-Prozessoren + suchen Sie in der Zeile Features2 nach + POPCNT. Für &intel;-Prozessoren suchen Sie + in der Zeile VT-x nach EPT + und UG. + + + Vorbereitung des Hosts + + Der erste Schritt bei der Erstellung einer virtuellen + Maschine in bhyve ist die + Konfiguration des Host-Systems. Laden Sie zunächst das + bhyve Kernelmodul: + + &prompt.root; kldload vmm + + Erstellen Sie ein tap-Gerät, um + dieses mit der Netzwerk-Schnittstelle der virtuellen Maschine + zu verbinden. Damit sich die Schnittstelle mit dem + Netzwerk verbinden kann, müssen Sie zusätzlich eine + Bridge-Schnittstelle erzeugen, bestehend aus dem + tap-Gerät und der physikalischen + Schnittstelle. In diesem Beispiel wird die physikalische + Schnittstelle igb0 verwendet: + + &prompt.root; ifconfig tap0 create +&prompt.root; sysctl net.link.tap.up_on_open=1 +net.link.tap.up_on_open: 0 -> 1 +&prompt.root; ifconfig bridge0 create +&prompt.root; ifconfig bridge0 addm igb0 addm tap0 +&prompt.root; ifconfig bridge0 up + + + + Ein &os;-Gastsystem erstellen + + Erzeugen Sie eine Datei, die als virtuelle Festplatte + für das Gastsystem verwendet wird. Geben Sie die Größe und + den Namen der virtuellen Festplatte an: + + &prompt.root; truncate -s 16G guest.img + + Laden Sie ein Installationsabbild von &os;: + + &prompt.root; fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-amd64-bootonly.iso +FreeBSD-10.2-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s + + &os; enthält ein Beispielskript um eine virtuelle Maschine + in bhyve auszuführen. Das Skript + wird die virtuelle Maschine starten und sie in einer Schleife + ausführen. Sollte die virtuelle Maschine abstürzen, wird sie + vom Skript automatisch neu gestartet. Das Skript akzeptiert + einige Optionen, um die Konfiguration der virtuellen Maschine + zu kontrollieren: bestimmt die Anzahl der + virtuellen CPUs, + begrenzt den verfügbaren Speicher des Gastsystems, + bestimmt das verwendete + tap-Gerät, gibt das + zu benutzende Festplattenabbild an, sagt + bhyve dass es von + CD booten soll und + bestimmt das CD-Abbild. Der letzte + Parameter ist der Name der virtuellen Maschine. Dieses + Beispiel startet die virtuelle Maschine im + Installationsmodus: + + &prompt.root; sh /usr/share/examples/bhyve/vmrun.sh -c 4 -m 1024M -t tap0 -d guest.img -i -I FreeBSD-10.0-RELEASE-amd64-bootonly.iso guestname + + Die virtuelle Maschine wird starten und das + Installationsprogramm ausführen. Nachdem das System in der + virtuellen Maschine installiert ist, werden Sie gefragt, ob + eine Shell gestartet werden soll. Wählen Sie + Yes. Es muss noch eine kleine Änderung + vorgenommen werden, damit das System mit einer seriellen + Konsole startet. Bearbeiten Sie + /etc/ttys und ersetzen Sie die vorhandene + ttyu0-Zeile durch: + + ttyu0 "/usr/libexec/getty 3wire" xterm on secure + + + Beginnend mit &os; 9.3-RELEASE und 10.1-RELEASE + wird die Konsole automatisch konfiguriert. + + + Starten Sie die virtuelle Maschine neu. Ein Neustart der + virtuellen Maschine wird bhyve + beenden, aber da das vmrun.sh-Skript in + einer Schleife läuft, wird bhyve + automatisch neu gestartet. Wenn dies passiert, wählen Sie die + Option Reboot im Bootloader-Menü, um die + Schleife zu unterbrechen. Anschließend kann das Gastsystem + von der virtuellen Festplatte gestartet werden: + + &prompt.root; sh /usr/share/examples/bhyve/vmrun.sh -c 4 -m 1024M -t tap0 -d guest.img guestname + + + + Ein &linux;-Gastsystem erstellen + + Um andere Betriebssysteme als &os; zu booten, muss + zunächst der Port sysutils/grub2-bhyve + installiert werden. + + Als nächstes erzeugen Sie eine Datei, die das Gastsystem + als virtuelle Festplatte verwenden kann: + + &prompt.root; truncate -s 16G linux.img + + Der Start einer virtuellen Maschine mit + bhyve ist ein zweistufiger Prozess. + Zuerst muss ein Kernel geladen werden, dann kann das + Gastsystem gestartet werden. Der &linux;-Kernel wird mit + sysutils/grub2-bhyve geladen. Erstellen + Sie eine device.map, damit + grub die virtuellen Geräte den + Dateien auf dem Hostsystem zuordnen kann: + + (hd0) ./linux.img +(cd0) ./somelinux.iso + + Benutzen Sie sysutils/grub2-bhyve um + den &linux;-Kernel vom ISO-Abbild zu + laden: + + &prompt.root; grub-bhyve -m device.map -r cd0 -M 1024M linuxguest + + Damit wird grub gestartet. + Wenn die Installations-CD eine Datei namens + grub.cfg enthält, wird ein Menü + angezeigt. Wenn nicht, müssen die Dateien + vmlinuz und initrd + manuell geladen werden: + + grub> ls +(hd0) (cd0) (cd0,msdos1) (host) +grub> ls (cd0)/isolinux +boot.cat boot.msg grub.conf initrd.img isolinux.bin isolinux.cfg memtest +splash.jpg TRANS.TBL vesamenu.c32 vmlinuz +grub> linux (cd0)/isolinux/vmlinuz +grub> initrd (cd0)/isolinux/initrd.img +grub> boot + + Nun, da der &linux;-Kernel geladen ist, kann das + Gastsystem gestartet werden: + + &prompt.root; bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,./linux.img \ + -s 4:0,ahci-cd,./somelinux.iso -l com1,stdio -c 4 -m 1024M linuxguest + + Das System wird booten und das Installtionsprogramm + starten. Starten Sie die virtuelle Maschine nach der + Installation des Betriebssystems neu. Dies führt auch dazu, + dass bhyve beendet wird. Die + Instanz der virtuellen Maschine muss zerstört werden, bevor + sie erneut in Betrieb genommen werden kann: + + &prompt.root; bhyvectl --destroy --vm=linuxguest + + Nun kann das Gastsystem direkt von der virtuellen + Festplatte gestartet werden. Laden Sie den Kernel: + + &prompt.root; grub-bhyve -m device.map -r hd0,msdos1 -M 1024M linuxguest +grub> ls +(hd0) (hd0,msdos2) (hd0,msdos1) (cd0) (cd0,msdos1) (host) +(lvm/VolGroup-lv_swap) (lvm/VolGroup-lv_root) +grub> ls (hd0,msdos1)/ +lost+found/ grub/ efi/ System.map-2.6.32-431.el6.x86_64 config-2.6.32-431.el6.x +86_64 symvers-2.6.32-431.el6.x86_64.gz vmlinuz-2.6.32-431.el6.x86_64 +initramfs-2.6.32-431.el6.x86_64.img +grub> linux (hd0,msdos1)/vmlinuz-2.6.32-431.el6.x86_64 root=/dev/mapper/VolGroup-lv_root +grub> initrd (hd0,msdos1)/initramfs-2.6.32-431.el6.x86_64.img +grub> boot + + Starten Sie die virtuelle Maschine: + + &prompt.root; bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 \$ -s 3:0,virtio-blk,./linux.img -l com1,stdio -c 4 -m 1024M linuxguest + + &linux; wird jetzt in der virtuellen Maschine gestartet + und präsentiert Ihnen vielleicht einen Anmeldeprompt. Sie + können sich anmelden und die virtuelle Maschine benutzen. + Wenn Sie fertig sind, starten Sie die virtuelle Maschine neu, + um bhyve zu verlassen. + Anschließend zerstören Sie die Instanz der virtuellen + Maschine: + + &prompt.root; bhyvectl --destroy --vm=linuxguest + + + + Verwendung von <acronym>ZFS</acronym> mit + <application>bhyve</application>-Gastsystemen + + Wenn auf dem Host-Rechner ZFS + eingerichtet ist, können Sie ZFS-Volumes + anstelle eines Festplattenabbilds verwenden. Dies kann + erhebliche Leistungsvorteile für das Gastsystem mit sich + bringen. Ein ZFS-Volume kann wie folgt + erstellt werden: + + &prompt.root; zfs create -V16G -o volmode=dev zroot/linuxdisk0 + + Geben Sie das ZFS-Volume beim Start + der virtuellen Maschine an: + + &prompt.root; bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 -s3:0,virtio-blk,/dev/zvol/zroot/linuxdisk0 \ + -l com1,stdio -c 4 -m 1024M linuxguest + + + + Konsolen in der virtuellen Maschine + + Es ist vorteilhaft, die + bhyve-Konsole mit einem Werkzeug + wie sysutils/tmux oder + sysutils/screen zu bedienen. Damit ist es + leicht, die Konsole zu verbinden oder zu trennen. Es ist auch + möglich, die Konsole als Nullmodem-Gerät zu nutzen, auf das + Sie mit cu zugreifen können. Laden Sie + dazu das nmdm Kernelmodul und ersetzen + Sie mit . Die + /dev/nmdm-Geräte werden bei Bedarf + automatisch erstellt, jeweils paarweise, entsprechend den + beiden Enden eines Nullmodemkabels + (/dev/nmdm0A und + /dev/nmdm0B). Weitere Informationen + finden Sie in &man.nmdm.4;. + + &prompt.root; kldload nmdm +&prompt.root; bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap1 -s 3:0,virtio-blk,./linux.img \ + -l com1,/dev/nmdm0A -c 4 -m 1024M linuxguest +&prompt.root; cu -l /dev/nmdm0B +Connected + +Ubuntu 13.10 handbook ttyS0 + +handbook login: + + + + Virtuelle Maschinen verwalten + + Für jede virtuelle Maschine wird unterhalb von + /dev/vmm ein Gerätename erzeugt. + Dadurch kann der Administrator einfach feststellen, welche + virtuellen Maschinen zur Zeit ausgeführt werden: + + &prompt.root; ls -al /dev/vmm +total 1 +dr-xr-xr-x 2 root wheel 512 Mar 17 12:19 ./ +dr-xr-xr-x 14 root wheel 512 Mar 17 06:38 ../ +crw------- 1 root wheel 0x1a2 Mar 17 12:20 guestname +crw------- 1 root wheel 0x19f Mar 17 12:19 linuxguest +crw------- 1 root wheel 0x1a1 Mar 17 12:19 otherguest + + Mit Hilfe von bhyvectl kann eine + virtuelle Maschine zerstört werden: + + &prompt.root; bhyvectl --destroy --vm=guestname + + + + Persistente Konfiguration + + Um das System so zu konfigurieren, dass + bhyve-Gastsysteme beim Booten + gestartet werden, muss die folgenden Konfiguration in den + jeweiligen Dateien vorgenommen werden: + + + + <filename>/etc/sysctl.conf</filename> + + net.link.tap.up_on_open=1 + + + + <filename>/boot/loader.conf</filename> + + vmm_load="YES" +nmdm_load="YES" +if_bridge_load="YES" +if_tap_load="YES" + + + + <filename>/etc/rc.conf</filename> + + cloned_interfaces="bridge0 tap0" +ifconfig_bridge0="addm igb0 addm tap0" + +