osa teatasid XCP-NG projekti arendajad Hiljuti töötavad nad uue projekti kallal, millel on nimi "PV-IOMMU" ja see võimaldab külalissüsteemidel juurdepääsu IOMMU piiratud funktsioonidele, mida rakendatakse Xeni keskkonnas paravirtualiseerimise kaudu.
Põhimõtteliselt PV-IOMMU lubab lubada Dom0-l kasutada paravirtualiseeritud IOMMU-d, mis pakub mitmeid eeliseid, nagu DMA kaitse Dom0 jaoks ja tugi Linux VFIO jaoks.
Mis on IOMMU?
Olenevalt tootjast tuntakse IOMMU-d erinevate nimetustega (VT-d Intelis, AMD-Vi AMD-s, SMMU ARM-is jne), See on rakendatud spetsiaalne seade mille põhifunktsioon on tõlkida või filtreerida DMA taotlusi (Otsemälu juurdepääs) seadmetest seadme füüsilisse mällu. Virtualiseerimisel kasutatakse seda selleks, et võimaldada külalissüsteemidel otse juurdepääs välisseadmetele, nagu Etherneti adapterid, graafikakaardid ja salvestuskontrollerid.
Milliseid eeliseid annab IOMMU paravirualiseerimine?
varem Xeni hüperviisor kasutas juurdepääsu ümbersuunamiseks IOMMU-d PCI-seadmetest ja juhtida nende seadmete juurdepääsu mälule. Kuid, Stabiilsuse ja turvalisuse huvides ei pääse külalised otse IOMMU plokki mida pakub riistvara.
Esitleme uut paravirtualiseeritud IOMMU-d, mida nimetatakse lihtsalt PV-IOMMU-ks. Põhimõtteliselt rakendab see funktsioone, mida külaline IOMMU-lt ootab, võttes abstraheerides kõik riistvara sisemised üksikasjad. Xenis lisasime selliste toimingute jaoks uue hüperkutse (mis on HYPERVISOR_iommu_op), mis pakub erinevaid IOMMU toiminguid, mida külaline saab kasutada (kui see on lubatud).
Vaatamata sellele on olnud võimalik pakkuda külalisele liidest et võimaldada teil juurdepääsu IOMMU-le, kasutades lihtsustatud Xeni paravirtualiseeritud infrastruktuuri, varjates samal ajal madala taseme riistvara üksikasju. See liides, mida nimetatakse PV-IOMMU-ks, võtab kokku kõik riistvara sisemised üksikasjad ja pakub komplekti IOMMU toiminguid, millele külaline pääseb juurde, kui see on lubatud. PV-IOMMU toimingud kuvatakse alamtoimingutena hüperkõnes HYPERVISOR_iommu_op ja need on kujundatud külalisele sobival viisil.
Üks peamisi funktsioone, mida host IOMMU-lt ootab, on võimalus luua ja muuta "IOMMU domeene", mis on tõlgete kogum, mis loob mälu konteksti ja mida saab rakendada seadmele (või mitmele seadmele). Neid domeene nimetatakse Xenis "IOMMU kontekstideks", et vältida segiajamist Xeni domeenidega, mis on virtuaalsed masinad.
Erinevate IOMMU paravirtualiseerimise eeliste hulgas mainitakse järgmist:
- DMA kaitse Dom0 jaoks: IOMMU paravirtualiseerimine võimaldab virtualiseerimiskeskkondades haldusdomeeni (Dom0) kaitset otsemälu juurdepääsuga (DMA). See aitab parandada süsteemi turvalisust ja stabiilsust, takistades seadmetel otsest juurdepääsu süsteemimälule, mis võib kahjustada Dom0 terviklikkust.
- Linuxi VFIO tugi: IOMMU paravirtualiseerimine hõlbustab virtualiseerimiskeskkondades kasutajaseadmete (VFIO) virtualiseeritud paindliku I/O infrastruktuuri toetamist, võimaldades kasutajarakendustel ja virtuaalmasinatel otse riistvaraseadmetele juurde pääseda.
- Muudab Xeniga SPDK juurutamise lihtsaks: IOMMU paravirtualiseerimine on samuti osa jätkuvatest jõupingutustest toetada SPDK-d Xeniga. See avab ukse uuele kiirele andmeteele virtuaalmasina salvestamiseks, mis võib potentsiaalselt suurendada salvestusruumi jõudlust virtualiseeritud keskkondades.
Lisaks sellele ka üks Xeni probleeme on plaanis lahendada IOMMUga, kuna praeguvõi võimaldab mitme IOMMU konteksti olemasolu ühes Xeni domeenis. Siiski kaalutakse Xen IOMMU alamsüsteemi ümberkujundamist, et võtta arvesse mitut IOMMU konteksti ja muuta olemasolevaid funktsioone nende kasutamiseks. Kuigi funktsionaalne PoC, mis rakendab esimest lähenemist, on teatud piirangute ja puuduliku toega rakendatud, mainitakse, et tuleviku jaoks töötatakse alamsüsteemi täieliku ümberkujundamise kallal.
Lõpuks tuleb mainida, et Praeguses arendusfaasis toetab PV-IOMMU ainult Intel VT-d, kuid AMD-Vi ja SMMUv3 tugi on plaanis peagi lisada. Kui olete huvitatud selle kohta rohkem teada saama, vaadake üksikasju jaotisest järgmine link.