Initiative de refonte de la boîte à outils de l'hyperviseur Xen dans Rust

Les développeurs de la plate-forme XCP-ng, développée dans le cadre du projet Xen, ont publié un plan visant à créer un remplacement pour divers composants de la pile logicielle Xen dans le langage Rust. Il n'est pas prévu de retravailler l'hyperviseur Xen lui-même, les travaux se concentrent principalement sur la refonte des composants individuels de la boîte à outils.

La plateforme utilise actuellement des composants C, Python, OCaml et Go, dont certains sont obsolètes et posent des problèmes de maintenance. Il est à noter que l'utilisation de Rust n'entraînera pas une augmentation globale du nombre de langages impliqués, puisqu'un seul composant est implémenté dans Go, qui devrait être remplacé en premier.

Rust a été choisi car il combine un code haute performance avec des capacités de sécurité de la mémoire, ne nécessite pas de ramasse-miettes, convient au développement de composants de bas niveau et de haut niveau et fournit des fonctionnalités supplémentaires pour réduire les erreurs potentielles, telles qu'un emprunter un vérificateur. ). Rust est également plus répandu que le langage OCaml actuellement utilisé dans XAPI, ce qui permettra d'attirer plus facilement de nouveaux développeurs vers le projet.

La première phase consistera à développer des remplacements pour plusieurs composants afin de tester les processus et de préparer la base du remplacement d'autres parties de la pile logicielle. En particulier, tout d'abord, les outils invités Linux, pour lesquels le langage Go est actuellement utilisé, et le processus d'arrière-plan de collecte de métriques, écrit en OCaml, seront réécrits en Rust.

La nécessité de retravailler les outils invités Linux (xe-guest-utilities) est causée par des problèmes de qualité du code et de développement en dehors du projet Xen sous le contrôle du Cloud Software Group, ce qui rend difficile le packaging des packages et l'influence de la communauté sur le développement. Ils prévoient de créer une nouvelle version de la boîte à outils (xen-guest-agent) entièrement à partir de zéro, en la rendant aussi simple que possible et en séparant la logique de l'agent des bibliothèques. Il a été décidé de retravailler le processus de collecte de métriques en arrière-plan (rrdd) car il est compact et séparé, ce qui simplifie les expériences d'utilisation d'un nouveau langage pendant le développement.

L'année prochaine, les travaux pourraient commencer sur le développement du composant xenopsd-ng dans Rust, qui optimisera l'architecture de la pile logicielle. L'idée principale est de concentrer le travail avec les API de bas niveau dans un seul composant et d'organiser la fourniture de toutes les API de haut niveau aux autres composants de la pile via celui-ci.

Architecture actuelle de la pile Xen :

Initiative de refonte de la boîte à outils de l'hyperviseur Xen dans Rust

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

Initiative de refonte de la boîte à outils de l'hyperviseur Xen dans Rust


Source: opennet.ru

Ajouter un commentaire