Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Was ist Ubuntu?
2 Die Versionen im Detail
3 Die Shell
4 Migration und Synchronisation
5 Die Installation
6 Erste Schritte
7 Ubuntu mobil
8 Derivate
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia und Spiele
13 Programmierung und Design
14 Hardware-Konfiguration
15 Software- und Paketverwaltung
16 Architektur
17 Backup und Sicherheit
18 Server-Installation
19 Datei- und FTP-Server
20 Weitere Server-Dienste
21 Kontrolle und Monitoring
22 Desktop-Virtualisierung
23 Server-Virtualisierung mit KVM
24 Server-Virtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz Ubuntu Linux
A Übersicht: Software für (K)Ubuntu
B Mark Shuttleworth
C Glossar
D Häufig gestellte Fragen
Stichwort
Download: - ZIP, ca. 36,6 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Ubuntu | vor >>
Ubuntu GNU/Linux von Marcus Fischer Das umfassende Handbuch, aktuell zu Ubuntu 9.04 - Jaunty Jackalope
Ubuntu GNU/Linux 4., aktualisierte und erweiterte Auflage, geb. 1.120 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1439-1 |
| 23 Server-Virtualisierung mit KVM
|  | 23.1 Funktionsweise
|  | 23.2 Ubuntu und KVM
|  |  | 23.2.1 Voraussetzungen
|  |  | 23.2.2 Installation
|  |  | 23.2.3 Mögliche Probleme
|  |  | 23.2.4 Installation von Gästen auf der Kommandozeile
|  | 23.3 Fortgeschrittene Netzwerkeinrichtung
|  |  | 23.3.1 Bridging
|  |  | 23.3.2 Mehrere virtuelle Netzwerke
|  | 23.4 Quellen kompilieren
## 23.3 Fortgeschrittene Netzwerkeinrichtung KVM als Standardeinstellung erlaubt es Zugriffen von außen nicht, sich mit Ihren virtuellen Maschinen zu verbinden. Andere komplexere Installationswege werden im Folgenden beschrieben. Wenn das Folgende Ihren Erfordernissen nicht entspricht, sollte die bestehende QEMU-Dokumentation für KVM ebenso relevant sein. #### Terminologie Ein VLAN ist ein virtuelles Netzwerksegment. Man kann es als einen virtuellen Switch abbilden. Sie verbinden virtuelle Netzwerkkarten mit VLANs, verkabeln VLANs miteinander und erstellen letztlich eine Switch-Struktur, die realen Installationen ziemlich nahe kommen. Wenn Sie keine Netzwerkoptionen spezifizieren, konstruiert KVM standardmäßig eine Netzwerkkarte, die mit einem nicht-öffentlichen VLAN verbunden ist. Auf diesem VLAN wird auch ein einzelner Host emuliert, der als DHCP-Server und standardmäßiger Router fungiert. Sämtliche Verbindungen, die vom Gast initiiert worden sind, werden durch den nicht-öffentlichen Stack von KVM gesteuert und erscheinen auf dem Host -Rechner als Anfragen von Sockets, die von dem KVM-Prozess auf 127.0.0.1 kommen. #### Zwei Adressen Die Netzwerke des Benutzer-Modus von KVM enthalten üblicherweise nur zwei Adressen: 10.0.2.2 (virtueller Host) und 10.0.2.15 (Gast). In der Sprache von KVM dargestellt. sieht das so aus:
    kvm -net nic -net user ...
Mit anderen Worten: Fügen Sie eine Netzwerkarte hinzu, und verbinden Sie sie mit vlan 1. Fügen Sie auch einen virtuellen Host hinzu, der mit vlan 1 verbunden ist. Der virtuelle Host verbindet das VLAN über NAT mit dem physischen Host. Da das Netzwerk im Benutzermodus über das SLIRP-Protokoll implementiert wird, wird UDP nicht unterstützt. Sollten Sie UDP-Pakete zum Host oder nach außen transportieren müssen, müssen Sie eine andere Technik einsetzen. #### Standard Bei der Installation der Gäste haben wir bisher keinen großen Aufwand betrieben und die Standardeinstellungen bei der Netzwerkkonfiguration übernommen. Dies hat zur Folge, dass die Gäste per NAT die Einstellungen des Wirts übernehmen. Damit ist es selbstverständlich nicht möglich, von außerhalb auf die virtuellen Maschinen zuzugreifen, da der ankommende Datenverkehr nicht zu einem bestimmten Gast gelenkt werden kann. Um dies zu ermöglichen, ist das sogenannte »Bridging« notwendig, das den Datenverkehr quasi mithilfe einer Brücke über den Wirt leitet. ### 23.3.1 Bridging Um das Bridging einzurichten, sind zwei Schritte notwendig. Als Erstes muss die Brücke auf dem Wirt erstellt werden, bevor man dem Gast mitteilt, dass er diese Brücke für sein Netzwerk nutzen soll. Die Brücke ist eine virtuelle Schnittstelle, die von außerhalb wie eine reale physikalische Schnittstelle angesprochen werden kann. Dies hat bequemerweise zur Folge, dass diese wie normale Hosts dem restlichen Netzwerk zur Verfügung stehen. #### Eine Brücke auf dem Wirt erstellen Die Brücke erstellen Sie wie jede andere Netzwerkschnittstelle, indem Sie die Datei /etc/network/interfaces editieren. Ersetzen Sie die bestehenden Angaben, oder kommentieren Sie sie aus. Fügen Sie folgende Angaben hinzu:
    auto lo
    iface lo inet loopback
    auto br0
    iface br0 inet static
            address 192.168.0.10
            network 192.168.0.0
            netmask 255.255.255.0
            broadcast 192.168.0.255
            gateway 192.168.0.1
            bridge_ports eth0
            bridge_fd 9
            bridge_hello 2
            bridge_maxage 12
            bridge_stp off
Starten Sie nun das Netzwerk neu, und Ihre virtuellen Maschinen werden während der Laufzeit als ganz normale Hosts in Ihrem Netzwerk erscheinen:
    sudo /etc/init.d/networking restart
#### Den Gast einrichten Wir müssen an dieser Stelle selbstverständlich der virtuellen Maschine noch mitteilen, welche Schnittstelle zum Netzwerk sie ab sofort zu verwenden hat. Bei einer Neuinstallation einer virtuellen Maschine gelingt dies, indem Sie beispielsweise die Option ebenfalls angeben:
    virt-install --name=hardyjeos --ram=256 --file-size=2 \
    --bridge=br0 --vnc --connect=qemu:///system --accelerate \
    -c hardy-jeos-i386.iso
Alternativ können Sie selbstverständlich auch bei der grafischen Abfrage des Virtual Machine Managers das richtige Netzwerk auswählen. Um die geänderten Netzwerk-Bedingungen einer bereits vorhandenen virtuellen Maschine mitzuteilen, genügt es, die XML-Datei im Ordner /etc/libvirt/qemu/ zu bearbeiten. Achten Sie darauf, dass Sie die MAC-Adresse beim Editieren nicht ändern.
        <interface type='network'>
          <mac address='00:11:22:33:44:55'/>
          <source network='default'/>
        </interface>
Eine Änderung in dieser Datei könnte folgendermaßen aussehen:
        <interface type='bridge'>
          <mac address='00:11:22:33:44:55'/>
          <source bridge='br0'/>
        </interface>
Damit diese Konfiguration übernommen werden kann, müssen Sie alle virtuellen Maschinen herunterfahren und livirtd neu starten:
    sudo /etc/init.d/libvirtd restart
### 23.3.2 Mehrere virtuelle Netzwerke Wenn Sie eine virtuelle Maschine mit mehreren Netzwerken aufbauen möchten, müssen Sie mehrere VLANs erstellen, an die die Netzwerke angeschlossen werden können. Um mehr als ein VLAN zu erstellen, ordnen Sie jedem VLAN eine ID zu. Der folgende Befehl besipielsweise erstellt zwei Netzwerke und zwei VLANs:
    kvm -net nic,vlan=0 -net socket,listen=:8010,vlan=0 -net nic,vlan=1 \
    -net user,vlan=1 ...
#### Socket-Connections Mit den Socket-Connections können Sie Ihre virtuellen Maschinen mit nicht-öffentlichen VLANs verbinden. Die Verwendung von TCP-Sockets ist hier sicher die einfachste Methode. Ein VLAN stellt den Empfänger dar:
    kvm -net nic -net socket,listen=:8010 ...
während der andere der Initiator ist:
    kvm -net nic -net socket,connect=127.0.0.1:8010 ...
Sollten Sie keine Adresse festlegen, wird der Empfänger alle verbundenen Interfaces empfangen. Um nur einen Localhost zu empfangen, legen Sie bitte Folgendes fest:
    kvm -net nic -net socket,listen=127.0.0.1:8010 ...
Selbstverständlich können auch virtuelle LANs, die auf anderen Hosts laufen, miteinander verbunden werden. Multicast-Sockets Möchten Sie mehrere Initiatoren mit einem einzelnen Empfänger verbinden, sollten Sie einen Multicast-Sockel verwenden:
    kvm -net nic -net socket,mcast=230.0.0.1:1234 ...
    kvm -net nic -net socket,mcast=230.0.0.1:1234 ...
    kvm -net nic -net socket,mcast=230.0.0.1:1234 ...
Damit werden drei VLANs am selben Punkt miteinander verbunden. Frames, die an einen der VLANs gesendet werden, werden von allen drei VLANs empfangen. Es können aber auch mehrere VLANs mit einem einzelnen VDE verbunden werden. #### VLANs mit dem Host verbinden Nachdem Sie sich nun mit einer Vielzahl von virtuellen Strukturen verbinden können, möchte ich Ihnen im Folgenden zeigen, wie Sie VLANs mit bestehenden, echten Netzwerken verbinden können. Fast alle Verbindungen von virtuellen zu physischen Maschinen werden durch ein Tap-Device erzeugt. Tap-Devices sind regelmäßige Schnittstellen, ähnlich eth0, eth1, lo etc. Ein Ende des Taps wird mit dem VLAN verbunden, das andere mit normalen Netzwerkprogrammen konfiguriert (ifconfig, route etc).
    kvm -net nic -net tap ...
Dieser Befehl hat ein neues, einzelnes Tap-ethernet device erstellt (tap0, tap1, etc). Das Skript /etc/qemu-ifup wird dafür genutzt, das neue Netzwerkgerät einzurichten. Die Standardeinstellung in /etc/qemu-ifup ordnet dem neuen Interface die IP-Adresse 172.20.0.1 zu. Mithilfe von ifname=IF können Sie dem Ganzen einen Netzwerknamen zuordnen, und mit script=SCRIPT starten Sie ein anderes Skript:
    kvm -net nic -net tap,ifname=qtap0,script=/var/vm/vm0.ifup
Taps lösen das Netzwerkproblem für eine einzelne virtuelle Maschine. Allerdings benötigt jeder Gast sein eigenes Tap-Device. Wie Sie sich vorstellen können, führt das zu einigen Verlangsamungen im System.
Virtuelle VMware-Maschinen unter KVM nutzen
KVM ist in der Lage, virtuelle Maschinen zu betreiben, die von VMware erstellt wurden. Sie können somit Ihre aufwendig erstellten Snapshots von VMware-Gästen weiterverwenden. Die einzige Einschränkung besteht darin, dass diese VMware-Gäste in einer einzigen Datei abgespeichert sind. Die Möglichkeit einer direkten Nutzung von gesplitteten Gästen, die VMware ebenfalls erstellen kann, unterstützt KVM (noch) nicht.
Damit der Virtual Machine Manager die .vmx-Dateien von VMware lesen kann, müssen sie in eine XML-Datei umgewandelt werden, mit der libvirt umgehen kann. Für diesen Zweck gibt es ein kleines Werkzeug unter http://people.ubuntu.com/~soren/vmware2libvirt/. Rufen Sie dieses Skript folgendermaßen auf:
vmware2libvirt -f ./file.vmx > file.xml virsh -c qemu:///system define file.xml
Das erste Kommando konvertiert die VMware-Datei file.vmx in eine für libvirt kompatible Datei file-xml. Das zweite Kommando importiert die neu erstellte XML-Datei in libvirt. Die importierten XML-Dateien finden Sie im Ordner /etc/libvirt/qemu. Bitte behalten Sie im Auge, dass Sie die original .vmx-Datei bei dieser Aktion verändern und Sie diese danach nicht mehr in VMware verwenden können. Falls Sie dies dennoch wünschen, verwenden Sie ein Backup dieser Datei.
### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Ubuntu GNU/Linux Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Linux
| IT-Handbuch für Fachinformatiker
| Webserver einrichten und administrieren
| Xen
| VirtualBox
| LPIC-1
| Einstieg in Ubuntu 8.10 »Intrepid Ibex«
| Einstieg in Ubuntu Linux - Videotraining
| Debian GNU/Linux
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de