Initiative de révision des outils pour l'hyperviseur Xen en Rust

Les développeurs de la plateforme XCP-ng, développée sous l'égide du projet Xen, ont publié un plan pour créer, en langage Rust, un remplacement de divers composants de la pile logicielle Xen. Pour l'instant, il n'est pas prévu de retravailler l'hyperviseur Xen, le travail étant principalement concentré sur la refonte de certains composants de l'outil.

Actuellement, la plateforme utilise des composants en langages C, Python, OCaml et Go, dont certains sont obsolètes et posent des problèmes de maintenance. Il est noté que l'utilisation de Rust ne conduira pas à une augmentation générale du nombre de langages utilisés, car un seul composant a été réalisé en Go, et celui-ci est prévu pour être remplacé en premier.

Le langage Rust a été choisi pour sa capacité à combiner une haute performance du code résultant avec des possibilités de gestion sécurisée de la mémoire, évitant le recours à un ramasse-miettes, adapté au développement de composants à la fois bas et haut niveau, tout en offrant des fonctionnalités supplémentaires pour réduire les erreurs potentielles, telles que la vérification de l'emprunt de variables (borrow checker). Rust est également plus répandu que le langage OCaml actuellement utilisé dans XAPI, ce qui simplifiera l'intégration de nouveaux développeurs dans le projet.

Dans un premier temps, il est prévu de développer un remplacement pour plusieurs composants afin de tester les processus et de préparer la base pour le remplacement d'autres parties de la pile logicielle. En particulier, les outils pour invités Linux seront reprogrammés en Rust en priorité, ces outils étant actuellement réalisés en Go, ainsi que le processus en arrière-plan pour la collecte de métriques, écrit en OCaml.

La nécessité de retravailler les outils pour invités Linux (xe-guest-utilities) découle de problèmes de qualité du code et du développement en dehors du projet Xen Project sous le contrôle de Cloud Software Group, ce qui complique la création de paquets et l'influence de la communauté sur le développement. Une nouvelle version de l'outil (xen-guest-agent) est prévue pour être créée entièrement à partir de zéro, en la simplifiant autant que possible et en séparant la logique de l'agent des bibliothèques. Le processus en arrière-plan pour la collecte de métriques (rrdd) sera également retravaillé, car il est compact et isolé, ce qui facilite la conduite d'expérimentations sur l'utilisation d'un nouveau langage dans le développement.

L'année prochaine, le développement d'un composant xenopsd-ng en Rust pourrait commencer, permettant d'optimiser l'architecture de la pile logicielle. L'idée principale est de centraliser dans un seul composant le travail avec l'API de bas niveau et d'organiser la fourniture de toutes les API de haut niveau aux autres composants de la pile.

Architecture actuelle de la pile Xen :

Initiative de révision des outils pour l'hyperviseur Xen en Rust

Architecture proposée de la pile Xen basée sur xenopsd-ng :

Initiative de révision des outils pour l'hyperviseur Xen en Rust


Source : opennet.ru
Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster