Après huit mois de développement, la version libre de l'hyperviseur Xen 4.16 a été publiée. Des entreprises telles qu'Amazon, Arm, Bitdefender, Citrix et EPAM Systems ont participé au développement de cette nouvelle version. La publication des mises à jour pour la branche Xen 4.16 se poursuivra jusqu'au 2 juin 2023, et la publication des correctifs de vulnérabilités se fera jusqu'au 2 décembre 2024.
Modifications clés dans Xen 4.16 :
- Des corrections ont été apportées au TPM Manager, qui permet le fonctionnement des puces virtuelles pour le stockage de clés cryptographiques (vTPM), mises en œuvre à partir d'un TPM physique commun (Trusted Platform Module), en vue de la mise en œuvre ultérieure du support de la spécification TPM 2.0.
- La dépendance au module PV Shim, utilisé pour exécuter des systèmes invités paravirtualisés non modifiés (PV) dans des environnements PVH et HVM, a été renforcée. À l'avenir, l'utilisation de systèmes invités paravirtualisés en 32 bits ne sera possible qu'en mode PV Shim, ce qui permettra de réduire le nombre de points dans l'hyperviseur où des vulnérabilités pourraient potentiellement exister.
- La possibilité de démarrer sur des appareils Intel sans minuteur programmable (PIT, Programmable Interval Timer) a été ajoutée.
- Un nettoyage des composants obsolètes a été effectué, la construction par défaut du code « qemu-xen-traditional » et de PV-Grub a été arrêtée (la nécessité de forks spécifiques à Xen a disparu après l'intégration des changements supportant Xen dans le projet principal de QEMU et Grub).
- Pour les systèmes invités avec une architecture ARM, un support initial des compteurs de performance virtuels pour le suivi des performances (Performance Monitor Counters) a été mis en œuvre.
- Le support du mode dom0less, permettant de se passer du déploiement d'un environnement dom0 lors du démarrage, a été amélioré. machines virtuelles Les modifications apportées ont permis de prendre en charge des systèmes ARM 64 bits avec des firmwares EFI dès le début du chargement du serveur.
- Le support des systèmes ARM 64 bits hétérogènes basés sur l'architecture big.LITTLE, combinant dans une seule puce des cœurs puissants mais énergivores, et des cœurs moins performants mais plus écoénergétiques, a été amélioré.
En parallèle, la société Intel a publié la version 20.0 de son hyperviseur Cloud Hypervisor, construit sur la base des composants d'un projet collaboratif Rust-VMM, auquel participent également les entreprises Alibaba, Amazon, Google et Red Hat. Rust-VMM est écrit en Rust et permet de créer des hyperviseurs spécifiques à des tâches définies. Cloud Hypervisor est l'un de ces hyperviseurs, offrant un moniteur de machines virtuelles (VMM) de haut niveau qui fonctionne au-dessus de KVM et est optimisé pour résoudre des problèmes propres aux systèmes cloud. Le code du projet est disponible sous la licence Apache 2.0.
Cloud Hypervisor se concentre sur l'exécution des distributions Linux modernes en utilisant des dispositifs paravirtualisés basés sur virtio. Parmi les tâches clés, on note : une grande réactivité, une faible consommation de mémoire, une haute performance, une simplification de la configuration et une réduction des vecteurs d'attaque possibles. Le support de l'émulation est réduit au minimum et l'accent est mis sur la paravirtualisation. Actuellement, seules les systèmes x86_64 sont pris en charge, mais il est prévu de prendre également en charge l'AArch64. Pour les systèmes invités, seules les versions 64 bits de Linux sont pour l'instant prises en charge. La configuration du CPU, de la mémoire, du PCI et du NVDIMM se fait au moment de la construction. La migration des machines virtuelles entre serveurs très chargés.
Dans la nouvelle version :
- Pour les architectures x86_64 et aarch64, la création de jusqu'à 16 segments PCI est désormais autorisée, ce qui augmente le nombre total de dispositifs PCI autorisés de 31 à 496.
- La prise en charge de l'assignation des CPU virtuels aux cœurs physiques de CPU (CPU pinning) a été mise en œuvre. Pour chaque vCPU, un ensemble limité de CPU hôtes peut désormais être défini, ce qui peut être utile pour un reflet direct (1:1) des ressources de l'hôte et du système invité ou lors de l'exécution d'une machine virtuelle sur un nœud NUMA spécifique.
- Le support de la virtualisation des entrées/sorties a été amélioré. Chaque région VFIO peut désormais être reflétée en mémoire, ce qui réduit le nombre d'opérations de sortie de la machine virtuelle et permet d'améliorer la performance du passage de périphériques à la machine virtuelle.
- Dans le code Rust, un travail a été effectué pour remplacer les sections unsafe par des implémentations alternatives exécutées en mode safe. Pour les sections unsafe restantes, des commentaires détaillés ont été ajoutés pour expliquer pourquoi le code unsafe laissé peut être considéré comme sûr.
Source : opennet.ru
