Iniciativa přepracovat Xen hypervisor toolkit v Rust

Vývojáři platformy XCP-ng, vyvíjené pod křídly projektu Xen, zveřejnili plán na vytvoření náhrady za různé součásti softwarového stacku Xen v jazyce Rust. Přepracování samotného hypervizoru Xen se neplánuje, práce se soustředí především na přepracování jednotlivých komponent toolkitu.

Platforma v současné době používá komponenty C, Python, OCaml a Go, z nichž některé jsou zastaralé a představují problémy s údržbou. Je třeba poznamenat, že použití Rustu nepovede k celkovému nárůstu počtu zapojených jazyků, protože v Go je implementována pouze jedna komponenta, jejíž výměna je plánována jako první.

Rust byl vybrán jako jazyk, který kombinuje vysoce výkonný kód s paměťově bezpečnými schopnostmi, nevyžaduje garbage collector, je vhodný pro vývoj nízkoúrovňových i vysokoúrovňových komponent a poskytuje další funkce pro snížení potenciálních chyb, jako je např. půjčka checker. ). Rust je také rozšířenější než jazyk OCaml aktuálně používaný v XAPI, což usnadní přilákání nových vývojářů do projektu.

První fází bude vývoj náhrad několika komponent pro testování procesů a příprava základu pro výměnu dalších částí softwarového stacku. Především budou v Rustu přepsány linuxové hostující nástroje, pro které se v současnosti používá jazyk Go, a proces na pozadí pro sběr metrik napsaný v OCaml.

Potřeba přepracovat linuxové hostující nástroje (xe-guest-utilities) je způsobena problémy s kvalitou kódu a vývojem mimo projekt Xen pod kontrolou Cloud Software Group, což ztěžuje balení balíčků a vliv komunity na vývoj. Plánují vytvořit novou verzi sady nástrojů (xen-guest-agent) úplně od začátku, aby byla co nejjednodušší a oddělila logiku agenta od knihoven. Bylo rozhodnuto přepracovat proces na pozadí pro sběr metrik (rrdd), protože je kompaktní a samostatný, což zjednodušuje experimenty s používáním nového jazyka během vývoje.

Příští rok mohou začít práce na vývoji komponenty xenopsd-ng v Rustu, která optimalizuje architekturu softwarového stacku. Hlavní myšlenkou je soustředit práci s nízkoúrovňovými API do jedné komponenty a přes ni organizovat poskytování všech vysokoúrovňových API ostatním komponentám zásobníku.

Aktuální architektura Xen stacku:

Iniciativa přepracovat Xen hypervisor toolkit v Rust

Navrhovaná architektura zásobníku Xen založená na xenopsd-ng:

Iniciativa přepracovat Xen hypervisor toolkit v Rust


Zdroj: opennet.ru

Přidat komentář