PV-IOMMU, Xen IOMMU paravirtualizacijos mechanizmas

Xen logotipas

Los paskelbė XCP-NG projekto kūrėjai Neseniai jie dirba prie naujo projekto, kuris turi pavadinimą „PV-IOMMU“ ir tai leidžia svečių sistemoms pasiekti ribotas IOMMU funkcijas, įdiegtas per paravirtualizaciją Xen aplinkoje.

Iš esmės, PV-IOMMU žada leisti Dom0 naudoti paravirtualizuotą IOMMU, kuri siūlo keletą privalumų, pavyzdžiui, DMA apsaugą Dom0 ir Linux VFIO palaikymą.

Kas yra IOMMU?

IOMMU žinomas skirtingais pavadinimais, priklausomai nuo gamintojo (VT-d Intel, AMD-Vi AMD, SMMU ARM ir kt.), Tai įdiegtas specialus įrenginys kurios pagrindinė funkcija yra versti arba filtruoti DMA užklausas (tiesioginė prieiga prie atminties) iš įrenginių į fizinę įrenginio atmintį. Virtualizacijoje jis naudojamas, kad svečių sistemos galėtų tiesiogiai pasiekti išorinius įrenginius, tokius kaip Ethernet adapteriai, vaizdo plokštės ir saugojimo valdikliai.

Kokia nauda gaunama naudojant IOMMU paravirusalizaciją?

anksčiau, Xen hipervizorius naudojo IOMMU prieigai peradresuoti PCI įrenginių ir valdyti šių įrenginių prieigą prie atminties. Tačiau Dėl stabilumo ir saugumo sumetimais svečiai negalėjo tiesiogiai patekti į IOMMU bloką teikia aparatinė įranga.

Pristatome naują paravirtualizuotą IOMMU, tiesiog vadinamą PV-IOMMU. Jis iš esmės įgyvendina funkcijas, kurių svečias tikisi iš IOMMU, abstrahuodamas visas vidines aparatinės įrangos detales. „Xen“ pridėjome naują hiperskambutį tokioms operacijoms (tai yra HYPERVISOR_iommu_op), suteikiantį įvairias IOMMU operacijas, kurias svečias gali naudoti (jei leidžiama).

Nepaisant to, buvo galima svečiui pasiūlyti sąsają kad galėtumėte pasiekti IOMMU, naudojant supaprastintą Xen paravirtualizuotą infrastruktūrą, slepiant žemo lygio aparatūros detales. Ši sąsaja, vadinama PV-IOMMU, ištraukia visą vidinę aparatinės įrangos informaciją ir pateikia IOMMU operacijų rinkinį, kurį svečias gali pasiekti, jei leidžiama. PV-IOMMU operacijos pateikiamos kaip antrinės operacijos HYPERVISOR_iommu_op hiperskambutyje ir yra sukurtos svečiui patogiu būdu.

Viena iš pagrindinių funkcijų, kurių pagrindinis kompiuteris tikisi iš IOMMU, yra galimybė kurti ir modifikuoti „IOMMU domenus“, kurie yra vertimų rinkinys, sukuriantis atminties kontekstą ir kurį galima pritaikyti įrenginiui (arba keliems įrenginiams). Šie domenai Xen vadinami „IOMMU kontekstais“, kad būtų išvengta painiavos su Xen domenais, kurie yra virtualios mašinos.

Tarp skirtingų IOMMU paravirtualizacijos pranašumų paminėti šie:

  • DMA apsauga Dom0: IOMMU paravirtualizacija įgalina tiesioginės atminties prieigos (DMA) apsaugą valdymo domenui (Dom0) virtualizacijos aplinkose. Tai padeda pagerinti sistemos saugumą ir stabilumą, nes neleidžia įrenginiams tiesiogiai pasiekti sistemos atminties, o tai gali pakenkti Dom0 vientisumui.
  • Linux VFIO palaikymas: IOMMU paravirtualizacija palengvina virtualizuotos lanksčios vartotojo įrenginių (VFIO) įvesties / išvesties infrastruktūros palaikymą virtualizacijos aplinkose, leidžiant vartotojo programoms ir virtualioms mašinoms tiesiogiai pasiekti aparatūros įrenginius.
  • Palengvina SPDK įdiegimą naudojant „Xen“: IOMMU paravirtualizacija taip pat yra nuolatinių pastangų palaikyti SPDK su Xen dalis. Tai atveria duris naujam greitam duomenų keliui virtualioje mašinoje saugoti, o tai gali padidinti saugojimo našumą virtualioje aplinkoje.

Be to, taip pat vieną iš Xen problemų planuojama išspręsti su IOMMU, nuo šiuo metuarba leidžia egzistuoti keli IOMMU kontekstai viename Xen domene. Tačiau svarstoma, kad Xen IOMMU posistemio dizainas būtų pertvarkytas, kad būtų atsižvelgta į kelis IOMMU kontekstus ir būtų galima modifikuoti esamas funkcijas, kad jomis būtų galima pasinaudoti. Nors buvo įdiegtas funkcionalus PoC, įgyvendinantis pirmąjį metodą, su tam tikrais apribojimais ir nepilnu palaikymu, tačiau minima, kad ateičiai dirbama su visišku posistemio pertvarkymu.

Galiausiai reikėtų paminėti tai Dabartiniame kūrimo etape PV-IOMMU palaiko tik Intel VT-d, tačiau netrukus planuojama pridėti AMD-Vi ir SMMUv3 palaikymą. Jei norite sužinoti daugiau apie tai, galite peržiūrėti išsamią informaciją sekanti nuoroda.