QEMU 5.2 wurde veröffentlicht , und diese neue Version enthält über 3200 Änderungen von 216 Entwicklern , darunter Live-Migrationsunterstützung für RISC-V, experimentelle Unterstützung für den RISC-V-Hypervisor, Unterstützung für mehr Boards und vieles mehr.
Für diejenigen, die QEMU nicht kennen: Es handelt sich um einen Emulator, mit dem man ein für eine Hardwareplattform entwickeltes Programm auf einem System mit einer völlig anderen Architektur ausführen kann , beispielsweise eine ARM-Anwendung auf einem x86-kompatiblen PC.
Im Virtualisierungsmodus in QEMU liegt die Leistung beim Ausführen von Code in einer isolierten Umgebung aufgrund der direkten Ausführung von Anweisungen auf der CPU und der Verwendung des Xen-Hypervisors oder des KVM-Moduls nahe am Hardwaresystem.
Hauptnachrichten von QEMU 5.2
Das Build-System hat sich geändert; zum Kompilieren von QEMU muss nun das Ninja-Toolkit installiert sein.
Es wurde Unterstützung für den Blockgerätetreiber hinzugefügt, um den qemu-storage-daemon-Prozess im Hintergrund als Backend für vhost-user-blk zu verwenden, sowie einen neuen QMP-Befehl 'block-export-add', der den Befehl 'nbd-server-add' ersetzt und Unterstützung für 'qemu-storage-daemon' bietet.
Für qcow2-Images wurde die Unterstützung für erweiterte L2-Register hinzugefügt, wodurch Speicherplatz von unvollständigen Gruppen (Subclustern) zugewiesen werden kann. Um L2 beim Erstellen eines Images zu aktivieren, müssen Sie die Option „extended_l2 = on“ angeben.
Besonders hervorzuheben ist die verbesserte Unterstützung für die Verwendung von QEMU als NBD-Client, da dadurch die Anzahl der Situationen reduziert wird, die zu Timeouts beim Datenaustausch über das Netzwerk und somit zu Blockierungen des Gastsystems führen. QEMU-NBD ermöglicht die Angabe mehrerer „-B Name“-Optionen, um mehrere geänderte Bitmaps gleichzeitig festzulegen.
Eine weitere wichtige Änderung ist der neue Hochleistungsmigrationsmodus mit verschlüsselter Datenübertragung mittels TLS und MultiFD. Die standardmäßige Bandbreitenbegrenzung für die Migration wurde auf 1 Gbit/s erhöht.
Der Migrationsparameter „block-bitmap-mapping“ wurde hinzugefügt und ermöglicht eine feinere Steuerung der während der Migration zu übertragenden Bitmaps. Dieser Parameter funktioniert auch dann, wenn sich die Hostnamen am Zielort von denen der Quelle unterscheiden.
Zusätzlich wurden neue 'calc-dirty-rate'- und 'query-dirty-rate'-Aufrufe hinzugefügt, um die Aktualisierungsrate während der Migration unter Berücksichtigung der mit den Operationen im RAM verbundenen Last vorherzusagen.
Wir werden auch Unterstützung für die Boards mp2-an386, mp2-an500, raspi3ap (Raspberry Pi 3 Modell A+), raspi0 (Raspberry Pi Zero), raspi1ap (Raspberry Pi A+) und npcm750-evb/quanta-gsj finden.
Für die AArch32-Architektur wird die Unterstützung für die Erweiterungen ARMv8.2 FEAT_FP16 (Flaoting Point mittlerer Genauigkeit) implementiert.
Schließlich werden auch neue Optionen für virtiofsd erwähnt, mit denen sich die Darstellung erweiterter xattr-Attributnamen auf dem Gastsystem steuern lässt, die separate Verbindung von Partitionen mit unterschiedlichen Mountpunkten auf dem Hostsystem hergestellt werden kann und mit denen sich ein Sandbox-Isolationsmechanismus als Alternative zu pivot_root festlegen lässt.
Und Live-Migrationsunterstützung zum RISC-V-Architekturemulator sowie experimentelle Hypervisor-Unterstützung für RISC-V, aktualisiert auf Version 0.6.1. Unterstützung für NUMA-Sockets auf virt/Spike-Systemen hinzugefügt.
Weitere bemerkenswerte Änderungen in dieser neuen Version sind:
- Die Befehle guest-get-device, guest-get-disks und guest-ssh- {get, add-remove} -authorized-keys wurden dem QEMU-Gastagenten (qemu-ga) hinzugefügt.
- Unterstützung für kvm-Steal-Time-basierte Buchhaltung hinzugefügt.
- Der Emulator für die HPPA-Architektur unterstützt das Booten von NetBSD und sehr alten Linux-Distributionen wie Debian 0.5 und 0.6.1.
- Der Emulator der PowerPC-Architektur hat die Unterstützung für benutzerdefinierte Abstände für die NUMA-Topologie verbessert.
- Der Emulator für die s390-Architektur für KVM bietet Unterstützung für 0x318-Diagnoseanweisungen.
- Der klassische Codegenerator TCG (Tiny Code Generator) unterstützt zusätzliche z14-Anweisungen.
- Auf vfio-pci-Geräten werden anstelle der emulierten Funktionen Informationen zur tatsächlichen Computerfunktionalität bereitgestellt.
- Der Emulator der Xtensa-Architektur unterstützt den DFPU-Coprozessor mit Gleitkomma-Opcodes mit einfacher und doppelter Genauigkeit.