Initiatief om de Xen-hypervisortoolkit in Rust te herwerken

De ontwikkelaars van het XCP-ng-platform, ontwikkeld onder de vleugels van het Xen-project, hebben een plan gepubliceerd om een ​​vervanger te creëren voor verschillende componenten van de Xen-softwarestack in de Rust-taal. Er zijn geen plannen om de Xen-hypervisor zelf te herwerken; het werk is vooral gericht op het herwerken van individuele componenten van de toolkit.

Het platform maakt momenteel gebruik van C-, Python-, OCaml- en Go-componenten, waarvan sommige verouderd zijn en onderhoudsproblemen met zich meebrengen. Opgemerkt wordt dat het gebruik van Rust niet zal leiden tot een algehele toename van het aantal betrokken talen, aangezien er in Go slechts één component is geïmplementeerd, die naar verwachting als eerste zal worden vervangen.

Rust werd gekozen als een taal die code met hoge prestaties combineert met geheugenveilige mogelijkheden, geen garbage collector vereist, geschikt is voor het ontwikkelen van componenten op zowel laag als hoog niveau, en extra functies biedt om potentiële fouten te verminderen, zoals een leenchecker.). Rust is ook wijdverspreider dan de OCaml-taal die momenteel in XAPI wordt gebruikt, wat het gemakkelijker zal maken om nieuwe ontwikkelaars voor het project aan te trekken.

De eerste fase zal bestaan ​​uit het ontwikkelen van vervangingen voor verschillende componenten om processen te testen en de basis voor te bereiden voor vervanging van andere delen van de softwarestack. In het bijzonder zullen allereerst de Linux-gasttools, waarvoor momenteel de Go-taal wordt gebruikt, en het achtergrondproces voor het verzamelen van statistieken, geschreven in OCaml, herschreven worden in Rust.

De noodzaak om Linux-gasttools (xe-guest-utilities) te herwerken wordt veroorzaakt door problemen met codekwaliteit en ontwikkeling buiten het Xen Project onder de controle van de Cloud Software Group, wat het moeilijk maakt om pakketten te verpakken en de invloed van de gemeenschap op de ontwikkeling. Ze zijn van plan om een ​​nieuwe versie van de toolkit (xen-guest-agent) helemaal opnieuw te maken, waardoor deze zo eenvoudig mogelijk wordt en de agentlogica wordt gescheiden van de bibliotheken. Er werd besloten om het achtergrondproces voor het verzamelen van statistieken (rrdd) te herwerken, omdat het compact en afzonderlijk is, wat experimenten met het gebruik van een nieuwe taal tijdens de ontwikkeling vereenvoudigt.

Volgend jaar kan er begonnen worden met de ontwikkeling van de xenopsd-ng-component in Rust, die de architectuur van de softwarestack zal optimaliseren. Het belangrijkste idee is om het werk met API's op laag niveau in één component te concentreren en de levering van alle API's op hoog niveau aan andere componenten van de stapel daardoorheen te organiseren.

Huidige Xen-stackarchitectuur:

Initiatief om de Xen-hypervisortoolkit in Rust te herwerken

Voorgestelde Xen-stackarchitectuur gebaseerd op xenopsd-ng:

Initiatief om de Xen-hypervisortoolkit in Rust te herwerken


Bron: opennet.ru

Voeg een reactie