QEMU 5.2 беше пусната и тази нова версия включва над 3200 промени от 216 разработчици , включително поддръжка за миграция на живо за RISC-V, експериментална поддръжка за хипервизора RISC-V, поддръжка за повече платки и много други.
За тези, които не са запознати с QEMU, това е емулатор, който ви позволява да стартирате програма, създадена за една хардуерна платформа, на система с напълно различна архитектура , например, стартиране на ARM приложение на x86 съвместим компютър.
В режим на виртуализация в QEMU, производителността на работещ код в изолирана среда е близка до хардуерната система поради директното изпълнение на инструкциите на процесора и използването на Xen хипервизора или KVM модула.
Основни новости на QEMU 5.2
Системата за компилиране се е променила; компилирането на QEMU вече изисква инсталиране на ninja toolkit.
Добавена е поддръжка за драйвера на блоково устройство, който да използва процеса qemu-storage-daemon във фонов режим като бекенд за vhost-user-blk, както и нова QMP команда „block-export-add“, която замества командата „nbd-server-add“ и осигурява поддръжка за „qemu-storage-daemon“.
За qcow2 образите е добавена поддръжка за разширени L2 регистри, което позволява разпределянето на пространство от непълни групи (подклъстери). За да активирате L2 при създаване на образ, трябва да укажете опцията "extended_l2 = on".
Заслужава да се отбележи и подобрената поддръжка за използване на qemu като NBD клиент, тъй като това намалява броя на ситуациите, които водят до прекъсвания на времето при обмен на данни по мрежата, причинявайки блокиране от гост. Qemu-nbd предоставя възможност за задаване на множество опции „-B име“, за да се укажат едновременно множество „dirty“ растерни изображения.
Друга важна промяна е новият високопроизводителен режим на миграция с криптиран трансфер на данни, използващ TLS и multifd. Лимитът на пропускателната способност за миграция по подразбиране е увеличен до 1 Gbps.
Добавен е параметърът за миграция „block-bitmap-mapping“, който позволява по-прецизен контрол върху това кои растерни изображения се прехвърлят по време на миграция. Този параметър работи дори ако имената на хостовете се различават от тези на източника в приемащата страна.
Освен това бяха добавени нови извиквания „calc-dirty-rate“ и „query-dirty-rate“, за да се предскаже честотата на актуализиране по време на миграция, като се вземе предвид натоварването, свързано с операциите в RAM паметта.
Ще открием и поддръжка за платките mp2-an386, mp2-an500, raspi3ap (Raspberry Pi 3 модел A+), raspi0 (Raspberry Pi Zero), raspi1ap (Raspberry Pi A+) и npcm750-evb/quanta-gsj.
За архитектурата AArch32 е внедрена поддръжка за разширенията ARMv8.2 FEAT_FP16 (средна точност на плаваща точка).
Накрая, споменават се и нови опции към virtiofsd за контрол на рендирането на разширени имена на атрибути xattr на гост системата, отделното свързване на дялове с различни точки на монтиране на хост системата, както и за задаване на механизъм за изолиране в пясъчник, който е алтернатива на pivot_root.
И поддръжка за миграция на живо към емулатора на RISC-V архитектурата, както и експериментална поддръжка на хипервизор за RISC-V, актуализирана до версия 0.6.1. Добавена е поддръжка за NUMA сокети на virt/Spike системи.
Други забележителни промени в тази нова версия включват:
- Командите guest-get-devices, guest-get-disks и guest-ssh- {get, add-remove} -authorized-keys са добавени към агента за гости на QEMU (qemu-ga).
- Добавена е поддръжка за kvm-steal-time счетоводство.
- Емулаторът за архитектура HPPA поддържа стартиране на NetBSD и много стари дистрибуции на Linux, като Debian 0.5 и 0.6.1.
- Емулаторът на архитектура PowerPC има подобрена поддръжка за дефинирани от потребителя интервали за NUMA топологията.
- Емулаторът за архитектура s390 за KVM добави поддръжка за диагностични инструкции 0x318.
- Класическият генератор на кодове TCG (Tiny Code Generator) изпълнява поддръжка за допълнителни z14 инструкции.
- На устройствата vfio-pci се предоставя информация за действителната функционалност на компютъра вместо емулираните функции.
- Архитектурният емулатор Xtensa добавя поддръжка за DFPU копроцесор с единични и двойни прецизни кодове с плаваща запетая.