Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Virtualization

Red Hat Enterprise Linux 5

A reference guide for virsch, xm, vmm and xend.

Ausgabe 2.0

Logo

Zusammenfassung

Dieses Handbuch umfasst Informationen zur Konfiguration, Erstellung und Überwachung von Gastsystemen unter Red Hat Enterprise Linux 5 unter Verwendung von virsh, xm, vmm und xend.
Falls Sie einen Fehler im Red Hat Linux Virtualisierungshandbuch entdecken, oder über eine Möglichkeit nachgedacht haben, wie dieses Handbuch verbessert werden könnte, würden wir gerne von Ihnen hören! Reichen Sie einen Fehlerbericht für das Produkt Red Hat Enterprise Linux mit der Komponente Virtualization_Guide bei Bugzilla ( http://bugzilla.redhat.com/bugzilla/) ein.

Kapitel 1. Red Hat Virtualisierung-Systemarchitektur

Ein funktionierendes Red Hat Virtualisierungssystem ist multi-layered (mehrschichtig) und wird von der privilegierten Red Hat Virtualisierungskomponente betrieben. Die Red Hat Virtualisierung kann mehrere Gast-Betriebssysteme "hosten". Jedes Gast-Betriebssystem läuft in seiner eigenen Domain. Die Red Hat Virtualisierung steuert virtuelle CPUs innerhalb der virtuellen Maschinen, mit dem Ziel einer optimalen Auslastung der verfügbaren physikalischen CPUs. Jedes der Gast-Betriebssysteme handhabt seine eigenen Anwendungen. Sie steuern jede Anwendung entsprechend selbst.
Beim Einsatz der Red Hat Virtualisierung steht Ihnen eine von zwei Optionen zur Auswahl: Volle Virtualisierung oder Paravirtualisierung. Volle Virtualisierung liefert eine totale Abstrahierung des zugrunde liegenden physikalischen Systems und erstellt ein neues virtuelles System, in dem das Gast-Betriebssystem laufen kann. Es sind keine Anpassungen im Gast-Betriebssystem oder der Gast-Anwendung notwendig (das Betriebssystem oder die Anwendung ist sich der virtuellen Umgebung nicht bewusst und läuft wie gewohnt). Paravirtualisierung erfordert die Anpassung des Gast-Betriebssystems, welches auf der virtuellen Maschine läuft (diese Gast-Betriebssysteme sind sich bewusst, dass sie auf einer virtuellen Maschine laufen) und liefern eine annähernde Leistung entsprechend des Ur-Systems. Sie können sowohl Paravirtualisierung, als auch volle Virtualisierung in Ihrer Virtualisierungsinfrastruktur einsetzen.
Die erste Domain, bekannt als domain0 (dom0), wird beim Booten des Systems automatisch erstellt. Domain0 als der privilegierte Gast besitzt Management-Fähigkeiten, mit denen neue Domains erstellt und deren virtuelle Geräte verwaltet werden können. Domain0 handhabt die physikalische Hardware, wie z.B. Netzwerkkarten und Festplattenkontroller. Sie handhabt außerdem administrative Aufgaben, wie beispielsweise das Anhalten, Fortsetzen oder die Migration von Gast-Domains auf andere virtuelle Maschinen.
The hypervisor (Red Hat's Virtual Machine Monitor) is a virtualization platform that allows multiple operating systems to run on a single host simultaneously within a full virtualization environment. A guest is an operating system (OS) that runs on a virtual machine in addition to the host or main OS.
With Red Hat Virtualization, each guests memory comes from a slice of the host's physical memory. For paravirtual guests, you can set both the initial memory and the maximum size of the virtual machine. You can add (or remove) physical memory to the virtual machine at runtime without exceeding the maximum size you specify. This process is called ballooning.
Sie können jeden Gast mit einer Anzahl virtueller CPUs (VCPUs genannt) konfigurieren. Der Virtual Machine Manager steuert die VCPUs je nach Arbeitsauslastung auf den physikalischen CPUs.
Sie können für einen Gast eine beliebige Anzahl an virtuellen Platten bewilligen. Dieser Gast interpretiert diese entweder als Festplatten, oder (bei voll virtualisierten Gästen) als CD-ROM-Laufwerke. Jede virtuelle Platte wird von einem Blockgerät oder einer regulären Datei auf dem Host bedient. Das Gerät auf dem Host enthält das gesamte, umfassende Platten-Image für den Gast und beinhaltet normalerweise Partitionstabellen, mehrere Partitionen und potentielle physikalische LVM-Datenträger.
Virtuelle Netzwerkschnittstellen laufen auf dem Gast. Andere Schnittstellen können auf dem Gast wie virtuelle Ethernet-Karten (VNICs) laufen. Diese Netzwerk-Schnittstellen werden mit einer dauerhaften virtuellen Media-Access-Control-Adresse (MAC) konfiguriert. Während der Standardinstallation eines neuen Gasts wird die VNIC mit einer MAC-Adresse, die zufällig aus einem reservierten Pool von über 16 Millionen Adressen ausgewählt wird, installiert. Es ist daher unwahrscheinlich, dass zwei beliebige Gäste dieselbe MAC-Adresse erhalten. Bei komplexen Sites mit einer großen Anzahl von Gästen können MAC-Adressen manuell zugewiesen werden, um sicherzustellen, dass sie im Netzwerk eindeutig bleiben.
Jeder Gast besitzt eine virtuelle Textkonsole, die sich mit dem Host verbindet. Sie können Gast-Logins und die Ausgabe der Konsole umleiten.
Sie können jeden beliebigen Gast so konfigurieren, dass er eine grafische Konsole verwendet, die mit der normalen Video-Konsole auf dem physikalischen Host korrespondiert. Dies können Sie für voll virtualisierte und paravirtualisierte Gäste durchführen. Sie verwendet die Features des standardmäßigen Grafikadapters, wie Boot-Meldungen, grafisches Booten, mehrere virtuelle Terminals und kann das X-Window-System starten. Außerdem können Sie die grafische Tastatur verwenden, um die virtuelle Tastatur und die Maus zu konfigurieren.
Guests can be identified in any of three identities: domain name (domain-name), identity (domain-id), or UUID. The domain-name is a text string that corresponds to a guest configuration file. The domain-name is used to launch the guests, and when the guest runs the same name is used to identify and control it. The domain-id is a unique, non-persistent number that gets assigned to an active domain and is used to identify and control it. The UUID is a persistent, unique identifier that is controlled from the guest's configuration file and ensures that the guest is identified over time by system management tools. It is visible to the guest when it runs. A new UUID is automatically assigned to each guest by the system tools when the guest first installs.

Kapitel 2. Unterstützung von Betriebssystemen

Red Hat Virtualization's paravirtualization mode allows you to utilize high performance virtualization on architectures that are potentially difficult to virtualize such as x86 based systems. To deploy para-virtualization across your operating system(s), you need access to the paravirtual guest kernels that are available from a respective Red Hat distro (for example, RHEL 4.0, RHEL 5.0, etc.). Whilst your operating system kernels must support Red Hat Virtualization, it is not necessary to modify user applications or libraries.
Die Red Hat Virtualisierung ermöglicht Ihnen das Ausführen eines nicht modifizierten Gast-Kernels, wenn Sie Intel VT- und AMD SVM CPU-Hardware besitzen. Sie müssen Ihr Betriebssystem nicht portieren, um diese Architektur auf Ihren Intel VT- oder AMD SVM-Systemen einzusetzen. Die Red Hat Virtualisierung unterstützt:
  • Intel VT-x- oder AMD-V Pacifica- und Vanderpool-Technologie für volle und Paravirtualisierung,
  • Intel VT-i für ia64,
  • Linux- und UNIX-Betriebssysteme, inklusive NetBSD, FreeBSD und Solaris,
  • Microsoft Windows as an unmodified guest operating system with Intel Vanderpool or AMD's Pacifica technology.
Um voll virtualisierte Gäste auf Systemen mit hardwareunterstützten virtuellen Maschinen (HVM), Intel- oder AMD-Plattformen auszuführen, müssen Sie sicherstellen, dass Ihre CPUs die dafür benötigten Fähigkeiten besitzen.
Geben Sie Folgendes ein, um zu überprüfen, ob Sie die CPU-Flags für die Intel-Unterstützung besitzen:
grep vmx /proc/cpuinfo
Die Ausgabe entspricht in etwa dem Folgenden:
flags   :  fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall  nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
Falls ein vmx-Flag erscheint, besitzen Sie Intel-Unterstützung.
Um zu überprüfen, ob Sie das CPU-Flag für AMD-Unterstützung besitzen, geben Sie Folgendes ein:
grep svm /proc/cpuinfo
cat /proc/cpuinfo | grep svm
Die Ausgabe entspricht in etwa dem Folgenden:
flags   :  fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dt acpi mmx fxsr sse sse2 ss ht tm syscall nx mmtext fxsr_opt  rdtscp lm 3dnowext  pni  cx16  lahf_lm  cmp_legacy  svm  cr8_legacy
Falls ein svm-Flag erscheint, besitzen Sie AMD-Unterstützung.

Anmerkung

Zusätzlich zu der Überprüfung der CPU-Flags sollten Sie volle Virtualisierung in Ihrem System-BIOS aktivieren.

Kapitel 3. Hardwareunterstützung

Die Red Hat Virtualisierung unterstützt Multiprozessor-Systeme und ermöglicht Ihnen das Betreiben der Red Hat Virtualisierung auf x86-Architektur-Systemen mit Prozessoren der P6-Klasse (oder später), wie:
  • Celeron
  • Pentium II
  • Pentium III
  • Pentium IV
  • Xeon
  • AMD Athlon
  • AMD Duron
Im Rahmen der Red Hat Virtualisierung laufen auf einem 32-Bit Host nur 32-Bit paravirtualisierte Gäste und auf einem 64-Bit Host nur paravirtualisierte 64-Bit-Gäste. Auf einem voll virtualisierten 64-Bit-Host laufen 32-Bit-, 32-Bit PAE- oder 64-Bit-Gäste. Auf einem voll virtualisierten 32-Bit-Host laufen sowohl PAE- und voll virtualisierte Gäste ohne PAE.
Der Kernel der Red Hat Enterprise Linux Virtualisierung unterstützt nicht mehr als 32 GB Speicher für x86_64-Systeme. Falls Sie den Virtualisierungs-Kernel auf Systemen mit mehr als 32 GB physikalischem Speicher booten müssen, müssen Sie in der Kommandozeile den Kernelparameter mem=32G anhängen. Dieses Beispiel zeigt, wie die passenden Parameter in der Datei grub.conf aktiviert werden:

title Red Hat Enterprise Linux Server  (2.6.18-4.elxen)
root  (hd0, 0)
kernel   /xen.gz-2.6.18-4-el5 mem=32G
module   /vmlinuz -2.6.18-4.el5xen ro root=LABEL=/
module   /initrd-2.6.18-4.el5xen.img

PAE (Physical Address Extension) ist eine Technologie, bei der die Menge des für Benutzer-Applikationen zur Verfügung stehenden physikalischen oder virtuellen Speichers erhöht wird. Für die Red Hat Virtualisierung ist eine Aktivierung von PAE auf Ihren Systemen erforderlich. Die Red Hat Virtualisierung der 32-Bit-Architektur mit PAE unterstützt bis zu 16 GB physikalischen Speicher. Es wird empfohlen, dass Sie mindestens 256 Megabytes Arbeitsspeicher für jeden Gast, den Sie auf Ihrem System ausführen, bereitstellen. Die Red Hat Virtualisierung ermöglicht es x86/64-Maschinen, bis zu 64 GB physikalischen Speicher zu adressieren. Die Red Hat Virtualisierungs-Kernel laufen auf Systemen ohne PAE nicht. Um festzustellen, ob ein System PAE unterstützt, geben Sie den folgenden Befehl ein:
grep pae /proc/cpuinfo
Die nachfolgende Ausgabe sieht wie folgt aus:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmtext 3dnowext 3dnow up ts
Wenn Ihre Ausgabe in etwa mit dem oben aufgeführten Beispiel übereinstimmt (oder diesem ähnelt), dann unterstützt Ihre CPU PAE. Falls der Befehlsprompt nichts anzeigt, dann unterstützt Ihre CPU PAE nicht.

Kapitel 4. Systemanforderungen der Red Hat Virtualisierung

Nachfolgende Punkte werden vom Red Hat Virtualisierungssystem benötigt:
  • Eine funktionierende Red Hat RHEL 5 Linux-Distribution,
  • Ein funktionierender GRUB-Bootloader,
  • Root-Zugriff,
  • Ein Prozessor der P6-Klasse (oder früher),
  • Die Linux-"bridge-utils",
  • Die Linux Hotplug-Systeme,
  • Eine Installation der zlib-Bibliothek zur Entwicklung,
  • Python 2.2 Laufzeitumgebung,
  • Die "initscripts" (die Initialisierungsskripte).
Die Abhängigkeiten werden automatisch während des Installationsprozesses konfiguriert.

Anmerkung

If your system CPU architecture is ia64, you need to manually install the xen-ia64-guest-firmware package to run a fully virtualized guest. This package is provided in the Supplementary CD and is not installed by default.

Kapitel 5. Booten des Systems

Nach der Installation der Komponenten der Red Hat Virtualisierung müssen Sie das System neu starten. Wenn der Bootvorgang abgeschlossen ist, müssen Sie sich wie gewohnt in Ihr System einloggen. Bevor Sie dann die Red Hat Virtualisierung starten, müssen Sie sich als "root" einloggen. Der xend-Kontrolldaemon sollte bereits durch die "initscripts" initialisiert sein. Falls Sie diesen jedoch manuell starten müssen, geben Sie jedoch Folgendes ein:
service xend start
Verwenden Sie chkconfig xend, wenn Sie den Start des xend zur Bootzeit aktivieren möchten.
Der Kontroll-Daemon des xend-Knoten führt Funktionen des System-Managements durch, die mit den virtuellen Maschinen zusammenhängen. Dieser Daemon kontrolliert die virtuellen Ressourcen und xend muss laufen, um mit virtuellen Maschinen zu interagieren. Bevor Sie den xend starten, müssen Sie die Betriebsparameter angeben, indem Sie die Konfigurationsdatei "xend-config.sxp" des xend im Verzeichnis /etc/xen bearbeiten.

Kapitel 6. GRUB-Konfiguration

GNU Grand Unified Boot Loader (or GRUB) is a program which enables the user to select which installed operating system or kernel to load at system boot time. It also allows the user to pass arguments to the kernel. The GRUB configuration file (located in /boot/grub/grub.conf) is used to create a list of operating systems to boot in GRUB's menu interface. When you install the kernel-xen RPM, a post script adds kernel-xen entries to the GRUB configuration file. You can edit the grub.conf file and enable the following GRUB parameter:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen)
root   (hd0; 0)
kernel  /xen.gz.-2.6.18-3.el5
module  /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00  rhgb quiet
module  /initrd-2.6.18-3. el5xenxen.img

Wenn Sie die Linux Grub-Einträge entsprechend dieses Beispiels einrichten, lädt der Bootloader den Hypervisor, das initrd-Image und den Linux-Kernel. Da sich der Kernel-Eintrag oberhalb der anderen Einträge befindet, wird der Kernel zuerst in den Speicher geladen. Der Bootloader sendet (und empfängt) Kommandozeilenparameter an und vom Hypervisor und dem Linux-Kernel. Dieser Beispieleintrag zeigt, wie Sie den Speicher des Linux-Kernels der Domain0 auf 800 MB beschränken:

title Red Hat Enterprise Linux Server (2.6.18-3.el5xen)
root   (hd0; 0)
kernel  /xen.gz.-2.6.18-3.el5 dom0_mem=800M
module  /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00  rhgb quiet
module  /initrd-2.6.18-3. el5xenxen.img

Mit Hilfe dieser GRUB-Parameter können Sie den Virtualisierungs-Hypervisor konfigurieren:
mem

Dies schränkt die Menge an Speicher ein, die für domain0 zur Verfügung steht.

com1=115200, 8n1

Dies aktiviert den ersten seriellen Port im System, so dass dieser als serielle Konsole fungiert (com2 wird dem nächsten Port zugewiesen, usw.).
 
dom0_mem
Dies schränkt die Menge an Speicher ein, die für domain0 zur Verfügung steht.
dom0_max_vcpus
Dies schränkt die Menge der CPUs ein, die für domain0 sichtbar sind.
acpi
Dies wechselt den ACPI-Hypervisor in den Hypervisor und domain0. Die ACPI-Parameteroptionen umfassen:

/*   ****  Linux config options: propagated to domain0  ****/
/*   "acpi=off":      Disables both ACPI table parsing and interpreter.   */
/*   "acpi=force":    Overrides the disable blacklist.                    */
/*   "acpi=strict":   Disables out-of-spec workarounds.                   */
/*   "acpi=ht":       Limits ACPI from boot-time to enable HT.            */
/*   "acpi=noirq":    Disables ACPI interrupt routing.                    */


noacpi

Dies deaktiviert ACPI für Interrupt-Zuweisung.

Kapitel 7. Booten einer Gast-Domain

Mit Hilfe der Anwendung xm können Sie Gast-Domains booten. Alternativ können Sie virsh und den Virtual Machine Manager verwenden, um die Gäste zu booten. Eine Voraussetzung für das Booten einer Gast-Domain ist die vorherige Installation eines Gast-Hosts. Nachfolgendes Beispiel verwendet den Sub-Befehl xm create :
# xm create -c guestdomain1
guestdomain1 ist die Konfigurationsdatei für die Domain, die Sie booten. Die Option -c verbindet sich nach dem Booten mit der eigentlichen Konsole.

Kapitel 8. Starten/Stoppen einer Domain zur Bootzeit

Sie können laufende Domains zu jedem Zeitpunkt starten oder stoppen. Domain0 wartet so lange, bis alle laufenden Domains heruntergefahren sind, bevor ein Neustart durchgeführt wird. Sie müssen die Konfigurationsdateien der Domains, die Sie herunterfahren möchten, im Verzeichnis /etc/xen/ platzieren. Alle Domains, die Sie zur Bootzeit starten möchten, müssen mit /etc/xen/auto symbolisch verlinkt sein.
chkconfig xendomains on
Der Befehl chkconfig xendomains on startet Domains nicht automatisch. Stattdessen startet es die Domains beim nächsten Start des Systems.
chkconfig xendomains off
Beendet alle laufenden Red Hat Virtualisierungs-Domains. Der Befehl chkconfig xendomains off fährt Domains beim nächsten Start des Systems herunter.

Kapitel 9. Konfigurationsdateien

Red Hat Virtualization configuration files contain the following standard variables. Configuration items within these files must be enclosed in quotes ("). These configuration files reside in the /etc/xen directory.

Tabelle 9.1. Red Hat Virtualisierung Konfigurationsdateien

Element Beschreibung
pae
Gibt die Konfigurationsdaten der physikalischen Adresserweiterung an.
apic
Gibt die Konfigurationsdaten des erweiterten, programmierbaren Interrupt-Controllers an.
memory
Gibt die Speichergröße in Megabytes an.
vcpus
Gibt die Anzahl der virtuellen CPUs an.
console
Gibt die Portnummern an, an welche die Konsolen der Domain exportiert werden.
nic
Gibt die Anzahl der virtuellen Netzwerkschnittstellen an.
vif
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
disk
Listet die Blockgeräte auf, die für die Domain exportiert werden sollen und exportiert physikalische Geräte für eine Domain mit schreibgeschützten Zugriff.
dhcp
Aktiviert das Netzwerk unter Verwendung von DHCP.
netmask
Gibt die konfigurierten IP-Netzmasken an.
gateway
Gibt die konfigurierten IP-Gateways.
acpi
Gibt die Konfigurationsdaten der ACPI-Schnittstelle an.

Kapitel 10. CPUs verwalten

Red Hat Virtualization allows a domain's virtual CPUs to associate with one or more host CPUs. This can be used to allocate real resources among one or more guests. This approach allows Red Hat Virtualization to make optimal use of processor resources when employing dual-core, hyperthreading, or other advanced CPU technologies. If you are running I/O intensive tasks, its typically better to dedicate either a hyperthread or entire core to run domain0. The Red Hat Virtualization credit scheduler automatically rebalances virtual cpus between physical ones, to maximize system use. The Red Hat Virtualization system allows the credit scheduler to move CPUs around as necessary, as long as the virtual CPU is pinned to a physical CPU.

Kapitel 11. Migration einer Domain

Bei einer Migration wird eine laufende virtuelle Domain von einem physikalischen Host auf einen anderen übertragen. Die Red Hat Virtualisierung unterstützt zwei Migrations-Varianten — offline und live. Im Rahmen einer Offline-Migration wird eine virtuelle Maschine von einem Host auf einen anderen verschoben, indem sie angehalten, ihr Speicher übertragen und dann auf dem Ziel-Host wieder fortgesetzt wird. Die Live-Migration funktioniert genauso, hat aber keinen direkten Einfluss auf die Domain. Bei der Durchführung einer Live-Migration setzt die Domain ihre normalen Aktivitäten fort, was aus Sicht des Benutzers nicht bemerkbar ist. Um eine Live-Migration zu initiieren, muss auf beiden Hosts die Red Hat Virtualisierung und der xend-Daemon laufen. Die Ziel-Hosts müssen über ausreichende Ressourcen verfügen (z.B. Speicherkapazität), um für die Domain-Bandbreite nach der Migration Platz zu bieten. Sowohl die Quell-, als auch die Zielmaschinen müssen dieselbe Architektur und Virtualisierungserweiterungen (wie z.B. i386-VT, x86-64-VT, x86-64-SVM, etc.) besitzen und sich in demselben L2-Subnetz befinden.
When a domain migrates its MAC and IP addresses move with it. Only virtual machines with the same layer-2 network and subnets will successfully migrate. If the destination node is on a different subnet, the administrator must manually configure a suitable EtherIP or IP tunnel in the remote node of domain0. The xend daemon stops the domain and copies the job over to the new node and restarts it. The Red Hat Virtualization RPM does not enable migration from any other host except the localhost (see the /etc/xend-config.sxp file for information). To allow the migration target to accept incoming migration requests from remote hosts, you must modify the target's xen-relocation-hosts-allow parameter. Be sure to carefully restrict which hosts are allowed to migrate, since there is no authentication.
Da diese Domains so große Datei-Zuweisungen besitzen, kann dieser Prozess sehr zeitaufwendig sein. Falls Sie eine Domain mit bestehenden Netzwerkverbindungen migrieren, bleiben diese auf dem Ziel-Host erhalten und SSH-Verbindungen sollte weiterhin funktionieren. Die standardmäßigen Iptables-Regeln der Red Hat Virtualisierung erlauben keine eingehenden Migrationsverbindungen. Um dies zu erlauben, müssen Sie explizite Iptables-Regeln erstellen.
Mit Hilfe des Befehls "xm migrate" können Sie eine Offline-Migration durchführen:
xm migrate domain-id [destination domain]
Mit Hilfe des Befehls "xm migrate" können Sie eine Live-Migration durchführen:
xm  migrate domain-id -l [destination domain]

You may need to reconnect to the domain's console on the new machine. You can use the xm console command to reconnect.

Kapitel 12. Konfiguration zur Verwendung in einem Netzwerk

Die Integration der Red Hat Virtualisierung in Ihre Netzwerkarchitektur ist ein komplizierter Prozess und erfordert abhängig von Ihrer Infrastruktur möglicherweise eine angepasste Konfiguration, um mehrere Ethernet-Schnittstellen einzusetzen und "Bridging" (Überbrückung) einzurichten.
Each domain network interface is connected to a virtual network interface in dom0 by a point to point link. These devices are vif <domid> and <vifid>. vif1.0 for the first interface in domain 1; vif3.1 for the second interface in domain 3.
Domain0 handhabt den Datenverkehr auf diesen virtuellen Schnittstellen unter Verwendung von standardmäßigen Linux-Konventionen für Bridging, Routing, der Limitierung der Übertragungsrate, etc.. Der xend-Daemon verwendet zwei Shell-Skripte, um eine erste Konfiguration Ihres Netzwerkes und der neuen virtuellen Schnittstellen durchzuführen. Diese Skripte konfigurieren eine einzelne Brücke (single bridge) für alle virtuellen Schnittstellen. Durch Anpassung dieser Skripte können Sie zusätzliches Routing und Bridging konfigurieren.
Red Hat Virtualization's virtual networking is controlled by the two shell scripts, network-bridge and vif-bridge. xend calls these scripts when certain events occur. Arguments can be passed to the scripts to provide additional contextual information. These scripts are located in the /etc/xen/scripts directory. You can change script properties by modifying the xend-config.sxp configuration file located in the /etc/xen directory.
network-bridge — Wenn xend gestartet oder gestoppt wird, initialisiert oder deaktiviert dieses Skript das virtuelle Netzwerk. Anschließend wird durch die Initialisierung der Konfiguration die Bridge xen—br0 erstellt und eth0 auf diese Bridge verschoben, während gleichzeitig das Routing angepasst wird. Wenn sich xend schließlich beendet, entfernt dieses Skript die Bridge und entfernt eth0. Dabei wird die ursprüngliche IP- und Routing-Konfiguration wiederhergestellt.
vif-bridge - Dieses Skript wird für jede virtuelle Schnittstelle auf der Domain aufgerufen. Es konfiguriert Firewall-Regeln und kann vif zur entsprechenden Bridge hinzufügen.
Es gibt weitere Skripte, die Sie zur Unterstützung bei der Einrichtung der Red Hat Virtualisierung in Ihrem Netzwerk verwenden können. Dazu gehören beispielsweise network-route, network-nat, vif-route, und vif-nat. Diese Skripte können auch durch angepasste Varianten ersetzt werden.

Kapitel 13. Domain0 absichern

When deploying Red Hat Virtualization on your corporate infrastructure, you must ensure that domain0 cannot be compromised. Domain0 is the privileged domain that handles system management. If domain0 is insecure, all other domains in the system are vulnerable. There are several ways to implement security you should know about when integrating Red Hat Virtualization into your systems. Together with other people in your organization,you should create a 'deployment plan' that contains the operating specifications and services that will run on Red Hat Virtualization, and what is needed to support these services. Here are some security issues to consider when putting together a deployment plan:
  • Führen Sie die Minimalanzahl an notwendigen Diensten aus. Sie sollten nicht zu viele Jobs und Dienste in domain0 einbinden. Je weniger Dienste auf domain0 laufen, desto höher ist das Sicherheitslevel.
  • Aktivieren Sie SELinux zur Unterstützung der Absicherung von domain0.
  • Verwenden Sie eine Firewall, um den Datenverkehr zu domain0 einzuschränken. Sie können eine Firewall mit "default-reject"-Regeln einrichten, welche domain0 gegen Attacken absichert. Weiterhin ist es wichtig, Dienste mit Netzwerkbindung zu limitieren.
  • Erlauben Sie normalen Benutzern den Zugriff auf domain0 nicht. Wenn Sie normalen Benutzern den Zugriff auf domain0 gestatten, laufen Sie Gefahr, domain0 angreifbar zu machen. Beachten Sie, dass domain0 privilegiert ist, so dass das Bewilligen von unprivilegierten Accounts das Sicherheitslevel kompromittieren kann.

Kapitel 14. Speicherplatz

Es gibt mehrere Möglichkeiten, virtuellen Speicherplatz auf dem Rechner zu verwalten. Sie können ein physikalisches domain0-Blockgerät (Festplatte oder Partition) für eine Gast-Domain als virtuelles Blockgerät (VBD) exportieren. Sie können auch direkt von einem partitionierten Image als dateigestütztes VBD exportieren. Bei der Red Hat Virtualisierung werden LVM und blktap standardmäßig während der Installation aktiviert. Außerdem können Sie standardmäßige Protokolle wie beispielsweise NFS, CLVM, oder iSCSI verwenden, um Speicherplatz für virtuelle Maschinen bereitzustellen.

Kapitel 15. Das Verwalten von virtuellen Maschinen mit "virsh"

Mit Hilfe der Anwendung virsh können Sie virtuelle Maschinen verwalten. Dieses Dienstprogramm setzt an der Management-API von libvirt an und fungiert als Alternative zum xm-Tool oder dem grafischen Virtual Machine Manager. Unprivilegierte Benutzer können dieses Dienstprogramm für schreibgeschützte Operationen einsetzen. Falls Sie planen, xend/qemu auszuführen, sollten Sie xend/qemu als Dienst aktivieren. Nach der Anpassung der entsprechenden Konfigurationsdatei, starten Sie das System neu und xend/qemu wird als Dienst ausgeführt. Mit Hilfe von "virsh" können Sie Skripte bei der Arbeit mit virtuellen Maschine verwenden. Wie das xm-Tool lässt sich virsh auf Kommandozeilenebene ausführen.

15.1. Verbindung mit einem Hypervisor

Mit Hilfe von virsh können Sie eine Sitzung mit dem Hypervisor initiieren:
virsh connect <name>
Where <name> is the machine name of the hypervisor. If you want to initiate a read—only connection, append the above command with —readonly.

15.2. Erstellen einer virtuellen Maschine

Sie können eine neue Sitzung für eine neue virtuelle Maschine aus einer XML-Maschinendefinition erstellen. Falls Sie einen bereits bestehenden Gast besitzen, den Sie zuvor mit dem xm-Tool erstellt haben, können Sie für diesen ebenfalls eine virtuelle Maschine erstellen:
virsh create <path to XML configuration file>

15.3. Konfiguration eines XML-Dump

Mit Hilfe von virsh können Sie einen Daten-Dump für eine bereits bestehende virtuelle Maschine durchführen.
virsh dumpxml [domain-id | domain-name | domain-uuid]
This command outputs the domain information (in XML) to stdout . If you save the data to a file, you can use the create option to recreate the virtual machine.

15.4. Anhalten einer virtuellen Maschine

Mit Hilfe von virsh können Sie eine Domain anhalten:
virsh suspend [domain-id | domain-name |domain-uuid]
When a domain is in a suspended state, it still consumes system RAM. There will also be no disk or network I/O when suspended. This operation is immediate and the virtual machine must be restarted with the resume option.

15.5. Fortsetzen einer virtuellen Maschine

Mit Hilfe von virsh können Sie eine angehaltene virtuelle Maschine wiederherstellen:
virsh resume [domain-id | domain-name | domain-uuid]
Dieser Vorgang wird sofort umgesetzt und die Parameter der virtuellen Maschine werden in einer suspend- und resume-Schleife festgehalten.

15.6. Speichern einer virtuellen Maschine

Mit Hilfe von virsh können Sie den aktuellen Status einer virtuellen Maschine in eine Datei speichern:
virsh save [domain-name][domain-id | domain-uuid][filename]
This stops the virtual machine you specify and saves the data to a file, which may take some time given the amount of memory in use by your virtual machine. You can restore the state of the virtual machine with the restore option.

15.7. Wiederherstellen einer virtuellen Maschine

You can use virsh to restore a virtual machine that you previously saved with the virsh save option:
virsh restore [filename]
This restarts the saved virtual machine, which may take some time. The virtual machine's name and UUID are preserved but are allocated for a new id.

15.8. Herunterfahren einer virtuellen Maschine

Mit Hilfe von virsh können Sie eine virtuelle Maschine herunterfahren:
virsh shutdown [domain-id | domain-name | domain-uuid]
Sie können das Verhalten der neustartenden virtuellen Maschine kontrollieren, indem Sie die Parameter on_shutdown der Datei xmdomain.cfg modifizieren.

15.9. Neustart einer virtuellen Maschine

Mit Hilfe von virsh können Sie eine virtuelle Maschine neustarten.
virsh reboot [domain-id | domain-name | domain-uuid]
Sie können das Verhalten der neustartenden virtuellen Maschine kontrollieren, indem Sie die Parameter on_reboot der Datei xmdomain.cfg modifizieren.

15.10. Entfernen einer Domain

Mit Hilfe von virsh können Sie eine virtuelle Maschine entfernen:
virsh destroy [domain-name | domain-id | domain-uuid]
This command does an immediate ungraceful shutdown and stops any guest domain sessions (which could potentially lead to file corruptted filesystems still in use by the virtual machine). You should use the destroy option only when the virtual machine's operating system is non-responsive. For a paravirtualized virtual machine, you should use the shutdown option.

15.11. Konvertierung eines Domain-Namens in eine Domain-ID

Mit Hilfe von virsh können Sie einen Domain-Namen oder -UUID in eine Domain-ID konvertieren:
virsh domid [domain-name | domain-uuid]

15.12. Konvertierung einer Domain-ID in einen Domain-Namen

Mit Hilfe von virsh können Sie einen Domain-ID oder -UUID in eine Domain-Namen konvertieren:
virsh domname [domain-name | domain-uuid]

15.13. Konvertierung eines Domain-Namens in eine UUID

Mit Hilfe von virsh können Sie einen Domain-Namen in eine UUID konvertieren:
virsh domuuid [domain-id | domain-uuid]

15.14. Anzeige der Informationen einer virtuellen Maschine

Mit Hilfe von virsh können Sie Informationen für eine vorgegebene virtuelle Maschine, die durch ihre Domain-ID, ihren Domain-Name oder ihre UUID identifiziert wird, anzeigen:
virsh dominfo [domain-id | domain-name | domain-uuid]

15.15. Anzeige von Knoten-Informationen

Mit Hilfe von virsh können Sie Knoten-Informationen anzeigen:
virsh nodeinfo
Die Ausgabe zeigt in etwa das Folgende an:
CPU model                    x86_64
CPU (s)                      8
CPU frequency                2895 Mhz
CPU socket(s)                2      
Core(s) per socket           2
Threads per core:            2
Numa cell(s)                 1
Memory size:                 1046528 kb
Dargestellt werden die Knoten-Informationen und die Maschinen, die den Virtualisierungsprozess unterstützen.

15.16. Anzeige der virtuellen Maschinen

Mit Hilfe von virsh können Sie die Liste der virtuellen Maschinen und deren aktuellen Status anzeigen:
virsh list domain-name [ ——inactive  |  —— -all]
Die Option ——inactive listet inaktive Domains (Domains, die definiert wurden, aber derzeit nicht aktiv sind) auf. Die Option — -all listet alle Domains auf, egal ob aktiv oder nicht. Die Ausgabe sollte in etwa wie in folgendem Beispiel aussehen:
ID                 Name                 State
————————————————
0                   Domain0             running
1                   Domain202           paused
2                   Domain010           inactive
3                   Domain9600          crashed
Nachfolgend sind die sechs Domain-Status aufgeführt:
running  lists domains currently active on the CPU

blocked  lists domains that are blocked

paused   lists domains that are suspended

shutdown lists domains that are in process of shutting down
 
shutoff  lists domains that are completely down.

crashed  lists domains that are crashed

15.17. Darstellung von Informationen zur virtuellen CPU

Mit Hilfe von virsh können Sie die Informationen zu(r) virtuellen CPU(s) einer virtuellen Maschine anzeigen:
virsh vcpuinfo [domain-id | domain-name | domain-uuid]

15.18. Konfiguration der Affinität einer virtuellen CPU

Mit Hilfe von virsh können Sie die Affinität virtueller CPUs mit physikalischen CPUs konfigurieren:
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
Wobei [vcpu] die Zahl der virtuellen VCPU darstellt und [cpulist] die Anzahl der physikalischen CPUs auflistet.

15.19. Konfiguration der Anzahl virtueller CPUs

You can use virsh to modify a Virtual Machine's number of CPUs:
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
Beachten Sie, dass die neue Zahl nicht die Menge überschreiten kann, die Sie bei der Erstellung der virtuellen Maschine angegeben haben.

15.20. Konfiguration der Speicherzuweisung

You can use virsh to modify a domain's memory allocation:
virsh setmem [domain-id | domain-name]  [count]
You must specify the [count] in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. You can adjust the Virtual Machine memory as necessary.

15.21. Konfiguration des maximalen Speichers

You can use virsh to modify a Virtual Machine's maximum memory:
virsh setmaxmem  [domain-name | domain-id | domain-uuid] [count]
You must specify the [count] in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. The maximum memory doesn't affect the current use of the Virtual Machine (unless the new value is lower which should shrink memory usage).

15.22. Managing Virtual Networks

You can use virsh to manage virtual networks. To list virtual networks:
virsh net-list
This command generates output similar to:
[root@domain ~]# virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes      
vnet1	             active     yes      
vnet2	             active     yes
To view network information for a specific virtual network:
virsh net-dumpxml [vnet name]
This displays information about a specified virtual network in XML format:
	
[root@domain ~]# virsh net-dumpxml vnet1
<network>
  <name>vnet1</name>
  <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid>
  <forward dev='eth0'/>
  <bridge name='vnet0' stp='on' forwardDelay='0' />
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254' />
    </dhcp>
  </ip>
</network>
Other virsh commands used in managing virtual networks are:
  • virsh net-autostart [network name] — Autostart a network specified as [network name]
  • virsh net-create [XML file] — Generates and starts a new network using a preexisting XML file
  • virsh net-define [XML file] — Generates a new network from a preexisting XML file without starting it
  • virsh net-destroy [network name] — Destroy a network specified as [network name]
  • virsh net-name [network UUID] — Convert a specified [network UUID] to a network name
  • virsh net-uuid [network name — Convert a specified [network name] to a network UUID
  • virsh net-start [name of an inactive network] — Starts a previously undefined inactive network
  • virsh net-undefine [name of an inactive network] — Undefine an inactive network

Kapitel 16. Das Verwalten virtueller Maschinen unter Verwendung von xend

Der xend Kontrollknoten-Daemon führt gewisse Systemverwaltungsfunktionen durch, die im Zusammenhang mit virtuellen Maschinen stehen. Dieser Daemon kontrolliert die virtualisierten Ressourcen und xend muss so laufen, dass er mit virtuellen Maschinen interagiert. Bevor Sie xend starten, müssen Sie die Betriebsparameter angeben, indem Sie die xend-Konfigurationsdatei xend-config.sxp, die sich im Verzeichnis etc/xen befindet, bearbeiten. Nachfolgend finden Sie die Parameter, die Sie in der Konfigurationsdatei xend-config.sxp aktivieren oder deaktivieren können:

Tabelle 16.1. Die xend-Konfigurationsparameter der Red Hat Virtualisierung

Element Beschreibung
console-limit
Determines the console server's memory buffer limit and assigns values on a per-domain basis
min-mem
Bestimmt die minimale Anzahl an Megabytes, die für domain0 reserviert werden (wenn Sie 0 eingeben, ändert sich der Wert nicht)
dom0 cpus
Bestimmt die Zahl der von domain0 verwendeten CPUs (mindestens 1 CPU wird standardmäßig zugewiesen)
enable-dump
Bestimmt, dass im Falle eines Absturzes ein Dump aktiviert wird (Standard ist 0)
external-migration-tool
Bestimmt das Skript oder die Anwendung, die die externe Gerätemigration handhabt (die Skripte müssen sich in etc/xen/scripts/external-device-migrate befinden)
logfile
Bestimmt den Ort der Protokolldatei (standardmäßig /var/log/xend.log)
loglevel
Filtert die Werte des Protokollmodus aus: DEBUG, INFO, WARNING, ERROR oder CRITICAL (standardmäßig DEBUG)
network-script
Bestimmt das Skript, dass die Netzwerkumgebung aktiviert (Skripte müssen sich im Verzeichnis etc/xen/scripts befinden)
xend-http-server
Aktiviert den HTTP-Stream Paket-Management-Server (standardmäßig "no")
xend-unix-server
Aktiviert den UNIX Domain-Socket-Server (ein Socket-Server ist ein Kommunikationsendpunkt, der Lowlevel-Netzwerkverbindungen handhabt und einkommende Verbindungen akzeptiert oder abweist)
xend-relocation-server
Aktiviert den Umzugsserver für maschinenübergreifende Migrationen (standardmäßig "no")
xend-unix-path
Bestimmt den Ort, an dem der Befehl xend-unix-server Daten ausgibt (standardmäßig var/lib/xend/xend-socket)
xend-port
Bestimmt den Port, den der HTTP-Management-Server verwendet (standardmäßig 8000)
xend-relocation-port
Bestimmt den Port, den der Umzugsserver verwendet (standardmäßig 8002)
xend-relocation-address
Bestimmt die Adressen der virtuellen Maschine, die für die Systemmigration gestattet sind
xend-address
Bestimmt die Adresse, mit der sich der Domain-Socket-Server verbindet.
Nachdem Einrichten dieser Betriebsparameter sollten Sie überprüfen, dass xend läuft und falls dies nicht der Fall ist, den Daemon initialisieren. Sie können den xend-Daemon am Kommandozeilenprompt starten, indem Sie Folgendes eingeben:
service xend start
Mit Hilfe von xend können Sie den Daemon stoppen:
service xend stop
Dies beendet das Ausführen des Daemon.
Mit Hilfe von xend können Sie den Daemon neu starten:
service xend restart
Der Daemon startet erneut.
Sie können den Status des xend-Daemon überprüfen.
service xend status
The output displays the daemon's status.

Kapitel 17. Die Verwaltung virtueller Maschinen mit dem Virtual Machine Manager

Dieser Abschnitt beschreibt die Fenster, die Dialog-Kästen und verschiedene GUI-Kontrollmöglichkeiten des Red Hat Virtual Machine Manager (VMM) der Red Hat Virtualisierung.

17.1. Die Architektur des Virtual Machine Manager

Die Red Hat Virtualisierung besteht aus einer Sammlung von Softwarekomponenten, die zusammenarbeiten, um virtuelle Maschinen zu hosten und zu verwalten. Der Virtual Machine Manager (VMM) bietet Ihnen einen grafischen Überblick über die virtuellen Maschinen auf Ihrem System. Sie können den VMM sowohl zur Definition von paravirtualisierten, als auch voll virtualisierten Maschinen verwenden. Mit dem Virtual Machine Manager können sie jede beliebige Anzahl von Management-Aufgaben durchführen, inklusive der Zuweisung von Speicher, der Zuweisung virtueller CPUs, der Überwachung von Leistung im laufenden Betrieb. Weiterhin können Sie virtuelle Systeme speichern, wiederherstellen, aussetzen, fortsetzen und herunterfahren. Sie haben außerdem Zugriff auf die Text- und grafische Konsole. Im Rahmen der Red Hat Virtualisierung werden CPU und Speicher-Ressourcen von der darunter liegenden Hardware- und Netzwerkkonfiguration abstrahiert. Dies ermöglicht das Zusammenfassen von abzuarbeitenden Ressourcen sowie das dynamische Zuweisen derselben an Applikationen und Dienstanfragen. Chip-Level-Virtualisierung ermöglicht das Betreiben von Betriebssystemen mit Intel VT- und AMD Pacifica-Hardware auf Hypervisoren.

17.2. Das Fenster "Verbindung öffnen"

This window appears first and prompts the user to choose a hypervisor session. Non-privileged users can initiate a read-only session. Root users can start a session with full blown read-write status. For normal use, select the Local Xen host option. You start the Virtual Machine Manager test mode by selecting the Other hypervisor and then type test:///default in the URL field beneath. Once in test mode, you can connect to a libvirt dummy hypervisor. Note that although the Remote Xen host screen is visible, the functionality to connect to such a host is not implemented into Red Hat Enterprise Linux 5.1.
Virtual Machine Manager Connection window

Abbildung 17.1. Virtual Machine Manager Connection window

17.3. Das Fenster "Virtual Machine Manager"

Dieses Fenster zeigt alle laufenden virtuellen Maschinen, sowie deren zugeteilte Ressourcen (inklusive domain0). Sie können entscheiden, welche Felder angezeigt werden sollen. Ein Doppelklick auf die gewünschte virtuelle Maschine liefert die entsprechende Konsole für die bestimmte Maschine. Die Auswahl einer virtuellen Maschine und ein Doppelklick auf die Schaltfläche Details stellt das Fenster "Details" für diese Maschine dar. Weiterhin können Sie auf das Menü Datei zugreifen, um eine neue virtuelle Maschine zu erstellen.
Virtual Machine Manager main window

Abbildung 17.2. Virtual Machine Manager main window

17.4. Das Fenster "Details zur virtuellen Maschine"

This window displays graphs and statistics of a guest's live resource utilization data available from the Red Hat Virtualization Virtual Machine Manager. The UUID field displays the globally unique identifier for the virtual machines(s).
Virtual Machine Manager Details window

Abbildung 17.3. Virtual Machine Manager Details window

17.5. Die grafische Konsole einer virtuellen Maschine

This window displays a virtual machine's graphical console. Paravirtual and full virtual machines use different techniques to export their local virtual framebuffers, but both technologies use VNC to make them available to the Virtual Machine Manager's console window. If your virtual machine is set to require authentication, the Virtual Machine Graphical console prompts you for a password before the display appears.
Das Fenster "Grafische Konsole"

Abbildung 17.4. Das Fenster "Grafische Konsole"

Your local desktop can intercept key combinations (for example, Ctrl+Alt+F11) to prevent them from being sent to the guest machine. You can use the Virtual Machine Manager's 'sticky key' capability to send these sequences. You must press any modifier key (like Ctrl or Alt) 3 times and the key you specify gets treated as active until the next non-modifier key is pressed. Then you can send Ctrl-Alt-F11 to the guest by entering the key sequence 'Ctrl Ctrl Ctrl Alt+F1'.

17.6. Starting the Virtual Machine Manager

Um eine Sitzung des Virtual Machine Manager zu starten, klicken Sie auf Systemwerkzeuge im Menü Anwendungen und wählen den Virtual Machine Manager.
Das Hauptfenster "Virtual Machine Manager" erscheint.
Starting the Virtual Machine Manager

Abbildung 17.5. Starting the Virtual Machine Manager

17.7. Erstellen einer neuen virtuellen Maschine

Der Virtual Machine Manager (virt-manager) ist die Desktop-Anwendung, die virtuelle Maschinen verwaltet.
You can use Red Hat's Virtual Machine Manager to:
  • Neue Domains zu erstellen.
  • Configure or adjust a domain's resource allocation and virtual hardware.
  • Die Leistung und Statistiken zur Nutzung von Ressourcen von laufenden Domains zusammenzufassen.
  • Graphen, die Leistung und die Nutzung von Ressourcen über einen bestimmten Zeitraum darstellen, anzuzeigen.
  • Das eingebundene (embedded) Darstellungsprogramm des VNC-Client, welches der Gast-Domain eine umfassende grafische Konsole bietet, zu verwenden.

Anmerkung

You must install Red Hat Enterprise Linux 5.1, virt-manager, and the kernel packages on all systems that require virtualization. All systems then must be booted and running the Red Hat Virtualization kernel.
Folgende Schritte sind erforderlich, um mit Hilfe des Virtual Machine Monitor ein Gast-Betriebssystem unter Red Hat Enterprise Linux 5 zu installieren:

Prozedur 17.1. Ein Gast-Betriebssystem erstellen

  1. Wählen Sie Systemwerkzeuge aus dem Menü Anwendungen und dann anschließend Virtual Machine Manager.
    Das Hauptfenster "Virtual Machine Manager" erscheint.
    Virtual Machine Manager window

    Abbildung 17.6. Virtual Machine Manager window

  2. Wählen Sie Neue Maschine aus dem Menü Datei.
    Eine neue Maschine auswählen

    Abbildung 17.7. Eine neue Maschine auswählen

    Der Wizard zur Erstellung eines neuen virtuellen Systems erscheint.
  3. Click Forward.
    Wizard zur Erstellung eines neuen virtuellen Systems

    Abbildung 17.8. Wizard zur Erstellung eines neuen virtuellen Systems

  4. Enter the name of the new virtual system and then click Forward.
    Benennung des virtuellen Systems

    Abbildung 17.9. Benennung des virtuellen Systems

  5. Geben Sie den Ort Ihrer Installationsmedien an. Der Ort der Kickstart-Datei ist optional. Klicken Sie anschließend auf Weiter.
    Ort der Installationsmedien

    Abbildung 17.10. Ort der Installationsmedien

  6. Installieren Sie entweder auf eine physikalische Plattenpartition oder installieren Sie in ein virtuelles Dateisystem innerhalb einer Datei.

    Anmerkung

    Nachfolgendes Beispiel installiert ein virtuelles System innerhalb einer Datei.
    SELinux policy only allows xen disk images to reside in /var/lib/xen/images.
    Open a terminal and create the /xen directory and set the SELinux policy with the command restorecon -v /xen. Specify your location and the size of the virtual disk, then click Forward.
    Zuweisen von Speicherplatz

    Abbildung 17.11. Zuweisen von Speicherplatz

  7. Select memory to allocate the guest and the number of virtual CPUs then click Forward.
    Speicher und CPU zuweisen

    Abbildung 17.12. Speicher und CPU zuweisen

  8. Select Forward to open a console and the files start to install.
    Speicher und CPU zuweisen

    Abbildung 17.13. Speicher und CPU zuweisen

  9. Schließen Sie Ihre Installation in dem zur Verfügung gestellten Fenster ab.
    Die Installation beginnt...

    Abbildung 17.14. Die Installation beginnt...

    Warnung

    When installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, do not use the kernel-xen kernel. Using this kernel on fully virtualized guests can cause your system to hang.
    If you are using an Installation Number when installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, be sure to deselect the Virtualization package group during the installation. The Virtualization package group option installs the kernel-xen kernel.
    Note that paravirtualized guests are not affected by this issue. Paravirtualized guests always use the kernel-xen kernel.
  10. Type xm create -c xen-guest to start the Red Hat Enterprise Linux 5.1 guest. Right click on the guest in the Virtual Machine Manager and choose Open to open a virtual console.
    Red Hat Enterprise Linux 5.1 (guest)

    Abbildung 17.15. Red Hat Enterprise Linux 5.1 (guest)

  11. Geben Sie Benutzernamen und Passwort ein, um mit der Benutzung des Virtual Machine Manager fortzufahren.

17.8. Eine gespeicherte Maschine wiederherstellen

Nachdem Sie den Virtual Machine Manager gestartet haben, werden alle virtuellen Maschinen auf Ihrem System im Hauptfenster angezeigt. Domain0 ist Ihr Host-System. Falls keine Maschinen existieren, bedeutet dies, dass derzeit keine Maschinen auf dem System laufen.
Eine zuvor gespeicherte Sitzung wiederherstellen:
  1. Wählen Sie aus dem Menü Datei die Option Eine gespeicherte Maschine wiederherstellen.
    Restoring a Virtual Machine

    Abbildung 17.16. Restoring a Virtual Machine

  2. Das Hauptfenster "Virtuelle Maschine wiederherstellen" erscheint.
    Auswahl von gespeicherten Sitzungen virtueller Maschinen

    Abbildung 17.17. Auswahl von gespeicherten Sitzungen virtueller Maschinen

  3. Begeben Sie sich in das korrekte Verzeichnis und wählen Sie die gespeicherte Sitzungsdatei.
  4. Klicken Sie auf Öffnen.
Das gespeicherte virtuelle System erscheint im Fenster des Virtual Machine Manager.
Die wiederhergestellte Sitzung des Virtual Machine Manager

Abbildung 17.18. Die wiederhergestellte Sitzung des Virtual Machine Manager

17.9. Displaying Virtual Machine Details

Mit Hilfe des Virtual Machine Monitor können Sie die sich die Daten zur Aktivität einer beliebigen virtuellen Maschine auf Ihrem System anschauen.
To view a virtual system's details:
  1. Heben Sie im Hauptfenster des Virtual Machine Manager die virtuelle Maschine, die Sie ansehen möchten, hervor.
    Auswahl einer anzuzeigenden virtuellen Maschine

    Abbildung 17.19. Auswahl einer anzuzeigenden virtuellen Maschine

  2. Wählen Sie Maschinendetails aus dem Menü Bearbeiten des Virtual Machine Manager (oder klicken Sie auf die Schaltfläche Details am unteren Rand des Hauptfensters des Virtual Machine Manager).
    Anzeige des Detail-Menüs der virtuellen Maschine

    Abbildung 17.20. Anzeige des Detail-Menüs der virtuellen Maschine

    Das Fenster für den Überblick über die Details der virtuellen Maschine erscheint. Dieses Fenster fasst die Verwendung von CPU und Speicher für die von Ihnen angegebene(n)Domain(s) zusammen.
    Anzeige des Detail-Überblicks der virtuellen Maschine

    Abbildung 17.21. Anzeige des Detail-Überblicks der virtuellen Maschine

  3. Klicken Sie im Fenster "Details der virtuellen Maschine" auf den Reiter Hardware.
    Das Fenster für die Hardware-Details der virtuellen Maschine erscheint.
    Anzeige der Hardware-Details der virtuellen Maschine

    Abbildung 17.22. Anzeige der Hardware-Details der virtuellen Maschine

  4. Um die derzeitige Zuweisung von Prozessorspeicher zu betrachten oder zu verändern, klicken Sie auf Prozessor auf dem Reiter Hardware.
    Anzeige der Prozessorzuweisung

    Abbildung 17.23. Anzeige der Prozessorzuweisung

  5. Um die derzeitige Zuweisung von Arbeitsspeicher zu betrachten oder zu verändern, klicken Sie auf Speicher auf dem Reiter Hardware.
    Anzeige der Arbeitsspeicherzuweisung

    Abbildung 17.24. Anzeige der Arbeitsspeicherzuweisung

  6. Um die derzeitige Festplattenkonfiguration zu betrachten oder zu verändern, klicken Sie auf Platte auf dem Reiter Hardware.
    Anzeige der Festplattenkonfiguration

    Abbildung 17.25. Anzeige der Festplattenkonfiguration

  7. Um die derzeitige Netzwerkkonfiguration zu betrachten oder zu verändern, klicken Sie auf Netzwerk auf dem Reiter Hardware.
    Anzeige der Netzwerkkonfiguration

    Abbildung 17.26. Anzeige der Netzwerkkonfiguration

17.10. Configuring Status Monitoring

Mit Hilfe des Virtual Machine Manager können Sie die Statusüberwachung des virtuellen Systems modifizieren.
Gehen Sie wie folgt vor, um die Statusüberwachung zu konfigurieren und Konsolen zu aktivieren:
  1. Wählen Sie Präferenzen aus dem Menü Bearbeiten.
    Modifizieren der Präferenzen der virtuellen Maschine

    Abbildung 17.27. Modifizieren der Präferenzen der virtuellen Maschine

    Das Fenster "Präferenzen" des Virtual Machine Manager erscheint.
  2. Geben Sie in der Auswahlbox der Statusüberwachung die Zeit (in Sekunden) an, die Sie für das System-Update festlegen möchten.
    Configuring Status Monitoring

    Abbildung 17.28. Configuring Status Monitoring

  3. Geben Sie im Konsolenbereich an, wie eine Konsole geöffnet werden soll und legen Sie ein Eingabegerät fest.

17.11. Anzeige der Domain-ID

Gehen Sie wie folgt vor, um die Domain-IDs für alle virtuellen Maschinen auf Ihrem System zu betrachten:
  1. Wählen Sie das Kontrollkästchen Domain-ID aus dem Menü Anzeigen.
    Anzeige von Domain-IDs

    Abbildung 17.29. Anzeige von Domain-IDs

  2. The Virtual Machine Manager lists the Domain ID's for all domains on your system.
    Anzeige von Domain-IDs

    Abbildung 17.30. Anzeige von Domain-IDs

17.12. Anzeige des Status der virtuellen Maschine

Gehen Sie wie folgt vor, um den Status aller virtuellen Maschinen auf Ihrem System zu betrachten:
  1. Wählen Sie das Kontrollkästchen Status aus dem Menü Ansicht.
    Anzeige des Status der virtuellen Maschine

    Abbildung 17.31. Anzeige des Status der virtuellen Maschine

  2. Der Virtual Machine Manager listet den Status aller virtuellen Maschinen auf Ihrem System auf.
    Anzeige des Status der virtuellen Maschine

    Abbildung 17.32. Anzeige des Status der virtuellen Maschine

17.13. Virtuelle CPUs anzeigen

Gehen Sie wie folgt vor, um die Anzahl der virtuellen CPUs für alle virtuellen Maschinen auf Ihrem System anzusehen:
  1. Wählen Sie aus dem Menü Anzeigen das Kontrollkästchen Virtuelle CPUs.
    Virtuelle CPUs anzeigen

    Abbildung 17.33. Virtuelle CPUs anzeigen

  2. Der Virtual Machine Manager listet die virtuellen CPUs für alle virtuellen Maschinen auf Ihrem System auf.
    Virtuelle CPUs anzeigen

    Abbildung 17.34. Virtuelle CPUs anzeigen

17.14. Anzeigen der CPU-Auslastung

Gehen Sie wie folgt vor, um die CPU-Auslastung für alle virtuellen Maschinen auf Ihrem System anzusehen:
  1. Wählen Sie das Kontrollkästchen CPU-Auslastung aus dem Menü Anzeige.
    Anzeigen der CPU-Auslastung

    Abbildung 17.35. Anzeigen der CPU-Auslastung

  2. Der Virtual Maschine Manager listet den Anteil der CPU-Auslastung in Prozent für alle virtuellen Maschinen auf Ihrem System auf.
    Anzeigen der CPU-Auslastung

    Abbildung 17.36. Anzeigen der CPU-Auslastung

17.15. Anzeigen des Speicherverbrauchs

Gehen Sie wie folgt vor, um den Speicherverbrauch für alle virtuellen Maschinen auf Ihrem System zu betrachten:
  1. Wählen Sie aus dem Menü Anzeigen das Kontrollkästchen Speicherbelegung.
    Anzeigen des Speicherverbrauchs

    Abbildung 17.37. Anzeigen des Speicherverbrauchs

  2. Der Virtual Maschine Manager listet den Anteil des Speicherverbrauchs (in Megabytes) für alle virtuellen Maschinen auf Ihrem System auf.
    Anzeigen des Speicherverbrauchs

    Abbildung 17.38. Anzeigen des Speicherverbrauchs

17.16. Managing a Virtual Network

To configure a virtual network on your system:
  1. From the Edit menu, select Host Details.
    Selecting Host Details

    Abbildung 17.39. Selecting Host Details

  2. This will open the Host Details menu. Click the Virtual Networks tab.
    Virtual Network Configuration

    Abbildung 17.40. Virtual Network Configuration

  3. All available virtual networks are listed on the left-hand box of the menu. You can edit the configuration of a virtual network by selecting it from this box and editing as you see fit.

17.17. Creating a Virtual Network

To create a virtual network on your system:
  1. Open the Host Details menu (refer to Abschnitt 17.16, »Managing a Virtual Network«) and click the Add button.
    Virtual Network Configuration

    Abbildung 17.41. Virtual Network Configuration

    This will open the Create a new virtual network menu. Click Forward to continue.
    Creating a new virtual network

    Abbildung 17.42. Creating a new virtual network

  2. Enter an appropriate name for your virtual network and click Forward.
    Naming your virtual network

    Abbildung 17.43. Naming your virtual network

  3. Enter an IPv4 address space for your virtual network and click Forward.
    Choosing an IPv4 address space

    Abbildung 17.44. Choosing an IPv4 address space

  4. Define the DHCP range for your virtual network by specifying a Start and End range of IP addresses. Click Forward to continue.
    Selecting the DHCP range

    Abbildung 17.45. Selecting the DHCP range

  5. Select how the virtual network should connect to the physical network.
    Connecting to physical network

    Abbildung 17.46. Connecting to physical network

    If you select Forwarding to physical network, choose whether the Destination should be NAT to any physical device or NAT to physical device eth0.
    Click Forward to continue.
  6. You are now ready to create the network. Check the configuration of your network and click Finish.
    Ready to create network

    Abbildung 17.47. Ready to create network

  7. The new virtual network is now available in the Virtual Network tab of the Host Details menu.
    New virtual network is now available

    Abbildung 17.48. New virtual network is now available

Kapitel 18. Red Hat Virtualisierung Problembehandlung

Dieser Abschnitt behandelt potentielle Probleme, mit denen Sie möglicherweise während der Installation, der Verwaltung und den alltäglichen Arbeiten mit Ihrem/Ihren Red Hat Virtualisierung System(en) konfrontiert werden. Dieser Abschnitt "Problembehandlung" beschäftigt sich mit den Fehlermeldungen, den Speicherorten der Protokolldateien, den System-Tools und allgemeine Ansätzen, um Daten zu sammeln und Probleme zu analysieren.

18.1. Überblick über Protokolldateien und deren Speicherorten

When deploying Red Hat Enterprise Linux 5.1 with Virtualization into your network infrastructure, the host's Virtualization software uses many specific directories for important configuration, log files, and other utilities. All the Red Hat Virtualization logs files are standard ASCII files, and easily accessable with any ASCII based editor:
  • Das Haupt-Konfigurationsverzeichnis von Red Hat Virtualisierung ist /etc/xen/. Dieses Verzeichnis enthält den xend -Daemon und andere Konfigurationsdateien der virtuellen Maschine. Außerdem befinden sich hier die Dateien der Netzwerkskripte (im Unterverzeichnis /scripts).
  • Alle der eigentlichen Protokolldateien selbst, die Sie zu Zwecken der Problembehandlung heranziehen können, befinden sich im Verzeichnis /var/log/xen.
  • Sie sollten außerdem wissen, dass sich das standardmäßige Verzeichnis für alle dateibasierten Disk-Images der virtuellen Maschine im Verzeichnis /var/lib/xen befindet.
  • Informationen zur Red Hat Virtualisierung bezüglich des /proc-Dateisystems befinden sich im Verzeichnis /proc/xen/.

18.2. Beschreibungen der Protokolldateien

Red Hat Virtualisierung ist mit dem xend-Daemon und dem qemu-dm-Prozess ausgestattet. Beide Dienstprogramme schreiben mehrere Protokolldateien in das Verzeichnis /var/log/xen/:
  • xend.log ist die Protokolldatei, die sämtliche Daten enthält, die vom xend-Daemon gesammelt werden, unabhängig davon, ob es sich um ein Systemereignis oder eine durch den Betreiber initiierte Aktion handelt. Alle Vorgänge (wie beispielsweise create, shutdown, destroy, etc.) erscheinen hier. xend.log ist normalerweise die erste Anlaufstelle, wenn Sie versuchen, Performanz- oder Ereignisprobleme ausfindig zu machen. Diese Datei enthält detaillierte Einträge und Umstände der Fehlermeldungen.
  • xend-debug.log ist die Protokolldatei, die Einträge von Ereignisfehlern des xend beinhaltet, sowie des Virtualisierungs-Subsystems (wie beispielsweise Framebuffer, Python-Skripte, etc.).
  • xen-hotplug-log ist die Protokolldatei, die Daten von Hotplug-Ereignissen beinhaltet. Falls ein Gerät oder ein Netzwerkskript sich nicht online setzen lässt, wird dieses Ereignis hier festgehalten.
  • qemu-dm.[PID].log ist die Protokolldatei, die vom qemu-dm-Prozess für jeden voll virtualisierten Gast erstellt wird. Bei der Verwendung dieser Protokolldatei müssen Sie die Prozess-ID (PID) des vorhandenen qemu-dm -Prozesses mit Hilfe des Befehls ps ermitteln, um Prozess-Argumente zur Unterscheidung des qemu-dm-Prozesses auf der virtuellen Maschine zu untersuchen. Beachten Sie bitte, dass Sie das [PID]-Symbol mit der tatsächlichen PID des qemu-dm-Prozesses ersetzen müssen.
Falls Sie auf irgendwelche Fehler mit dem Virtuelle Maschine Manager stoßen, können Sie die generierten Daten in der Datei virt-manager.log untersuchen, welche sich im Verzeichnis /.virt-manager befindet. Beachten Sie bitte, dass der Inhalt dieser Protokolldatei bei jedem Neustart des Virtuelle Maschine Manager überschrieben wird. Stellen Sie daher sicher, dass Sie eine Sicherungskopie der Datei virt-manager.log erstellen, bevor Sie den Virtuelle Maschine Manager nach einem Systemfehler neu starten.

18.3. Speicherorte wichtiger Verzeichnisse

Es existieren zusätzliche Dienstprogramme und Protokolldateien, an die Sie denken sollten, wenn Sie innerhalb einer Red Hat Virtualisierungsumgebung Fehler aufspüren und Probleme beheben.
  • Die Images virtueller Maschinen befinden sich im Verzeichnis /var/lib/xen/images.
  • Wenn Sie den xend-Daemon neu starten, aktualisiert dieser die xend-database, die sich im Verzeichnis /var/lib/xen/xend-db befindet.
  • Speicherauszüge (Dumps) virtueller Maschinen (die Sie mit dem Befehl xm dump-core durchführen) befinden sich im Verzeichnis /var/lib/xen/dumps.
  • Das Verzeichnis /etc/xen enthält die Konfigurationsdateien, die Sie zur Verwaltung der Systemressourcen verwenden. Die Konfigurationsdatei des xend-Daemon heißt xend-config.sxp, und Sie können diese Datei dazu verwenden, systemweite Änderungen zu implementieren und die Netzwerk-Callouts zu konfigurieren.
  • Die proc-Befehle sind eine weitere Quelle, die Sie zur Sammlung von Systeminformationen heranziehen können. Diese proc-Einträge befinden sich im Verzeichnis /proc/xen:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/

18.4. Tools zur Problembehandlung

Dieser Abschnitt fasst die Systemadministrator-Applikationen, die Netzwerk-Dienstprogramme und die Erweiterten Debugging-Tools zusammen (weitere Informationen zur Verwendung dieser Tools zur Konfiguration der Red Hat Virtualisierungsdienste finden Sie in den jeweiligen Dokumentationen zur Konfiguration). Sie können folgende standardmäßigen Systemadministrator-Tools und Protokolldateien zur Unterstützung von Problembehandlungen verwenden:
  • xentop
  • xm dmesg
  • xm log
  • vmstat
  • iostat
  • lsof
Sie können folgende Erweiterte Debugging-Tools und Prokolldateien zur Unterstützung der Problembehandlung verwenden:
  • XenOprofile
  • systemTap
  • crash
  • sysrq
  • sysrq t
  • sysrq w
Sie können folgende Netzwerk-Tools zur Unterstützung der Problembehandlung verwenden:
  • ifconfig
  • tcpdump
  • brctl
brctl ist ein Netzwerk-Tool, das die Konfiguration der Ethernet-Bridge im Virtualisierungs-Linux-Kernel untersucht und konfiguriert. Sie müssen Root-Zugriff besitzen, um diese Beispielbefehle ausführen zu können:
# brctl show 

bridge-name    bridge-id          STP  enabled  interfaces  
-----------------------------------------------------------------------------
xenbr0             8000.feffffff       no        vif13.0
xenbr1             8000.ffffefff       yes       pddummy0
xenbr2             8000.ffffffef       no        vif0.0

# brctl showmacs xenbr0

port-no           mac-addr                  local?       ageing timer

1                 fe:ff:ff:ff:ff:           yes            0.00
2                 fe:ff:ff:fe:ff:           yes            0.00


# brctl showstp xenbr0

xenbr0 

bridge-id              8000.fefffffffff

designated-root        8000.fefffffffff

root-port              0                   path-cost             0

max-age                20.00               bridge-max-age        20.00

hello-time             2.00                bridge-hello-time     2.00

forward-delay          0.00                bridge-forward-delay  0.00

ageing-time            300.01

hello-timer            1.43                tcn-timer             0.00

topology-change-timer  0.00                gc-timer              0.02

18.5. Problembehandlung mit Hilfe der Protokolldateien

When encountering issues with installing Red Hat Virtualization, you can refer to the host system's two logs to assist with troubleshooting. The xend.log file contains the same basic information as when you run the xm log command. It resides in the /var/log/ directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error')
Traceback (most recent call list)
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req)
File
"/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create
raise XendError ("Error creating domain: " + str(ex))
XendError: Error creating domain: (0, 'Error')
Die andere Protokolldatei, xend-debug.log ist sehr nützlich für Systemadministratoren, da sie noch detailliertere Informationen, als xend.log enthält. Nachfolgend finden Sie dieselben Fehlerdaten für dasselbe Problem bei der Erstellung einer Kernel-Domain:
ERROR: Will only load images built for Xen v3.0
ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB'
ERROR: Error constructing guest OS
Wenn Sie sich mit der Kundenbetreuung in Verbindung setzen, fügen Sie immer eine Kopie dieser beiden Protokolldateien ein, wenn Sie die Mitarbeiter des technischen Supports kontaktieren.

18.6. Problembehandlung mit der seriellen Konsole

Die serielle Konsole ist hilfreich bei der Problembehandlung schwieriger Probleme. Wenn der Virtualisierungs-Kernel abstürzt und der Hypervisor einen Fehler generiert, besteht keine Möglichkeit, den Fehler auf einem lokalen Host zurückzuverfolgen. Die serielle Konsole hingegen ermöglicht Ihnen immer die Aufzeichnung dieses Fehlers auf einem Remote-Host. Sie müssen den Xen-Host so konfigurieren, dass er Daten an die serielle Konsole ausgibt. Anschließend müssen Sie den Remote-Host so konfigurieren, dass er die Daten aufzeichnet. Um dies durchzuführen, müssen Sie die Optionen in der Datei grub.conf modifizieren, so dass eine serielle 38400-bps Konsole auf com1 /dev/ttyS0 aktiviert wird:
title Red Hat Enterprise Linix (2.6.18-8.2080_RHEL5xen0)
		root (hd0,2)
		kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 
		module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc 	
        	module /initrd-2.6.18-8.el5xen.img
The sync_console can help determine a problem that causes hangs with asynchronous hypervisor console output, and the "pnpacpi=off" works around a problem that breaks input on the serial console. The parameters "console=ttyS0" and "console=tty" means that kernel errors get logged with on both the normal VGA console and on the serial console. Then you can install and set up ttywatch to capture the data on a remote host connected by a standard null-modem cable. For example, on the remote host you could type:
ttywatch --name myhost --port /dev/ttyS0
Dies leitet (pipes) die Ausgabe von /dev/ttyS0 in die Datei /var/log/ttywatch/myhost.log um.

18.7. Konsolenzugriff für paravirtualisierte Gäste

Paravirtualisierte Gastbetriebssysteme besitzen automatisch eine virtuelle Textkonsole, die dazu konfiguriert wurde, Daten für das Domain0-Betriebssystem zuzuweisen. Sie können dies auf Kommandozeilenebene durchführen, indem Sie Folgendes tippen:
xm console [domain name or number]
Wobei domain100 einen laufenden Namen oder eine Nummer repräsentiert. Sie können weiterhin den Virtuelle Maschine Manager dazu verwenden, die virtuelle Textkonsole anzuzeigen. Wählen Sie Serielle Konsole im Fenster Virtuelle Maschine Details aus dem Menü Anzeigen.

18.8. Zugriff auf die Konsole des Gasts bei voller Virtualisierung

Full Virtualized guest operating systems automatically has a text console configured for use, but the difference is the kernel guest is not configured. To enable the guest virtual serial console to work with the Full Virtualized guest, you must modify the guest's grub.conf file, and include the 'console =ttyS0 console=tty0' parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). If you plan to use the virtual serial console in a full virtualized guest, you must edit the configuration file in the /etc/xen/ directory. On the host domain, you can then access the text console by typing:
xm console
Sie können außerdem den Virtuelle Maschine Manager dazu verwenden, die serielle Konsole anzuzeigen. Wählen Sie dazu im Fenster "Virtuelle Maschine Details" die Option "Serielle Konsole" aus dem Menü "Anzeigen".

18.9. Implementierung einer LUN-Persistenz

Falls Ihr System kein multipath verwendet, können Sie udev verwenden, um LUN-Persistenz zu implementieren. Bevor Sie die LUN-Persistenz auf Ihrem System implementieren stellen Sie sicher, dass sie die passenden UUIDs erhalten. Sobald Sie diese erhalten, können Sie die LUN-Persistenz konfigurieren, indem Sie die Datei scsi_id bearbeiten, die sich im Verzeichnis /etc befindet. Sobald Sie diese Datei in einem Texteditor geöffnet haben, müssen Sie die folgende Zeile auskommentieren:
# options=-b
Ersetzen Sie dies anschließend mit diesem Parameter:
# options=-g
Dies veranlasst udev, alle SCSI-Geräte des Systems auf zurückkehrende UUIDs zu überwachen. Um die UUIDs des Systems zu ermitteln, tippen Sie:
# scsi_id  -g  -s  /block/sdc
Die Ausgabe sollte ungefähr wie folgt aussehen:
[root@devices] # scsi_id -g -s /block/sdc
*3600a0b80001327510000015427b625e*
Diese lange Zeichenkette ist die UUID. Nachdem die UUID aus den Gerätenamen abgeleitet werden, überprüfen Sie jeden Gerätepfad um sicherzustellen, dass die UUID-Nummer für jedes Gerät dieselbe ist. Die UUIDs verändern sich nicht, wenn Sie ein neues Gerät zu Ihrem System hinzufügen. Sobald Sie die Gerätepfade überprüft haben, müssen Sie Regeln zur Benennung der Geräte erstellen. Um diese Regeln zu erstellen, müssen Sie die Datei 20-names.rules bearbeiten, die sich im Verzeichnis /etc/udev/rules.d befindet. Die Regeln zur Benennung der Geräte, die Sie hier erstellen, sollten das folgende Format besitzen:
# KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
Ersetzen Sie Ihre bestehende UUID und den Gerätenamen mit dem oben zugewiesenen UUID-Eintrag. Die Regel sollte daher wie folgt lauten:
 KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename"

Dies veranlasst das System, sämtliche Geräte, die mit /dev/sd* übereinstimmen, zu aktivieren, um die festgelegten UUID zu untersuchen. Wird ein passendes Gerät gefunden, wird ein Geräteknoten mit der Bezeichnung /dev/devicename erstellt. In diesem Beispiel ist der Geräteknoten /dev/mydevice. Abschließend müssen Sie noch die Datei rc.local, die sich im Verzeichnis /etc befindet, an diesen Pfad anhängen:
/sbin/start_udev
IMPLEMENTING LUN PERSISTENCE WITH MULTIPATH
Um LUN-Persistenz in einer multipath-Umgebung zu implementieren, müssen Sie den Alias-Namen für die multipath-Geräte definieren. Bei diesem Beispiel müssen Sie vier Geräte-Aliase definieren, indem Sie die Datei multipath.conf, die sich im Verzeichnis /etc/ befindet, bearbeiten:
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp1
}
multipath  {  
             wwid       3600a0b80001327510000015427b6
             alias      oramp2
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp3
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp4
}
Dies definiert vier LUNs: /dev/mpath/oramp1, /dev/mpath/oramp2, /dev/mpath/oramp3 und dev/mpath/oramp4. Diese Geräte befinden sich im Verzeichnis /dev/mpath. Die LUN-Namen bleiben auch über Neustarts hinaus bestehen, da Alias-Namen auf den wwid (weltweiten ID) der LUNs erstellt werden.

18.10. Hinweise in Zusammenhang mit SELinux

Dieser Abschnitt enthält Dinge, die Sie beachten müssen, wenn Sie SELinux in Ihre Red Hat Virtualisierungsumgebung implementieren. Wenn Sie Veränderungen im System durchführen oder Geräte hinzufügen, müssen Sie Ihre SELinux Sicherheitsrichtlinien entsprechend anpassen. Um einen LVM-Datenträger für einen Gast zu konfigurieren, müssen Sie den SELinux-Kontext für das entsprechende zu Grunde liegende Blockgerät und die Datenträgergruppe anpassen.
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2
# restorecon /dev/sda2
Der Boolesche Parameter xend_disable_trans versetzt xend nach einem Neustart des Daemon in einen unbeschränkten Modus. Es ist besser, den Schutz für einen einzelnen Daemon zu deaktivieren, als für das gesamte System. Es wird empfohlen, dass Sie Verzeichnisse wie xen_image_t, die Sie an anderer Stelle verwenden werden, nicht neu kennzeichnen.

18.11. Zugriff auf Daten auf einem Plattenimage eines Gasts

Sie können zwei getrennte Applikationen verwenden, die Ihnen beim Zugriff auf Daten von innerhalb eines Plattenimages eines Gasts aus behilflich sind. Bevor Sie diese Tools verwenden, müssen Sie die Gäste herunterfahren. Der Zugriff auf das Dateisystem vom Gast und dom0 aus könnte Ihr System möglicherweise beschädigen.
Sie können die Applikation "kpartx" verwenden, um partitionierte Platten oder LVM-Datenträgergruppen zu handhaben:
yum install kpartx
kpartx -av /dev/xen/guest1
add map guest1p1 : 0 208782 linear /dev/xen/guest1 63
add map guest1p2: 0 16563015 linear /dev/xen/guest1 208845
Um auf LVM-Datenträger auf einer zweiten Partition zuzugreifen, müssen Sie LVM erneut mit vgscan scannen und die Datenträgergruppe auf der Partition (standardmäßig als VolGroup00 bezeichnet) unter Verwendung des Befehls vgchange -ay aktivieren:
# kpartx -a /dev/xen/guest1
#vgscan
Reading all physical volumes . This may take a while...
Found volume group "VolGroup00" using metadata type 1vm2
# vgchange -ay VolGroup00
2 logical volume(s) in volume group VolGroup00 now active.
# lvs
LV VG Attr Lsize Origin Snap% Move Log Copy%
LogVol00 VolGroup00 -wi-a- 5.06G
LogVol01 VolGroup00 -wi-a- 800.00M
# mount /dev/VolGroup00/LogVol00 /mnt/
....
#umount /mnt/
#vgchange -an VolGroup00
#kpartx -d /dev/xen/guest1
Sie müssen daran denken, die logischen Datenträger mit vgchange -an zu deaktivieren, die Partitionen mit kpartx-d zu entfernen und das Loop-Gerät mit losetup -d zu löschen, wenn Sie fertig sind.

18.12. Häufige Situationen bei der Problembehandlung

Beim Versuch, den xend -Dienst zu starten, passiert nichts. Beim Eintippen von xm list1 erhalten Sie folgende Meldung:
Error: Error connecting to xend: Connection refused. Is xend running?
Beim Versuch, xend start manuell auszuführen, erhalten Sie weitere Fehler:
Error: Could not obtain handle on privileged command interfaces (2 = No such file or directory)
Traceback (most recent call last:)

File "/usr/sbin/xend/", line 33 in ?

from xen.xend.server. import SrvDaemon

File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py" , line 26 in ?
		
from xen.xend import XendDomain

File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ?

from xen.xend import XendDomainInfo
		
File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ?

import images

File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ?

xc = xen.lowlevel.xc.xc ()

RuntimeError: (2, 'No such file or directory' )
Mit großer Wahrscheinlichkeit haben Sie Ihren Host mit einem Kernel neu gestartet, welcher kein xen-hypervisor-Kernel ist. Um dies zu korrigieren, müssen Sie den xen-hypervisor-Kernel zum Zeitpunkt des Bootens auswählen (oder den xen-hypervisor-Kernel als Standard in Ihrer Datei grub.conf definieren.

18.13. Fehler des Loop-Geräts

Falls Sie dateibasierte Gast-Images verwenden, hat eines ggf. die Anzahl der konfigurierten Loop-Geräte erhöht (standardmäßig werden 8 Loop-Geräte, die aktiviert werden können, gestattet). Falls Sie mehr als 8 dateibasierte Gast-/ Loop-Geräte benötigen, müssen Sie die Datei /etc/modprobe.conf anpassen. Wenn Sie die Datei modprobe.conf anpassen, müssen Sie die folgende Zeile einbinden:
options loop max_loop=64
Sie können die Zahl 64 gegen eine andere Zahl, die Ihrer Konfiguration entspricht, austauschen. Beachten Sie, dass die Verwendung eines auf ein Loop-Gerät gestützten Gasts auf Ihrem System ggf. nicht ideal ist. Stattdessen können Sie phy: block device oder tap:aio dateigestützte Geräte auf paravirtuellen Systemen, sowie phy: device oder file: file gestützte Geräte für volle Virtualisierung verwenden.

18.14. Fehler bei der Erstellung eines Gasts

When you attempt to create a guest, you receive an "Invalid argument" error message. This usually means that the kernel image you are trying to boot is incompatible with the hypervisor. An example of this would be if you were attempting to run a non-PAE FC5 kernel on a PAE only FC6 hypervisor.
Beim Ausführen eines Yum-Update zum Erhalt eines neuen Kernels, wird der Standard-Kernel in grub.conf gleich zurück auf einen Bare-Metal-Kernel gesetzt, anstatt auf den Virtualisierungs-Kernel.
Um dieses Problem zu korrigieren, müssen Sie das Standard-Kernel-RPM, welches sich im Verzeichnis /etc/sysconfig/kernel/ befindet, entsprechend anpassen. Sie müssen sicherstellen, dass der Parameter kernel-xen als Standard-Option in der Datei gb.conf gesetzt ist.

18.15. Fehler bezüglich der seriellen Konsole

Sie bekommen keine Ausgabe auf der seriellen Konsole. Um dieses Problem zu korrigieren, müssen Sie grub.conf modifizieren und die "com port"-Parameter wie folgt ändern:
serial  --unit=1  --speed=115200
title RHEL5 i386 Xen (2.6.18-1.2910.el5xen)
root (hd0, 8)
kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200,8n1
module /boot/vmlinuz-2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=tty console=ttyS1115200
module /boot/initrd-2.8.6.18-12910.el5xen.img

title RHEL5 i386 xen (2.6.18.-1.2910.el5xen
root (hd0, 8)
kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200 console=com2l
module /boot/vmlinuz2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=xvc xencons=xvc
module /boot/ititrd-2.6.18-1.2910.el5xen.img
Mit Hilfe dieser Änderungen in grub.conf sollte Ihre serielle Konsole korrekt funktionieren. Sie sollten in der Lage sein, jede beliebige Zahl für ttyS zu verwenden, und es sollte wie ttyS0 funktionieren.

18.16. Fehler der Netzwerkbrücke

Red Hat Virtualization can configure multiple Virtualization network bridges to use with multiple ethernet cards. To successfully configure multiple network bridges for ethernet cards, you must configure the second network interface by either using the system-config-network TUI/GUI, or by creating a new configuration file in /etc/sysconfig/network-scripts . You should use a process to setup multiple Xen bridges. This is an example config file for a second NIC called 'eth1' :
#/etc/sysconfig/network-scripts/fcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.1.1.1
GATEWAY=10.1.1.254
ARP=yes
Kopieren Sie /etc/xen/scripts/network-bridge nach /etc/xen/scripts/network-bridge.xen.
Edit /etc/xen/xend-config.sxp and add a line to your new network bridge script (this example uses "network-virtualization-multi-bridge" ).
In der Datei xend-config.sxp sollte die neue Zeile Ihr neues Skript wiedergeben:
network-script network-xen-multi-bridge
Stellen Sie sicher, dass Sie die Zeile auskommentieren, die Folgendes aussagt:
network-script network-bridge
Wenn Sie mehrere Xen-Brücken erstellen möchten, müssen Sie ein angepasstes Skript erstellen. Das unten aufgeführte Beispiel erstellt zwei Xen-Brücken (mit der Bezeichnung xenbr0 und xenbr1) und fügt diese entsprechend zu eth1 und eth0 hinzu:
# !/bin/sh
# network-xen-multi-bridge
# Exit if anything goes wrong
set -e
# First arg is operation.
OP=$1
shift
script=/etc/xen/scripts/network-bridge.xen
case ${OP} in
start)
$script start vifnum=1 bridge=xenbr1 netdev=eth1
$script start vifnum=0 bridge=xenbr0 netdev=eth0
;;
stop)
$script stop vifnum=1 bridge=xenbr1 netdev=eth1
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
;;
status)
$script status vifnum=1 bridge=xenbr1 netdev=eth1
$script status vifnum=0 bridge=xenbr0 netdev=eth0
;;
*)
echo 'Unknown command: ' ${OP}
echo 'Valid commands are: start, stop, status'
exit 1
esac
Wenn Sie zusätzliche Brücken erstellen möchten, werfen Sie einfach einen Blick auf das Beispiel-Skript und kopieren/fügen die Datei entsprechend ein.

18.17. Laptop-Konfigurationen

The task of configuring your RHEL 5.1 loaded laptop for use on a network environment, presents a number of potential challenges. Most WiFi and wired connections switch constantly during any given day, and Red Hat Virtualization assumes it has access to the same interface consistently. This results in the system performing ifup/ifdown calls to the network interface in use by Red Hat Virtualization. WiFi cards are not the ideal network connection method since Red Hat Virtualization uses the default network interface.
The idea here is to create a 'dummy' network interface for Red Hat Virtualization to use.
This technique allows you to use a hidden IP address space for your guests and Virtual Machines. To do this operation successfully, you must use static IP addresses as DHCP does not listen for IP addresses on the dummy network. You also must configure NAT/IP masquerading to enable network access for your guests and Virtual Machines. You should attach a static IP when you create the 'dummy' network interface.
Bei diesem Beispiel lautet die Schnittstelle dummy0 und die verwendete IP ist 10.1.1.1. Das Skript heißt ifcfg-dummy0 und befindet sich im Verzeichnis /etc/sysconfig/network-scripts/:
DEVICE =dummy0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.1.1.1
ARP=yes
Sie sollten xenbr0 mit dummy0 verknüpfen, um Netzwerkverbindungen auch dann zu ermöglichen, falls keine Verbindung mit dem physikalischen Netzwerk besteht.
You will need to make additional modifications to the xend-config.sxp file. You must locate the ( network-script 'network-bridge' bridge=xenbr0 ) section and add include this in the end of the line:
netdev=dummy0
You must also make some modifications to your guest's domU networking configuration to enable the default gateway to point to dummy0. You must edit the DomU 'network' file that resides in the /etc/sysconfig/ directory to reflect the example below:
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=10.1.1.1
			
IPADDR=10.1.1.10
NETMASK=255.255.255.0
Es ist eine gute Idee, NAT in domain0 zu aktivieren, so dass domU auf das öffentliche Netz zugreifen kann. Auf diese Weise können sogar Wireless-Benutzer die Einschränkungen der Red Hat Virtualisierung umgehen. Um dies umzusetzen, müssen Sie die Datei S99XenLaptopNAT, die sich im Verzeichnis /etc/rc3.d befindet, so anpassen, dass sie dem nachfolgenden Beispiel entspricht:
#!/bin/bash
#
# XenLaptopNAT  Startup script for Xen on Laptops
#
# chkconfig: - 99 01
# description: Start NAT for Xen Laptops
#
# PATH=/usr/bin:/sbin:/bin:/usr/sbin
# export PATH
GATEWAYDEV=`ip route | grep default | awk {'print $5'}`
iptables -F
case "$1" in
start)
if test -z "$GATEWAYDEV"; then
echo "No gateway device found"
else
echo "Masquerading using $GATEWAYDEV"
/sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE
fi
echo "Enabling IP forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`"
echo "done."
;;
*)
echo "Usage: $0 {start|restart|status}"
;;
esac
Wenn Sie möchten, dass das Netzwerk automatisch zum Zeitpunkt des Bootens eingerichtet wird, müssen sie einen Softlink zu /etc/rc3.d/S99XenLaptopNAT erstellen.
Beim Bearbeiten der Datei modprobe.conf müssen Sie die folgenden Zeilen einbinden:
alias dummy0 dummy
options dummy numdummies=1

18.18. Starting Domains Automatically During System Boot

Starting Domains Automatically During System Boot
Sie können Ihre Gäste so konfigurieren, dass Sie automatisch gestartet werden, wenn Sie das System booten. Um dies zu realisieren, müssen Sie die symbolischen Links in /etc/xen/auto modifizieren. Diese Datei verweist auf die Konfigurationsdateien des Gasts, die Sie automatisch starten müssen. Der Prozess bei Inbetriebnahme ist serialisiert, was bedeutet, dass je höher die Zahl der Gäste, desto länger dauert der Boot-Prozess. Nachfolgendes Beispiel zeigt Ihnen, wie symbolische Links für den Gast rhel5vm01 verwendet werden:
[root@python xen]# cd /etc/xen
[root@python xen]# cd auto
[root@python auto]# ls
[root@python auto]# ln -s ../rhel5vm01 .
[root@python auto]# ls -l

lrwxrwxrwx 1 root root 14 Dec 14 10:02 rhel5vm01 -> ../rhel5vm01

[root@python auto]#

18.19. Modifizierung von Domain0

To use Red Hat Virtualization to manage domain0, you will constantly making changes to the grub.conf configuration file, that resides in the /etc directory. Because of the large number of domains to manage, many system administrators prefer to use the 'cut and paste' method when editing grub.conf . If you do this, make sure that you include all five lines in the Virtualization entry (or this will create system errors). If you require Xen hypervisor specific values, you must add them to the 'xen' line. This example represents a correct grub.conf Virtualization entry:
# boot=/dev/sda/
default=0
timeout=15
#splashimage=(hd0, 0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
        root (hd0, 0)
	kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1
	module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00
	module /initrd-2.6.17-1.2519.4.21.el5xen.img
For example, if you need to change your dom0 hypervisor's memory to 256MB at boot time, you must edit the 'xen' line and append it with the correct entry, 'dom0_mem=256M' . This example represents the respective grub.conf xen entry:
# boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grubs/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
        root (hd0,0)
	kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB
	module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro
	root=/dev/VolGroup00/LogVol00
	module /initrd-2.6.17-1.2519.4.21.el5xen.img

18.20. Konfigurationsdateien des Gasts

When you install new guests using virt-manager (or virt-install) tool(s) from Red Hat Enterprise Linux 5.1 with Virtualization, the guests configuration files (located in the /etc/xen directory) get modified and setup automatically. This configuration file example is for a para-virtualized guest:
name = "rhel5vm01"
memory = "2048"
disk = ['tap:aio:/xen/images/rhel5vm01.dsk,xvda,w',]
vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', 
       "type=ieomu, mac=00:16:3e:09:f0:13 ]
vnc = 1
vncunused = 1
uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed"
bootloader = "/usr/bin/pygrub"
vcpus=2
on_reboot = "restart"
on_crash = "restart"
Note that the serial="pty" is the default for the configuration file. This configuration file example is for a fully-virtualized guest:
name = "rhel5u5-86_64"
builder = "hvm"
memory = 500
disk = ['file:/xen/images/rhel5u5-x86_64.dsk.hda,w']
vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1']
uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5'
device_model = "/usr/lib64/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader/"
vnc = 1
vncunused = 1
apic = 1
acpi = 1
pae = 1
vcpus =1
serial ="pty" # enable serial console
on_boot = 'restart'

18.21. Klonen von Gast-Konfigurationsdateien

You can copy (or clone) an existing configuration file to create an all new guest. You must modify the name parameter of the guests' configuration file. The new, unique name then appears in the hypervisor and is viewable by the management utilities. You must generate an all new UUID as well (using the uuidgen(1) command). Then for the vif entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk=' section to point to the correct guest image.
You must also modify these system configuration settings on your guest. You must modify the HOSTNAME entry of the /etc/sysconfig/network file to match the new guest's hostname.
Sie müssen die HWADDR-Adresse in der Datei /etc/sysconfig/network-scripts/ifcfg-eth0 so abändern, dass diese mit der Ausgabe von ifconfig eth0 übereinstimmt. Falls Sie statische IP-Adressen verwenden, müssen Sie den IPADDR-Eintrag abändern.

18.22. Erstellen eines Skripts zur Generierung von MAC-Adressen

Die Red Hat Virtualisierung kann zum Zeitpunkt der Erstellung eine MAC-Adresse für jede virtuelle Maschine generieren. Da fast eine uneingeschränkte Anzahl an Nummern im selben Subnetz existieren, ist es unwahrscheinlich, dass Sie dieselbe MAC-Adresse erhalten. Um dies zu umgehen, können Sie auch ein Skript schreiben, das eine MAC-Adresse generiert. Nachfolgend finden Sie ein Beispiel-Skript, welches die Parameter zur Generierung einer MAC-Adresse enthält:
#! /usr/bin/python
# macgen.py script generates a MAC address for Xen guests
#
import random
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
print ':'.join(map(lambda x: "%02x" % x, mac))

Generates e.g.:
00:16:3e:66:f5:77
to stdout

18.23. Konfiguration einer Echtzeitmigration einer virtuellen Maschine

Red Hat Virtualization can migrate virtual machines between other servers running Red Hat Enterprise Linux 5.1 with Virtualization. Further, migration is performed in an offline method (using the xm migrate command). Live migration can be done from the same command. However there are some additional modifications that you must do to the xend-config configuration file. This example identifies the entries that you must modify to ensure a successful migration:
(xend-relocation-server yes)
The default for this parameter is 'no', which keeps the relocation/migration server deactivated (unless on a trusted network) and the domain virtual memory is exchanged in raw form without encryption.
(xend-relocation-port 8002)
Dieser Parameter bestimmt den Port, den xend für die Migration verwendet. Dieser Wert ist korrekt. Stellen Sie jedoch sicher, den Kommentar davor zu löschen.
(xend-relocation-address )
Dieser Parameter stellt die Adresse dar, die auf die Socket-Verbindungen bei derRelocation horcht, nachdem Sie den xend-relocation-server aktivieren. Beim Horchen schränkt es die Migration auf eine bestimmte Schnittstelle ein.
(xend-relocation-hosts-allow )
This parameter controls the host that communicates with the relocation port. If the value is empty, then all incoming connections are allowed. You must change this to a space-separated sequences of regular expressions (such as xend-relocation-hosts-allow- '^localhost\\.localdomain$' ). A host with a fully qualified domain name or IP address that matches these expressions are accepted.
Nachdem Sie diese Parameter konfiguriert haben, müssen Sie den Host für die Red Hat Virtualisierung neu starten, um Ihre neuen Parameter zu akzeptieren.

18.24. Interpretation von Fehlermeldungen

Sie erhalten den folgenden Fehler:
failed domain creation due to memory shortage, unable to balloon domain0
Eine Domain kann scheitern, falls nicht genügend RAM zur Verfügung steht. Domain0 komprimiert sich nicht genug, um Platz für einen neu erstellten Gast zu liefern. Sie können die Datei xend.log auf diesen Fehler überprüfen:
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20
[2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202
Domain construction failed
You can check the amount of memory in use by domain0 by using the xm list Domain0 command. If domain0 is not ballooned down, you can use the command "xm mem-set Domain-0 NewMemSize" to check memory.
Sie erhalten den folgenden Fehler:
wrong kernel image: non-PAE kernel on a PAE
This message indicates that you are trying to run an unsupported guest kernel image on your Hypervisor. This happens when you try to boot a non-PAE paravirtual guest kernel on a RHEL 5.1 hypervisor. Red Hat Virtualization only supports guest kernels with PAE and 64bit architectures.
Geben Sie diesen Befehl ein:
[root@smith]# xm create -c va base

Using config file "va-base"
Error: (22, 'invalid argument')
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs
(XendDomainInfo:202) Domain construction failed

Traceback (most recent call last)
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain()
File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn))
VmError: (22, 'Invalid argument')
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449]
XendDlomainInfo.destroy: domin=1
[2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457]
XendDlomainInfo.destroy:Domain(1)
Falls Sie einen 32-Bit/nicht-PAE-Kernel ausführen müssen, müssen Sie Ihren Gast als voll virtualisierte virtuelle Maschine ausführen. Wenn Sie auf paravirtualisierten Gästen einen 32-Bit PAE-Gast ausführen müssen, benötigen Sie einen 32-Bit PAE-Hypervisor. Wenn Sie auf paravirtualisierten Gästen einen 64-Bit PAE-Gast ausführen müssen, benötigen Sie einen 64-Bit PAE-Hypervisor. Für voll virtualisierte Gäste müssen Sie einen 64-Bit-Gast mit einem 64-Bit-Hypervisor ausführen. Der 32-Bit PAE-Hypervisor, der mit RHEL 5 i686 geliefert wird, unterstützt lediglich das Ausführen von 32-Bit PAE paravirtualisierten und 32-Bit voll virtualisierten Gast-Betriebssystemen. Der 64-Bit Hypervisor unterstützt nur 64-Bit paravirtualisierte Gäste.
This happens when you move the full virtualized HVM guest onto a RHEL 5.1 system. Your guest may fail to boot and you will see an error in the console screen. Check the PAE entry in your configuration file and ensure that pae=1.You should use a 32bit distibution.
Sie erhalten den folgenden Fehler:
Unable to open a connection to the Xen hypervisor or daemon
Dies geschieht, wenn die "virt-manager"-Applikation beim Start scheitert. Dieser Fehler tritt dann auf, wenn kein "localhost"-Eintrag in der Konfigurationsdatei /etc/hosts existiert. Überprüfen Sie diese Datei und stellen Sie sicher, dass der "localhost"-Eintrag aktiviert ist. Nachfolgend finden Sie ein Beispiel eines falschen "localhost"-Eintrags:
# Do not remove the following line, or various programs
# that require network functionality will fail.
localhost.localdomain localhost
Nachfolgend finden Sie ein Beispiel für einen korrekten "localhost"-Eintrag:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
localhost.localdomain. localhost
Sie bekommen folgenden Fehler (in der Datei xen-xend.log):
Bridge xenbr1 does not exist!
This happens when the guest's bridge is incorrectly configured and this forces the Xen hotplug scipts to timeout. If you move configuration files between hosts, you must ensure that you update the guest configuration files to reflect network topology and configuration modifications. When you attempt to start a guest that has an incorrect or non-existent Xen bridge configuration, you will receive the following errors:
[root@trumble virt]# xm create r5b2-mySQL01

Using config file " r5b2-mySQL01"
Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen)
kernel: /vmlinuz-2.6.18-12747.el5xen
initrd: /initrd-2.6.18-1.2747.el5xen.img
Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
Zusätzlich weist die Datei xend.log die folgenden Fehler auf:
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status

[2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2
[2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2)
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback

/local/domain/0/backend/vif/2/0/hotplug-status
Um dieses Problem zu lösen, müssen Sie die Konfigurationsdatei Ihres Gasts bearbeiten und den Eintrag vif ändern. Wenn Sie den vif-Eintrag der Konfigurationsdatei lokalisieren, vorausgesetzt, Sie verwenden xenbr0 als die Standardbrücke, stellen Sie sicher, dass der passende Eintrag dem Folgenden entspricht:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
Sie erhalten Fehler zu nicht mehr unterstütztem Python:
[root@python xen]# xm shutdown win2k3xen12
[root@python xen]# xm create win2k3xen12

Using config file "win2k3xen12".

/usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning:
Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding
declared; see http://www.python.org/peps/pep-0263.html for details

execfile (defconfig, globs, locs,)
Error: invalid syntax 9win2k3xen12, line1)
Python generiert diese Meldungen in Zusammenhang mit einer ungültigen (oder fehlerhaften) Konfigurationsdatei. Um dieses Problem zu lösen, müssen Sie die fehlerhafte Konfigurationsdatei ändern, oder können eine neue generieren.

18.25. Online-Quellen zur Problembehandlung

Kapitel 19. Zusätzliche Quellen

Um mehr über Red Hat Virtualization zu lernen, werfen Sie einen Blick auf die folgenden Quellen.

19.1. Hilfreiche Web-Sites

  • http://www.cl.cam.ac.uk/research/srg/netos/xen/ — Die Projekt-Website des Xen™ paravirtualisierten Maschinen-Managers, von der Red Hat Virtualization abgeleitet ist. Die Site pflegt die Upstream Xen-Projekt-Binärdateien und den Quellcode und enthält weiterhin Informationen, Überblick über Architekturen, Dokumentation und verwandte Links zu Xen und die damit verbundenen Technologien.
  • http://www.libvirt.org/ — Die offizielle Web-Site für die libvirt Virtualisierungs-Programmierschnittstelle (API), die mit dem Virtualisierungs-Framework auf einem Host-Betriebssystem interagiert.
  • http://virt-manager.et.redhat.com/ — Die Projekt-Web-Site für den Virtual Machine Manager (virt-manager), der grafischen Anwendung zur Verwaltung von virtuellen Maschinen.

19.2. Installierte Dokumentation

  • /usr/share/doc/xen-<version-number>/ —. This directory contains a wealth of information about the Xen para-virtualization hypervisor and associated management tools, including a look at various example configurations, hardware-specific information, and the current Xen upstream user documentation.
  • man virsh and /usr/share/doc/libvirt-<version-number> — Contains subcommands and options for the virsh virtual machine management utility as well as comprehensive information about the libvirt virtualization library API.
  • /usr/share/doc/gnome-applet-vm-<version-number> — Documentation for the GNOME graphical panel applet that monitors and manages locally-running virtual machines.
  • /usr/share/doc/libvirt-python-<version-number> — Provides details on the Python bindings for the libvirt library. The libvirt-python package allows python developers to create programs that interface with the libvirt virtualization management library.
  • /usr/share/doc/python-virtinst-<version-number> — Provides documentation on the virt-install command that helps in starting installations of Fedora and Red Hat Enterprise Linux related distributions inside of virtual machines.
  • /usr/share/doc/virt-manager-<version-number> — Provides documentation on the Virtual Machine Manager, which provides a graphical tool for administering virtual machines.

Anhang A. Lab 1

Xen-Gastinstallation
Ziel: Installation von RHEL 3, 4 oder 5 und Windows XP Xen-Gästen.
Voraussetzungen: Ein Arbeitsplatzrechner, auf dem Red Hat Enterprise Linux 5.0 mit der Virtualisierungskomponente installiert ist.
In diesem Lab werden Sie RHEL 3, 4 oder 5 konfigurieren und installieren, sowie Win XP Xen-Gäste unter Verwendung von verschiedenen Virtualisierungs-Tools.
Lab-Sequenz 1: Überprüfung auf PAE-Unterstützung
Sie müssen ermitteln, ob Ihr System PAE-Unterstützung besitzt. Die Red Hat Virtualisierung unterstützt x86_64- oder ia64-basierte CPU-Architekturen zum Ausführen von paravirtualisierten Gästen. Um i386-Gäste auszuführen, benötigt das System eine CPU mit PAE-Erweiterungen. Viele ältere Laptops (besonders solche, die auf dem Pentium Mobile oder Centrino basieren) unterstützen PAE nicht.
  1. Um zu ermitteln, ob Ihre CPU eine Unterstützung für PAE bietet, tippen Sie:
        grep pae /proc/cpuinfo
    
  2. Die folgende Ausgabe zeigt eine CPU mit PAE-Unterstützung. Falls der Befehl nichts zurückgibt, dann besitzt die CPU keine PAE-Unterstützung. Alle Übungen im Rahmen des Labs erfordern eine i386-CPU mit PAE-Erweiterung oder x86_64 oder ia64, um fortfahren zu können.
    
        flags :
        fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi
        mmx fxsr sse sse2 ss tm pbe nx up est tm2
    
    
Lab-Sequenz 2: Installation eines RHEL5 Beta 2 Xen paravirtualisierten Gasts mit virt-install.
In diesem Lab müssen Sie einen Red Hat Enterprise Linux 5 Beta 2 Xen-Gast mit virt-install installieren.
  1. Um Ihren Red Hat Enterprise Linux 5 Beta 2 Xen-Gast zu installieren, geben Sie am Befehlsprompt ein: virt-install.
  2. Antworten Sie auf die Frage, ob Sie einen voll virtualisierten Gast installieren möchten, mit: no.
  3. Geben Sie rhel5b2-pv1 als den Namen Ihrer virtuellen Maschine an.
  4. Geben Sie 500 für Ihre Speicherzuweisung ein.
  5. Geben Sie /xen/rhel5b2-pv1.img für Ihre Platte (Image des Gasts) ein.
  6. Geben Sie "6" für die Größe Ihrer Platte ein (Image des Gasts).
  7. Geben Sie yes ein, um die grafische Unterstützung zu aktivieren.
  8. Geben Sie nfs:server:/path/to/rhel5b2 als Ihre Installationsquelle ein.
  9. Die Installation beginnt nun. Fahren Sie wie üblich mit der Installation fort.
  10. Nachdem die Installation abgeschlossen ist, geben Sie /etc/xen/rhel5b2-pv1 ein und führen die folgenden Änderungen durch: #vnc=1#vncunused=1sdl=1
  11. Verwenden Sie einen Texteditor, um /etc/inittab zu modifizieren und hängen folgendes an diese Datei an: init5.#id:3:initdefault:id:5:initdefault:
Lab-Sequenz 3: Installation eines RHEL5 Beta 2 Xen paravirtualisierten Gasts mit virt-manager.
In diesem Lab werden Sie einen RHEL5 Beta 2 Xen paravirtualisierten Gast mit virt-manager installieren.
  1. Um Ihren Red Hat Linux 5 Beta 2 Xen-Gast zu installieren, geben Sie am Befehlsprompt ein: virt-manager.
  2. Wählen Sie "Lokaler Xen-Host" im Fenster "Verbindung öffnen" und klicken Sie auf Verbinden.
  3. Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
  4. Klicken Sie auf Weiter.
  5. Geben Sie rhel5b2-pv2 als den Namen Ihres Systems ein, und klicken Sie auf Weiter.
  6. Wählen Sie Paravirtualisiert, und klicken Sie auf Weiter.
  7. Geben Sie nfs:server:/path/to/rhel5b2 als URL Ihrer Installationsquelle ein und klicken Sie auf Weiter.
  8. Wählen Sie Einfache Datei und geben Sie /xen/rhel5b2-pv2.img für die Position Ihrer Datei ein. Wählen Sie 6000 MB und klicken Sie auf Weiter.
  9. Wählen Sie 500 für den Start Ihrer VM und als Maximalen Speicher und klicken Sie auf Weiter.
  10. Klicken Sie auf Beenden.
Das Fenster für die Konsole der virtuellen Maschine erscheint. Fahren Sie wie gewohnt fort und schließen die Installation ab.
Lab-Sequenz 4: Überprüfung auf Unterstützung für Intel-VT oder AMD-V
In diesem Lab müssen Sie ermitteln, ob Ihr System die Intel-VT- oder AMD-V-Hardware unterstützt. Ihr System muss Intel-VT- oder AMD-V-fähige CPUs unterstützen, um voll virtualisierte Gast-Betriebssysteme erfolgreich zu installieren. Die Red Hat Virtualisierung umfasst eine allgemeine HVM-Schicht, um diese CPU-Anbieter zu unterstützen.
  1. To determine if your CPU has Intel-VT or AMD-V support, type the following command: egrep -e 'vmx|svm' /proc/cpuinfo
  2. Die folgende Ausgabe zeigt eine CPU mit Intel-VT-Unterstützung:
    .flags :
        fpu tsc msr pae mce cx8 apic mtrr mca cmov pat clflush dts acpi mmx fxsr sse
        sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
    
    Falls der Befehl nichts zurückgibt, dann besitzt die CPU keine Unterstützung für Intel-VT oder AMD-V.
  3. Um zu ermitteln, ob Ihre CPU eine Unterstützung für Intel-VT oder AMD-V besitzt, geben Sie folgenden Befehl ein:
    cat /sys/hypervisor/properties/capabilities
  4. The following output shows that Intel-VT support has been enabled in the BIOS. If the command returns nothing, then go into the BIOS Setup Utlility and look for a setting related to 'Virtualization', i.e. 'Intel(R) Virtualization Technology' under 'CPU' section on a IBM T60p. Enable and save the setting and do a power off to take effect.
    
    xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
    
    
Lab-Sequenz 5: Installation eines RHEL5 Beta 2 Xen voll virtualisierten Gasts mit virt-install.
In diesem Lab werden Sie einen RHEL5 Beta 2 Xen vollvirtualisierten Gast mit virt-install installieren.
  1. Um Ihren Red Hat Enterprise Linux 5 Beta 2 Xen-Gast zu installieren, geben Sie am Befehlsprompt ein: virt-install.
  2. Wenn Sie dazu aufgefordert werden, einen voll virtualisierten Gast zu installieren, geben Sie yes ein.
  3. Geben Sie rhel5b2-pv2 als den Namen Ihrer virtuellen Maschine an.
  4. Geben Sie 500 für Ihre Speicherzuweisung ein.
  5. Geben Sie /xen/rhel5b2-fv1.img für Ihre Platte (Image des Gasts) ein.
  6. Geben Sie "6" für die Größe Ihrer Platte ein (Image des Gasts).
  7. Geben Sie yes ein, um die grafische Unterstützung zu aktivieren.
  8. Geben Sie /dev/cdrom für das virtuelle CD-Image ein.
  9. The VNC viewer appears within the installation window. If there is an error message that says “main: Unable to connect to host: Connection refused (111)”, then type the following command to proceed: vncviewer localhost:5900. VNC port 5900 refers to the first Xen guest that is running on VNC. If it doesn't work, you might need to use 5901, 5902, etc.
Die Installation beginnt nun. Fahren Sie wie üblich mit der Installation fort.
Lab-Sequenz 6: Installation eines RHEL5 Beta 2 Xen voll virtualisierten Gasts mit virt-manager.
In diesem Lab werden Sie einen RHEL5 Beta 2 Xen vollvirtualisierten Gast mit virt-install installieren.
  1. Um Ihren Red Hat Linux 5 Beta 2 Xen-Gast zu installieren, geben Sie am Befehlsprompt ein: virt-manager.
  2. Wählen Sie "Lokaler Xen-Host" im Fenster Verbindung öffnen und klicken Sie auf Verbinden.
  3. Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
  4. Klicken Sie auf Weiter.
  5. Geben Sie rhel5b2-pv2 als den Namen Ihres Systems ein, und klicken Sie auf Weiter.
  6. Wählen Sie "Voll virtualisiert" aus und klicken Sie auf Weiter.
  7. Geben Sie entweder CD-ROM oder DVD an, sowie den Pfad zu den Installationsmedien. Geben Sie die Position des ISO-Images an, falls Sie von einem ISO-Image installieren. Klicken Sie auf Weiter.
  8. Wählen Sie "Einfache Datei" und geben Sie /xen/rhel5b2-fv2.img für die Position Ihrer Datei ein. Wählen Sie 6000 MB und klicken Sie auf Weiter.
  9. Wählen Sie 500 für den Start Ihrer VM und als Maximalen Speicher und klicken Sie auf Weiter.
  10. Klicken Sie auf Beenden.
  11. Das Fenster für die Konsole der virtuellen Maschine erscheint.
Fahren Sie wie gewohnt fort und schließen die Installation ab.
Lab-Sequenz 7: Installation eines RHEL3 Xen voll virtualisierten Gasts mit virt-manager.
In diesem Lab werden Sie einen Red Hat Enterprise Linux 3 Xen mit virt-manager installieren:
  1. Es gelten hier dieselben Anweisungen, wie für Lab-Sequenz 6.
Lab-Sequenz 8: Installation eines RHEL4 Xen voll virtualisierten Gasts mit virt-manager
In diesem Lab werden Sie einen Red Hat Enterprise Linux 4 Xen mit virt-manager installieren:
  1. Es gelten hier dieselben Anweisungen, wie für Lab-Sequenz 6.
Lab-Sequenz 9: Installation eines Windows XP Xen voll virtualisierten Gasts mit virt-manager.
In diesem Lab werden Sie einen voll virtualisierten Windows XP Xen-Gast mit virt-manager installieren:
  1. Um Windows XP auf Ihrem Red Hat Enterprise Linux 5 Host zu installieren, geben Sie am Befehlsprompt ein: virt-manager.
  2. Wählen Sie "Lokaler Xen-Host" im Fenster Verbindung öffnen und klicken Sie auf Verbinden.
  3. Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
  4. Klicken Sie auf Weiter.
  5. Geben Sie winxp als den Namen Ihres Systems ein, und klicken Sie auf Weiter.
  6. Wählen Sie "Voll virtualisiert" aus und klicken Sie auf Weiter.
  7. Geben Sie entweder CD-ROM oder DVD an, sowie den Pfad zu den Installationsmedien. Geben Sie die Position des ISO-Images an, falls Sie von einem ISO-Image installieren. Klicken Sie auf Weiter.
  8. Wählen Sie "Einfache Datei" und geben Sie /xen/winxp.img für die Position Ihrer Datei ein. Wählen Sie 6000 MB und klicken Sie auf Weiter.
  9. Wählen Sie 1024 für den Start Ihrer VM und als Maximalen Speicher. Wählen Sie 2 für VCPUs und klicken Sie auf Weiter.
  10. Klicken Sie auf Beenden.
  11. Das Fenster für die Konsole der virtuellen Maschine erscheint. Fahren Sie wie gewohnt fort und schließen die Installation ab.
  12. Wählen Sie das Formatieren der C:\ -Partition mit dem FAT-Dateisystemformat. Red Hat Enterprise Linux 5 wird nicht mit NTFS-Kernelmodulen geliefert. Das Einhängen oder das Schreiben von Dateien auf das Xen-Gast-Image ist möglicherweise nicht so einfach, wie wenn Sie die Patition im NTFS-Dateisystemformat formatieren würden.
  13. Nachdem Sie das System zum ersten Mal neu starten, bearbeiten Sie das winxp-Gast-Image: losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/. Dies behebt ein Problem, auf das sie ansonsten möglicherweise zu einem späteren Zeitpunkt der Windows-Installation stoßen würden.
  14. Starten Sie den Xen-Gast manuell neu, indem sie Folgendes eingeben: xm create -c winxp/.
  15. Wählen Sie denwinxp-Xen-Gast im Fenster des Virtual Machine Manager aus und klicken Sie auf Öffnen.
  16. Das Fenster für die Konsole der virtuellen Maschine erscheint. Fahren Sie wie gewohnt fort und schließen die Installation ab.
  17. Whenever a 'Files Needed' dialog box appears, change the path GLOBALROOT\DEVICE\CDROM0\I386 to C:\I386. Depending on your installation, you may or may not see this problem. You may be prompted for missing files during the installation. Changing the path to C:\I386 should compensate for this problem.
  18. Falls die Xen-Gastkonsole einfriert, klicken Sie auf shutdown und nehmen die folgenden Änderungen an /etc/xen/winxp vor: #vnc=1#vncunused=1sdl=1#vcpus=2
  19. Wiederholen Sie Schritt 14 und fahren Sie wie gewohnt mit der Installation fort.

Anhang B. Lab 2

Live-Migration
Ziel: Konfiguration und Durchführung einer Live-Migration zwischen zwei Hosts.
Voraussetzungen: Zwei Arbeitsplatzrechner, auf dem Red Hat Enterprise Linux 5.0 Beta 2 mit Virtualisierungsplattform installiert ist, sowie ein Fedora Core 6 Xen-Gast auf einem der beiden Arbeitsplatzrechner.
In diesem Lab werden Sie die Migration konfigurieren, sowie eine Live-Migration zwischen zwei Hosts durchführen.
Einleitung: Bevor Sie beginnen
In diesem Lab benötigen Sie zwei Virtualisierungs-Hosts: einen Xen-Gast und einen gemeinsam genutzten Speicherbereich. Sie müssen die beiden Virtualisierungs-Hosts mit einem UTP-Kabel verbinden. Einer der Virtualisierungs-Hosts exportiert einen gemeinsam genutzten Speicher via NFS. Sie müssen beide Virtualisierungs-Hosts konfigurieren, damit diese erfolgreich migrieren können. Der Xen-Gast befindet sich auf dem gemeinsam genutzten Speicher. Auf dem Xen-Gast sollten Sie eine Streaming-Server installieren. Sie müssen sich vergewissern, dass der Streaming-Server immer noch ohne Unterbrechungen auf dem Xen-Gast läuft, damit die Live-Migration zwischen dem einem Virtualisierungs-Host und dem anderen stattfindet. Verwenden Sie die beiden Virtualisierungs-Hosts im Lab 2 als host1 und host2 .
Sequenz 1: Konfiguration von xend (auf beiden Xen-Hosts)
In dieser Lab-Prozedur konfigurieren Sie xend so, dass dieser als ein HTTP-Server und ein Umzugs-Server startet. Der xend-Daemon startet den HTTP-Server nicht standardmäßig. Es startet den Management-Server für UNIX-Domain-Sockets (für xm) und kommuniziert mit xend. Um die Live-Migration zwischen zwei Maschinen zu aktivieren, müssen Sie diesen so konfigurieren, dass er Live-Migration unterstützt:
  1. Gehen Sie wie folgt vor, um eine Sicherung Ihrer Datei xend-config.sxp durchzuführen:
        cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
    
  2. Bearbeiten Sie /etc/xen/xend-config.sxp und nehmen Sie folgende Änderungen vor:
    #(xend-unix-server yes)(xend-relocation-server
        yes)(xend-relocation-port 8002)(xend-relocation-address
        '')(xend-relocation-hosts-allow '')#(xend-relocation-hosts-allow '^localhost$
        ^localhost\\.localdomain$')
    
  3. Starten Sie xend:service und xend restart neu.
Sequenz 2: Export eines gemeinsam genutzten Speicherbereichs via NFS
Für diese Lab-Prozedur konfigurieren Sie NFS und verwenden es für den Export eines gemeinsam genutzten Speicherbereichs.
  1. Bearbeiten Sie /etc/exports und fügen folgende Zeile ein: /xen *(rw,sync,no_root_squash)/
  2. Speichern Sie /etc/exports und starten den NFS-Server neu. Stellen Sie sicher, dass der NFS-Server standardmäßig startet: service nfs start; chkconfig nfs on.
  3. Nachdem Starten des NFS-Servers auf host1 können wir diesen anschließend auf host2 mounten: mount host1:/xen .
  4. Starten Sie nun den Xen-Gast auf host1 und wählen Sie fc6-pv1 (oder fc6-pv2 von Lab 1):
    xm create -c fc6-pv1
    
Sequenz 3: Installation des Xen-Gast Streaming-Server
Für diesen Schritt im Rahmen des Labs installieren Sie einen Streaming-Server, "gnump3d", zu Demonstrationszwecken. "gnump3d" wird gewählt, da dieser OGG-Vorbis-Dateien unterstützt, und leicht zu installieren, konfigurieren und modifizieren ist.
  1. Laden Sie das Tar-Archiv gnump3d-2.9.9.9.tar.bz2 von http://www.gnump3d.org/ herunter. Entpacken Sie das Archiv und kompilieren und installieren im Verzeichnis gnump3d-2.9.9.9/ die gnump3d-Anwendung: tar xvjf gnump3d-2.9.9.9.tar.bz2; cd gnump3d-2.9.9.9/; make install .
  2. Create a /home/mp3 directory and copy TruthHappens.ogg from Red Hat's Truth Happens page to mkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
  3. Starten Sie den Streaming-Server mit folgendem Befehl
     command:gnump3d
    
  4. Starten Sie den Movie Player auf einem der beiden Xen-Hosts. Falls dieser nicht installiert ist, installieren Sie die "totem" und "iso-codecs" RPMs, bevor Sie den Movie Player ausführen. Klicken Sie auf Anwendungen, dann Audio & Video und schließlich auf Movie Player.
  5. Klicken Sie auf "Film" und anschließend auf "Ort öffnen". Geben Sie http://guest:8888/TruthHappens.ogg ein.
Sequenz 4: Durchführen einer Live-Migration
  1. Starten Sie das Abspielen der Datei TruthHappens.ogg auf einem der beiden Xen-Hosts.
  2. Führen Sie die Live-Migration von host1 auf host2 durch:
    xm migrate –live fc6-pv1 host2
    
  3. Öffnen Sie mehrere Fenster-Terminals auf beiden Xen-Hosts mit Hilfe des folgenden Befehls:
    watch -n1 xm list
    
  4. Beobachten Sie, wie die Live-Migration beginnt. Beachten Sie, wie lange die Fertigstellung der Migration braucht.
Bonus-Sequenz (Herausforderung): Konfiguration eines VNC-Servers von einem Xen-Gast aus
If time permits, from within the Xen guest, configure the VNC server to initiate when gdm starts up. Run VNC viewer and connect to the Xen guest. Play with the Xen guest when the live migration occurs. Attempt to pause/resume, and save/restore the Xen guest and observe what happens to the VNC viewer. If you connect to the VNC viewer via localhost:590x, and do a live migration, you won't be able to connect to the VNC viewer again when it dies. This is a known bug.

Anhang C. Revisionsgeschichte

Versionsgeschichte
Version 2.0-11.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Version 2.0-112012-07-18Anthony Towns
Rebuild for Publican 3.0
Version 5.1.0-10Fri Aug 3 2007Michael Hideo Smith
Resolves: #245684
Content Updates

Rechtlicher Hinweis

Copyright © 2007 Red Hat Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.