Algatus Xeni hüpervisori tööriistakomplekti ümbertöötamiseks Rustis

Xeni projekti tiiva all välja töötatud XCP-ng platvormi arendajad on avaldanud plaani luua Xeni tarkvarapinu erinevatele komponentidele Rust keeles asendus. Xeni hüpervisorit ennast ei ole plaanis ümber töötada, töö keskendub peamiselt tööriistakomplekti üksikute komponentide ümbertöötlemisele.

Platvorm kasutab praegu C, Pythoni, OCamli ja Go komponente, millest mõned on aegunud ja tekitavad hooldusprobleeme. Märgitakse, et Rusti kasutamine ei too kaasa kaasatud keelte arvu üldist suurenemist, kuna Go-s on rakendatud ainult üks komponent, mis plaanitakse esmalt välja vahetada.

Rooste valiti keeleks, mis ühendab suure jõudlusega koodi mäluohutu võimalustega, ei vaja prügikoristajat, sobib nii madala taseme kui ka kõrgetasemeliste komponentide arendamiseks ning pakub lisavõimalusi võimalike vigade vähendamiseks, nt. laenata kontrollija. ). Samuti on rooste laialdasemalt levinud kui praegu XAPI-s kasutatav OCaml keel, mis teeb uute arendajate projekti meelitamise lihtsamaks.

Esimeses etapis töötatakse välja mitme komponendi asendused, et testida protsesse ja valmistada ette alus tarkvarapinu muude osade asendamiseks. Eelkõige kirjutatakse Rustis ümber eelkõige Linuxi külalistööriistad, mille jaoks praegu on kasutusel Go keel, ja OCamlis kirjutatud mõõdikute kogumise taustprotsess.

Linuxi külalistööriistade (xe-guest-utilities) ümbertöötamise vajaduse põhjustavad probleemid koodikvaliteedi ja arendusega väljaspool Cloud Software Groupi kontrolli all olevat Xeni projekti, mis muudab pakettide pakendamise ja kogukonna mõjutamise arendusele keeruliseks. Nad kavatsevad luua tööriistakomplekti uue versiooni (xen-guest-agent) täiesti nullist, muutes selle võimalikult lihtsaks ja eraldades agendiloogika teegidest. Mõõdikute kogumise taustprotsess (rrdd) otsustati ümber töötada, kuna see on kompaktne ja eraldiseisev, mis lihtsustab uue keele kasutamise katseid arenduse ajal.

Järgmisel aastal võib Rustis alata töö xenopsd-ng komponendi arendusega, mis optimeerib tarkvarapinu arhitektuuri. Põhiidee on koondada töö madala taseme API-dega ühte komponenti ja korraldada selle kaudu kõigi kõrgetasemeliste API-de pakkumine teistele virna komponentidele.

Praegune Xeni virna arhitektuur:

Algatus Xeni hüpervisori tööriistakomplekti ümbertöötamiseks Rustis

Pakutud Xen-virna arhitektuur, mis põhineb xenopsd-ng-l:

Algatus Xeni hüpervisori tööriistakomplekti ümbertöötamiseks Rustis


Allikas: opennet.ru

Lisa kommentaar