Xen hüperviisori tööriistade ümberkujundamise algatus Rust keeles

XCP-ng platvormi arendajad, kes tegutsevad Xen projekti raames, avaldasid plaani luua Rustis asendusi erinevatele Xen tarkvara komponentidele. Hetkel ei plaanita hyperviisorit Xen uuesti teha, vaid töö keskendub peamiselt üksikute tööriistade komponentide ümbertegemisele.

Praegu kasutab platvorm komponente keeltes C, Python, OCaml ja Go, millest mõned on vananenud ja loomulikult põhjustavad hooldamisega seotud probleeme. Toodud on välja, et Rusti kasutamine ei suurenda kõigi keelte arvu, kuna Go-s on teostatud vaid üks komponent, mida kavatsetakse kõigepealt asendada.

Rust on valitud, kuna see ühendab kõrge sooritusvõime koostoodanguga koos mälu turvalise haldamise võimalustega, mis ei vaja prügikoristajat. Samuti sobib see nii madala kui ka kõrge taseme komponentide arendamiseks ning pakub täiendavaid võimalusi, et vähendada võimalikke vigu, nagu näiteks muutuja laenamise kontroll (borrow checker). Rust on ka laiemalt levinud kui XAPI praegu kasutatav OCaml, mis lihtsustab uute arendajate kaasamist projektis.

Esimeses etapis kavatsetakse arendada asendust mitmele komponendile, et töötada välja protsessid ja valmistada baasi teiste tarkvara osa asendamiseks. Eelkõige kirjutatakse esmajärjekorras Rustis ümber Linux guest tools tööriistad, mille jaoks praegu kasutatakse Go keelt, ning taustaprotsess, mis kogub mõõdikuid ja on kirjutatud OCaml-is.

Linux guest tools (xe-guest-utilities) ümbertegemise vajadus tuleneb koodikvaliteedi probleemidest ja arengust, mis toimub väljaspool Xen Projecti Cloud Software Groupi kontrolli all, mis raskendab pakettide loomist ning mõjutab kogukonna osalemist arendustöös. Uue tööriistade variandi (xen-guest-agent) plaanitakse luua täiesti nullist, muutes selle võimalikult lihtsaks ning eraldades agendi loogika raamatukogudest. Taustaprotsessi, mis kogub mõõdikuid (rrdd), otsustati ümber teha, kuna see on kompaktne ja isoleeritud, mis lihtsustab katseid uue keele kasutamise osas arenduses.

Järgmisel aastal võib alata Rustis xenopsd-ng komponendi arendamine, mis optimeerib tarkvara arhiitehtuuri. Peamine idee on keskendada alamosade madala taseme API-d ühte komponenti ja korraldada kõrge taseme API jagamine ülejäänud jõudluse komponentide vahel.

Xeni praegune arhiitehtuuri struktuur:

Xen hüperviisori tööriistade ümberkujundamise algatus Rust keeles

Pakutud Xen arhiitehtuuri struktuur, mis põhineb xenopsd-ng-l:

Xen hüperviisori tööriistade ümberkujundamise algatus Rust keeles


Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster