undefined oznámili vývojári projektu XCP-NG Nedávno pracujú na novom projekte, ktorý má názov "PV-IOMMU" a to umožňuje hosťovským systémom prístup k obmedzeným funkciám IOMMU implementovaným prostredníctvom paravirtualizácie v prostredí Xen.
V podstate PV-IOMMU sľubuje, že umožní Dom0 používať paravirtualizovanú IOMMU, ktorý ponúka niekoľko výhod, ako je DMA ochrana pre Dom0 a podpora pre Linux VFIO.
čo je IOMMU?
IOMMU známy pod rôznymi názvami v závislosti od výrobcu (okrem iného VT-d v Intel, AMD-Vi v AMD, SMMU v ARM), Ide o špeciálne implementované zariadenie ktorého hlavnou funkciou je prekladať alebo filtrovať požiadavky DMA (Priamy prístup do pamäte) zo zariadení do fyzickej pamäte zariadenia. Vo virtualizácii sa používa na umožnenie hosťujúcim systémom priamy prístup k periférnym zariadeniam, ako sú ethernetové adaptéry, grafické karty a radiče úložiska.
Aké výhody prináša paravirualizácia IOMMU?
predtým, hypervízor Xen použil IOMMU na presmerovanie prístupu zariadení PCI a riadiť prístup týchto zariadení do pamäte. však Z dôvodov stability a bezpečnosti nemali hostia priamy prístup do bloku IOMMU poskytované hardvérom.
Predstavujeme novú paravirtualizovanú IOMMU jednoducho nazvanú PV-IOMMU. V podstate implementuje funkcie, ktoré hosť očakáva od IOMMU, pričom abstrahuje všetky interné detaily hardvéru. V Xene sme pridali nový hypercall pre takéto operácie (čo je HYPERVISOR_iommu_op), ktorý poskytuje rôzne IOMMU operácie, ktoré môže hosť použiť (ak je to povolené).
Napriek tomu bolo možné ponúknuť rozhranie pre hosťa aby sme vám umožnili prístup k IOMMU, pomocou zjednodušenej Xen paravirtualizovanej infraštruktúrya zároveň skryje detaily hardvéru nízkej úrovne. Toto rozhranie, nazývané PV-IOMMU, abstrahuje všetky interné detaily hardvéru a poskytuje súbor operácií IOMMU, ku ktorým má hosť prístup, ak je to povolené. Operácie v PV-IOMMU sú vystavené ako podoperácie v hypervolaní HYPERVISOR_iommu_op a sú navrhnuté spôsobom, ktorý je pre hosťa pohodlný.
Jednou z hlavných funkcií, ktoré hostiteľ očakáva od IOMMU, je schopnosť vytvárať a upravovať „domény IOMMU“, čo je súbor prekladov, ktoré vytvárajú pamäťový kontext a ktoré možno použiť na zariadenie (alebo viacero zariadení). Tieto domény sa v Xene nazývajú „IOMMU Contexts“, aby sa predišlo zámene s doménami Xen, ktoré sú virtuálnymi strojmi.
Medzi rôznymi výhodami, ktoré vynikajú paravirtualizáciou IOMMU, sú uvedené tieto:
- Ochrana DMA pre Dom0: Paravirtualizácia IOMMU umožňuje ochranu priameho prístupu do pamäte (DMA) pre doménu správy (Dom0) vo virtualizačných prostrediach. Pomáha to zlepšiť bezpečnosť a stabilitu systému tým, že bráni zariadeniam v priamom prístupe k systémovej pamäti, čo by mohlo ohroziť integritu Dom0.
- Podpora Linux VFIO: Paravirtualizácia IOMMU uľahčuje podporu virtualizovanej flexibilnej I/O infraštruktúry pre používateľské zariadenia (VFIO) vo virtualizačných prostrediach, čo umožňuje užívateľským aplikáciám a virtuálnym strojom priamy prístup k hardvérovým zariadeniam.
- Uľahčuje implementáciu SPDK pomocou Xen: Paravirtualizácia IOMMU je tiež súčasťou pokračujúceho úsilia o podporu SPDK pomocou Xen. To otvára dvere novej rýchlej dátovej ceste pre ukladanie virtuálnych strojov, čo môže potenciálne zvýšiť výkon úložiska vo virtualizovaných prostrediach.
Okrem toho tiež jeden z problémov Xenu sa plánuje riešiť s IOMMU, pretože v súčasnostialebo umožňuje existenciu viacerých kontextov IOMMU v jednej doméne Xen. Uvažuje sa však o prepracovaní subsystému Xen IOMMU, aby sa zohľadnili viaceré kontexty IOMMU a aby sa upravili existujúce funkcie, aby ich bolo možné využívať. Aj keď bol implementovaný funkčný PoC, ktorý implementuje prvý prístup, s určitými obmedzeniami a neúplnou podporou, spomína sa, že do budúcnosti sa pracuje na kompletnom redizajne subsystému.
Na záver treba spomenúť V súčasnej fáze vývoja PV-IOMMU podporuje iba Intel VT-d, ale čoskoro sa plánuje pridanie podpory pre AMD-Vi a SMMUv3. Ak máte záujem dozvedieť sa o ňom viac, podrobnosti si môžete prečítať v nasledujúci odkaz.