P napovedali razvijalci projekta XCP-NG Pred kratkim delajo na novem projektu, ki ima ime «PV-IOMMU» in to omogoča gostujočim sistemom dostop do omejenih funkcij IOMMU, implementiranih s paravirtualizacijo v okolju Xen.
V bistvu PV-IOMMU obljublja, da bo Dom0 omogočil uporabo paravirtualiziranega IOMMU, ki ponuja več prednosti, kot sta zaščita DMA za Dom0 in podpora za Linux VFIO.
Kaj je IOMMU?
IOMMU znan pod različnimi imeni, odvisno od proizvajalca (med drugim VT-d pri Intelu, AMD-Vi pri AMD, SMMU pri ARM), To je vgrajena posebna naprava katerih glavna funkcija je prevesti ali filtrirati zahteve DMA (Neposredni dostop do pomnilnika) iz naprav v fizični pomnilnik stroja. Pri virtualizaciji se uporablja za omogočanje gostujočemu sistemu neposrednega dostopa do perifernih naprav, kot so adapterji Ethernet, grafične kartice in krmilniki za shranjevanje.
Kakšne koristi ima paravirualizacija IOMMU?
Prej hipervizor Xen je uporabil IOMMU za preusmeritev dostopa naprav PCI in nadzirate dostop teh naprav do pomnilnika. vendar Zaradi stabilnosti in varnosti gostje niso mogli neposredno dostopati do bloka IOMMU ki jih zagotavlja strojna oprema.
Predstavljamo nov paravirtualiziran IOMMU, preprosto imenovan PV-IOMMU. V bistvu izvaja funkcije, ki jih gost pričakuje od IOMMU, pri čemer abstrahira vse notranje podrobnosti strojne opreme. V Xen smo dodali nov hiperklic za takšne operacije (ki je HYPERVISOR_iommu_op), ki zagotavlja različne operacije IOMMU, ki jih lahko uporabi gost (če je dovoljeno).
Kljub temu gostu je bilo mogoče ponuditi vmesnik da vam omogočimo dostop do IOMMU, z uporabo poenostavljene paravirtualizirane infrastrukture Xen, medtem ko skrije podrobnosti strojne opreme na nizki ravni. Ta vmesnik, imenovan PV-IOMMU, abstrahira vse notranje podrobnosti strojne opreme in zagotavlja niz operacij IOMMU, do katerih lahko dostopa gost, če je dovoljeno. Operacije v PV-IOMMU so izpostavljene kot podoperacije v hiperklicu HYPERVISOR_iommu_op in so oblikovane na način, ki je primeren za gosta.
Ena od glavnih lastnosti, ki jih gostitelj pričakuje od IOMMU, je zmožnost ustvarjanja in spreminjanja »IOMMU domen«, ki je nabor prevodov, ki tvorijo pomnilniški kontekst in jih je mogoče uporabiti za napravo (ali več naprav). Te domene se v Xenu imenujejo »konteksti IOMMU«, da bi se izognili zamenjavi z domenami Xen, ki so virtualni stroji.
Med različnimi prednostmi, ki izstopajo zaradi paravirtualizacije IOMMU, so omenjene naslednje:
- Zaščita DMA za Dom0: Paravirtualizacija IOMMU omogoča zaščito neposrednega dostopa do pomnilnika (DMA) za domeno upravljanja (Dom0) v virtualizacijskih okoljih. To pomaga izboljšati varnost in stabilnost sistema, saj napravam preprečuje neposreden dostop do sistemskega pomnilnika, kar bi lahko ogrozilo celovitost Dom0.
- Podpora za Linux VFIO: Paravirtualizacija IOMMU olajša podporo za virtualizirano prilagodljivo V/I infrastrukturo za uporabniške naprave (VFIO) v virtualizacijskih okoljih, kar uporabniškim aplikacijam in virtualnim strojem omogoča neposreden dostop do naprav strojne opreme.
- Omogoča enostavno implementacijo SPDK z Xen: Paravirtualizacija IOMMU je tudi del stalnih prizadevanj za podporo SPDK z Xen. To odpira vrata novi hitri podatkovni poti za shranjevanje virtualnih strojev, kar lahko potencialno poveča zmogljivost shranjevanja v virtualiziranih okoljih.
Poleg tega tudi enega od Xenovih problemov namerava rešiti IOMMU, saj trenutnoali omogoča obstoj več kontekstov IOMMU v eni domeni Xen. Vendar pa se razmišlja o preoblikovanju podsistema Xen IOMMU, da bi upoštevali več kontekstov IOMMU in spremenili obstoječe funkcije, da bi jih lahko uporabili. Čeprav je bil implementiran funkcionalni PoC, ki izvaja prvi pristop, z določenimi omejitvami in nepopolno podporo, je omenjeno, da se v prihodnosti pripravlja popolna prenova podsistema.
Na koncu je treba omeniti še to V trenutni fazi razvoja PV-IOMMU podpira samo Intel VT-d, vendar se načrtuje, da bo kmalu dodana podpora za AMD-Vi in SMMUv3. Če vas zanima več o tem, si lahko ogledate podrobnosti v naslednja povezava.