Kapitel 15. Virtualisierung

Leistungsverbesserungen des KVM-Prozessors

Zeitscheiben-Aufteilung Virtueller CPUs
Die Zeitscheiben-Aufteilung bei virtuellen CPUs ist ein Feature zur Leistungssteigerung auf Ebene des Linux-Schedulers. Dieses Feature behebt ein Sperrproblem in SMP-Systemen, das die Leistung virtueller CPUs beeinträchtigen kann. Dieses Feature liefert eine stabile Leistung in Gästen mit mehreren Prozessoren und wird auf Intel- und auf AMD-Prozessoren unterstützt - auf Intel-Prozessoren wird es als Pause Loop Exiting (PLE) bezeichnet, auf AMD-Prozessoren Pause Filter.
Leistungsverbesserungen des KVM-Netzwerks

Die Leistung des KVM-Netzwerks ist eine wesentliche Voraussetzung für Produkte und Lösungen, die auf Virtualisierung und Cloud Computing basieren. Red Hat Enterprise Linux 6.2 bringt eine Reihe von Verbesserungen der Netzwerkleistung ein, um die Leistung der paravirtualisierten KVM-Netzwerktreiber in verschiedenen Situationen zu verbessern.

KVM-Leistungsverbesserungen bei kleinen Nachrichten
Red Hat Enterprise Linux 6.2 verbessert die KVM-Leistung bei kleinen Nachrichten, um einer Vielzahl an Netzwerklasten gerecht zu werden, die kleine Nachrichten (< 4K) generieren.
Leitungsgeschwindigkeitsanforderung in KVM-Netzwerktreibern
Virtualisierungs- und Cloud-Produkte, die Netzwerklasten verarbeiten, benötigen Leitungsgeschwindigkeit. Bis Red Hat Enterprise Linux 6.1 bestand die einzige Möglichkeit, auf einer 10 GB Ethernet NIC mit einem niedrigen CPU-Gebrauch Leitungsgeschwindigkeit zu erreichen, darin, PCI-Gerätezuweisung einzusetzen, was jedoch andere Funktionen wie Speichermehrfachvergabe und Gastmigration einschränkte.
Das macvtap/vhost Zero-Copy-Feature ermöglicht es dem Benutzer, diese Funktionen einzusetzen, wenn eine hohe Leistung erforderlich ist. Dieses Feature verbessert die Leistung für alle Red Hat Enterprise Linux 6.x Gäste im VEPA-Anwendungsfall. Dieses Feature wird als Technologievorschau eingeführt.
UDP-Prüfsummenoptimierung für KVM-Netzwerktreiber
Durch die UDP-Prüfsummenoptimierung ist es nicht länger erforderlich, dass der Gast die Prüfsumme verifiziert, wenn diese bereits von Host-NICs verifiziert wurde. Dieses Feature beschleunigt UDP auf Extern zum Gast auf 10 GB Ethernet-Karten mit Red Hat Enterprise Linux 6.2 Gästen und Hosts. Die UDP-Prüfsummenoptimierung ist im virtio-net-Treiber implementiert.
Verbesserte I/O-Pfadleistung, wenn der Host langsamer als der Gast ist
Der Red Hat Enterprise Linux 6.2 KVM-Netzwerktreiber verfügt über verbesserte I/O-Pfadleistung, mit weniger virtuellen Maschinen Exits und Interrupts, was zu schnellerer Datenübertragung führt. Diese Verbesserung ermöglicht es Ihnen zudem, einen schnelleren Gast auf einem langsameren Host ohne Leistungseinbußen auszuführen. Diese Verbesserung wird durch eine optimierte virtio-Ringstruktur sowie durch Unterstützung für Ereignisindizes in virtio und vhost-net erreicht.
Verbesserungen der KVM-Systemverwaltung und Nutzerfreundlichkeit

Systemüberwachung mittels SNMP
Dieses Feature liefert KVM-Unterstützung für stabile Technologie, die in Rechenzentren bereits auf Bare-Metal-Systemen eingesetzt wird. SNMP ist der Standard bei der Überwachung und ist nicht nur sehr gut erforscht, sondern auch recheneffizient. Die Systemüberwachung mittels SNMP in Red Hat Enterprise Linux 6.2 ermöglicht es den KVM-Hosts, SNMP-Traps auf Ereignisse zu senden, damit Hypervisor-Ereignisse über das standardmäßige SNMP-Protokoll an den Benutzer gemeldet werden können. Dieses Feature wird mithilfe eines zusätzlichen Pakets bereitgestellt: libvirt-snmp. Dieses Feature wird als Technologievorschau eingeführt.
Verbesserte Funktionen zur Suche und Bereinigung von Programmfehlern im Gast
Benutzer, die Ihre Rechenzentren virtualisieren, benötigen einen Weg zur Suche und Bereinigung von Programmfehlern, wenn ein Gastbetriebssystem abstürzt und ein Speicherauszug des Absturzes initiiert werden muss. Auf physischen Rechnern kommt dazu meist eine der beiden folgenden Methoden zum Einsatz:
  • Auslösen eines nicht maskierbaren Interrupts (NMI) im Gast
  • Senden von SysRq-Sequenzen an den Gast
Während diese Funktionen direkt über die KVM-Konsole bereitgestellt werden, nutzen einige Benutzer KVM über die libvirt-API und virsh, wo diese beiden Features fehlten. Red Hat Enterprise Linux 6.2 verbessert die Funktionen zur Suche und Bereinigung von Programmfehlern im gesamten KVM-Stapel, so dass ein Benutzer nun NMIs in Gästen auslösen kann und SysRq-Schlüsselsequenzen an Gäste senden kann.
Verbesserter Zugriff auf den Boot-Prozess virtueller Maschinen
Benutzer, die Ihre Rechenzentren virtualisieren, müssen den Boot-Vorgang der Gäste nachverfolgen und die gesamten BIOS- und Kernel-Bootup-Meldungen von Anfang an anzeigen können. Ohne dieses Feature können Benutzer die virsh-Konsole vor dem Bootup nicht interaktiv verwenden. \nUm diese Fähigkeit einzubringen, wurde ein neues Paket namens sgabios zu Red Hat Enterprise Linux 6.2 hinzugefügt und einige Änderungen an qemu-kvm vorgenommen.
Live-Snapshots
Red Hat Enterprise Linux 6.2 führt das Live Snapshot Feature als Technologievorschau ein. Das Live Snapshot Feature ermöglicht das automatische Backup von virtuellen Maschinen-Images auf die Festplatte und ermöglicht Snapshots pro Laufwerk der virtuellen Festplatten mittels externer qcow2-Images. Die Erstellung von Live-Snapshots multipler Festplatten hilft beim Gewährleisten der Datenintegrität, indem qemu angehalten wird, bevor soviele Snapshots erstellt werden, wie es Festplatten gibt. Diese Snapshots multipler Festplatten enthalten demnach Daten von demselben Zeitpunkt.
Es ist wichtig, sich darüber im Klaren zu sein, dass die Dateisystemkonsistenz Grenzen hat. Allerdings ist die Wiederverwendung des Snapshot-Images konsistent über einen Systemabsturz hinweg. Ein Benutzer müsste einen Dateisystem-Check (fsck) durchführen oder Journal-Einträge wiederanwenden, was einem Systemstart nach Ziehen des Steckers gleichkommt.
Verbesserung der Multi-Processor (NUMA) Optimierung
Red Hat Enterprise Linux 6.2 bringt verbesserte Optimierungen in den libvirt API-Stapel ein, was beim Durchführen von SPECvirt-Maßnahmen in einer standardmäßig besseren Leistung resultiert. Red Hat Enterprise Linux 6.2 ist nun dazu in der Lage, den mit einem NUMA-Knoten verknüpften Speicher zu verankern, sobald eine virtuelle Maschine erstellt wird.
USB-Verbesserungen
Die USB 2.0 Emulation wurde für qemu-kvm implementiert. Dies steht nur für QEMU direkt zur Verfügung. Libvirt-Unterstützung ist für die nächste Release geplant.
Unterstützung für das Remote Wakeup wurde zum USB-Host-Controller hinzugefügt. Zusammen mit der Kooperation des Gastbetriebssystems ermöglicht dies, den 1000hz Polling-Modus zu stoppen und das Gerät in den Ruhezustand zu versetzen. Dies verbessert deutlich den Energieverbrauch und den CPU-Verbrauch von virtuellen Maschinen mit einer USB-Mausemulation (oder einem Tablet) — eines der üblichen Geräte, über das jede virtuelle Maschine verfügt.
Xen-Verbesserungen

Memory Ballooning
Memory Ballooning wird nun von Red Hat Enterprise Linux 6 paravirtualisierten Xen-Gästen unterstützt.
Domain-Speichergrenze
Speichergrenze für x86_64 domU PV-Gäste wurde erhöht auf 128 GB: CONFIG_XEN_MAX_DOMAIN_MEMORY=128.
Zeitberechnung
Die xen_sched_clock-Implementierung (welche die Anzahl nicht gestohlener Nanosekunden ausgibt) wurde durch die xen_clocksource_read-Implementierung ersetzt.
Virtualisierungsdokumentation

Das Red Hat Enterprise Linux Virtualisierungshandbuch wurde in mehrere einzelne Handbücher unterteilt:

spice-Protokoll

Das Paket spice-protocol wurde nun auf Version 0.8.1 aktualisiert und liefert die folgenden neuen Features:

  • Unterstützung für Datenträgeränderung
  • Unterstützung für asynchrone Gast-I/O-Schreibvorgänge und Interrupts
  • Unterstützung für Gast-I/O-Schreibvorgänge im Zusammenhang mit suspend (S3)
  • Unterstützung für Interrupts, die einen Gastfehler anzeigen
Linux-Container

Linux-Container bieten eine flexible Herangehensweise zur Abgrenzung von Applikationen zur Laufzeit auf Bare-Metal-Systemen, ohne dass die Arbeitslast dazu voll virtualisiert werden muss. Red Hat Enterprise Linux 6.2 bietet Container auf Applikationsebene, um die Richtlinien zum Ressourcenverbrauch von Applikationen mithilfe von cgroup und Namensräumen zu trennen und zu steuern. Diese Release führt die Verwaltung von Container-Lebenszyklen ein, indem Container über die libvirt-API und die virt-manager-Benutzeroberfläche erstellt, bearbeitet und gelöscht werden können. Linux-Container sind eine Technologievorschau.

Red Hat Enterprise Virtualisierungs-Hypervisor RPM mehrfach installierbar

Um mehrfache Installationen des rhev-hypervisor-Pakets zu ermöglichen, konfigurieren Sie Yum derart, dass rhev-hypervisor als ein "installonly"-Paket gekennzeichnet wird, indem Sie die /etc/yum.conf-Datei bearbeiten und die folgende installonlypkgs-Option hinzufügen:

[main]
...
installonlypkgs=rhev-hypervisor
Diese Option muss auch die standardmäßige Liste aller "installonly"-Pakete enthalten, welche Sie auf der yum.conf-Handbuchseite (man yum.conf 5) im Abschnitt zur "installonlypkgs"-Option finden.