Virtualisierung: libvirt 8.0.0 mit QEMU-synchronen Kopiervorgängen

Mit der neuen Version 8.0.0 baut das libvirt-Projekt vor allem die QEMU-Funktionen aus.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Michael Plura

Nach fast genau einem Jahr Entwicklungszeit veröffentlicht das libvirt-Projekt Version 8.0.0 seiner API zum Management von Virtualisierungslösungen. Die wenigen Neuerungen betreffen vorwiegend die Zusammenarbeit mit QEMU. libvirt stellt eine API und eine Sammlung von Open-Source-Werkzeugen dar, die es verschiedenen Frontends ermöglicht, über eine einheitliche Schnittstelle diverse Hypervisoren zu managen.

Nutzer von libvirt und einer QEMU-basierten Virtualisierungslösung auf NUMA-Hardware (Non-Uniform Memory Access, bei AMD ab dem Opteron, bei Intel ab Nehalem/Tukwila-CPUs) müssen sich vom "strict"-Mode bei numatune verabschieden. Die Funktion haben die Entwickler entfernt, weil sich eventuell durch QEMU gesperrte Speicherbereiche nicht auf andere NUMA-Nodes verschieben lassen. Wer trotzdem die Live-Migration zwischen NUMA-Nodes benötigt, muss statt "strict" künftig "restrictive" benutzen. Das kann beispielsweise so aussehen:

<domain>
  ...
  <numatune>
    <memory mode="restrictive" nodeset="1-4,^3"/>
  </numatune>
  ...
</domain>

Für QEMU gibt es nun einen "synchronous write mode" für die Kopierfunktion. Damit stellt libvirt sicher, dass etwa ein "blockdev-mirror"-Job seine Daten nicht einfach in den Cache, sondern tatsächlich auf das Zielmedium schreibt. Das verhindert, dass unter hoher I/O-Last als wichtig erachtete Schreibvorgänge zu lange im Cache gehalten werden. Bei einem Snapshot oder beim blockweisen Kopieren eines QEMU qcow2-Images wird des Status eines eventuell aktivierten sub-clustering übernommen.

Über die neue API virDomainSetLaunchSecurityState und den virsh-Befehl domsetlaunchsecstate lässt sich ab libvirt 8 ein "launch secret" in eine Domain injizieren. Mit libxl haben die Entwickler eine virDomainGetMessages-API implementiert.

Ein Problem beim Entfernen von Hotplugging-Geräten, die bereits beim Start der QEMU-VM vorhanden waren, haben die Entwickler beseitigt. Für die Vorgängerversionen libvirt 7.9 und 7.10 gibt es Workarounds. Kleinere Fehler bei Split-Daemon-Konfigurationen und OVS-Bridges (Open vSwitch Netzwerkbrücken) hat das Projekt ebenfalls behoben. Das Kompilieren von libvirt 8 ohne Remote-Treiber direkt aus dem Quellcode ist nun auch ohne RPC-Bibliothek möglich.

Wie den Release-Ankündigungen zu entnehmen ist, wird mit dem kommenden libvirt 8.1.0 versucht, sich weiter in das systemd-Universum einzufügen.

(fo)