Intel a annoncé la sortie d' une nouvelle version de son « Cloud Hypervisor 0.3 », un moniteur de machines virtuelles open source fonctionnant sur KVM. Ce projet est exclusivement dédié à l'exécution de charges de travail cloud modernes, sur un nombre limité d'architectures et de plateformes matérielles.
Les charges de travail cloud désignent celles généralement exécutées par les clients dans l'environnement d'un fournisseur de services cloud. L'hyperviseur repose sur des composants du projet commun Rust-VMM, auquel participent également Alibaba, Amazon, Google et Red Hat, en plus d'Intel.
Rust-VMM, écrit en Rust, permet de créer des hyperviseurs spécifiquement conçus pour des tâches particulières. Cloud Hypervisor est un exemple d'hyperviseur de ce type, offrant un moniteur de machines virtuelles (VMM) de haut niveau et optimisé pour répondre aux exigences du cloud computing.
Cloud Hypervisor se concentre sur le lancement de distributions Linux modernes à l'aide d'appliances paravirtio.
Ses principales caractéristiques sont les suivantes : réactivité élevée, faible consommation de mémoire, hautes performances, configuration simplifiée et vecteurs d’attaque réduits.
La prise en charge de l'émulation est réduite au minimum, l'accent étant mis sur la paravirtualisation. Actuellement, seuls les systèmes x86_64 sont pris en charge, mais la prise en charge d'AArch64 est prévue. Parmi les systèmes invités, seules les distributions Linux 64 bits sont actuellement compatibles. Le processeur, la mémoire, les interfaces PCI et NVDIMM sont configurés lors de la compilation, et les machines virtuelles peuvent être migrées entre serveurs.
Le code du projet est disponible sous la licence Apache 2.0.
Principales nouveautés de Cloud Hypervisor 0.3
Cette nouvelle version de Cloud Hypervisor 0.3 élimine notamment les E/S paravirtualisées dans les processus individuels . Pour interagir avec les périphériques de stockage par blocs, la possibilité d'utiliser les backends vhost-user-blk a été ajoutée.
Cette modification permet de connecter des périphériques de stockage par blocs basés sur le module vhost-user, tels que SPDK, à l'hyperviseur cloud en tant que backends pour le stockage paravirtualisé.
La prise en charge de la suppression des opérations réseau dans les backends vhost-user-net , présente dans la version précédente, est étendue grâce à un nouveau backend basé sur le contrôleur de réseau virtuel TAP. Ce backend, écrit en Rust, est désormais utilisé par Cloud Hypervisor comme architecture réseau paravirtualisée principale.
Pour accroître l'efficacité et la sécurité des communications entre l'environnement hôte et le système invité, une implémentation de socket hybride avec adressage AF_VSOCK (sockets réseau virtuels) est proposée, fonctionnant via virtio.
Cette implémentation s'appuie sur l'expérience acquise avec le projet Firecracker d'Amazon. VSOCK permet l'utilisation de l'API standard des sockets POSIX pour l'interaction entre les applications du système invité et celles du système hôte, facilitant ainsi l'adaptation des programmes réseau classiques et la mise en œuvre de l'interaction entre plusieurs programmes clients et une application serveur.
Autre changement notable : l’ introduction d’une prise en charge initiale de l’API de gestion via le protocole HTTP . À terme, cette API permettra d’effectuer des opérations asynchrones sur les systèmes invités, comme la connexion à chaud aux ressources et la migration d’environnements.
L'ajout d'une couche avec l'implémentation de transport virtio MMIO (virtio memory mapped), qui peut être utilisée pour créer des systèmes invités minimalistes ne nécessitant pas d'émulation de bus PCI, est également mis en évidence.
Dans le cadre d'une initiative visant à étendre la prise en charge de la prise en charge intégrée du lancement d'invités, Cloud Hypervisor a ajouté la possibilité de transférer des appareils IOMMU paravirtualisés via virtio, ce qui peut augmenter la sécurité du transfert d'appareil intégré et direct.
Enfin, parmi les autres nouveautés mises en avant dans l'annonce, on note la prise en charge d'Ubuntu 19.10, ainsi que la possibilité supplémentaire d'exécuter des systèmes invités avec plus de 64 Go de RAM.
Si vous souhaitez en savoir plus et travailler avec cet hyperviseur, vous trouverez les détails sur le lien suivant.