The najavili su developeri projekta XCP-NG Nedavno rade na novom projektu koji ima ime «PV-IOMMU» i to omogućuje gostujućim sustavima pristup ograničenim funkcijama IOMMU-a implementiranih kroz paravirtualizaciju u Xen okruženju.
Uglavnom, PV-IOMMU obećava da će Dom0 omogućiti korištenje paravirtualiziranog IOMMU-a, koji nudi nekoliko prednosti kao što su DMA zaštita za Dom0 i podrška za Linux VFIO.
Što je IOMMU?
IOMMU poznat pod različitim imenima ovisno o proizvođaču (VT-d u Intelu, AMD-Vi u AMD-u, SMMU u ARM-u, između ostalih), To je implementiran poseban uređaj čija je glavna funkcija prevesti ili filtrirati DMA zahtjeve (izravan pristup memoriji) s uređaja na fizičku memoriju stroja. U virtualizaciji se koristi kako bi se sustavima za goste omogućio izravan pristup perifernim uređajima kao što su Ethernet adapteri, grafičke kartice i kontroleri za pohranu.
Koje se prednosti postižu IOMMU paraviralizacijom?
ranije, hipervizor Xen koristio je IOMMU za preusmjeravanje pristupa PCI uređaja i kontrolirati pristup tih uređaja memoriji. Međutim, Zbog stabilnosti i sigurnosnih razloga, gosti nisu mogli izravno pristupiti IOMMU bloku koje pruža hardver.
Predstavljamo novi paravirtualizirani IOMMU jednostavno nazvan PV-IOMMU. U osnovi implementira značajke koje gost očekuje od IOMMU-a, apstrahirajući sve unutarnje detalje hardvera. U Xen smo dodali novi hiperpoziv za takve operacije (koji je HYPERVISOR_iommu_op) koji pruža razne IOMMU operacije koje gost može koristiti (ako je dopušteno).
Unatoč tome, bilo je moguće ponuditi sučelje gostu kako bismo vam omogućili pristup IOMMU-u, korištenjem pojednostavljene Xen paravirtualizirane infrastrukture, dok skriva hardverske detalje niske razine. Ovo sučelje, nazvano PV-IOMMU, apstrahira sve unutarnje detalje hardvera i pruža skup IOMMU operacija kojima gost može pristupiti, ako je dopušteno. Operacije u PV-IOMMU izložene su kao podoperacije u hiperpozivu HYPERVISOR_iommu_op i dizajnirane su na način koji je pogodan za gosta.
Jedna od glavnih značajki koju domaćin očekuje od IOMMU je mogućnost stvaranja i izmjene "IOMMU domena" što je skup prijevoda koji čine memorijski kontekst i koji se može primijeniti na uređaj (ili više uređaja). Te se domene u Xenu nazivaju "IOMMU konteksti" kako bi se izbjegla zabuna s Xen domenama koje su virtualni strojevi.
Među različitim prednostima koje se ističu od IOMMU paravirtualizacije, spominju se sljedeće:
- DMA zaštita za Dom0: IOMMU paravirtualizacija omogućuje zaštitu izravnog pristupa memoriji (DMA) za domenu upravljanja (Dom0) u virtualizacijskim okruženjima. To pomaže u poboljšanju sigurnosti i stabilnosti sustava sprječavanjem uređaja da izravno pristupaju memoriji sustava, što bi moglo ugroziti integritet Dom0.
- Linux VFIO podrška: IOMMU paravirtualizacija olakšava podršku za virtualiziranu fleksibilnu I/O infrastrukturu za korisničke uređaje (VFIO) u virtualizacijskim okruženjima, dopuštajući korisničkim aplikacijama i virtualnim strojevima izravan pristup hardverskim uređajima.
- Olakšava implementaciju SPDK-a s Xenom: IOMMU paravirtualizacija također je dio stalnih napora da se podrži SPDK s Xenom. To otvara vrata novom brzom podatkovnom putu za pohranu virtualnog stroja, što potencijalno može poboljšati performanse pohrane u virtualiziranim okruženjima.
Osim toga, također jedan od Xenovih problema planira se riješiti s IOMMU-om, jer trenutnoili dopušta postojanje više IOMMU konteksta u jednoj Xen domeni. Međutim, razmatra se redizajn Xen IOMMU podsustava kako bi se uzeli u obzir više IOMMU konteksta i modificirale postojeće značajke za njihovu upotrebu. Iako je implementiran funkcionalni PoC koji implementira prvi pristup, uz određena ograničenja i nepotpunu podršku, navodi se da se radi na kompletnom redizajnu podsustava za budućnost.
Na kraju treba spomenuti da U trenutnoj fazi razvoja, PV-IOMMU podržava samo Intel VT-d, ali planira se uskoro dodati podrška za AMD-Vi i SMMUv3. Ako ste zainteresirani saznati više o tome, pojedinosti možete pogledati u sljedeći link.