PV-IOMMU, egy Xen IOMMU paravirtualizációs mechanizmus

Xen logó

sok jelentették be az XCP-NG projekt fejlesztői Nemrég egy új projekten dolgoznak, amelynek ez a neve "PV-IOMMU" és ez lehetővé teszi a vendégrendszereknek, hogy hozzáférjenek az IOMMU korlátozott funkcióihoz, amelyeket paravirtualizációval valósítottak meg a Xen környezetben.

Alapvetően PV-IOMMU megígéri, hogy lehetővé teszi a Dom0 számára egy paravirtualizált IOMMU használatát, amely számos előnnyel rendelkezik, mint például a DMA védelme a Dom0 számára és a Linux VFIO támogatása.

Mi az IOMMU?

Az IOMMU gyártótól függően más-más néven ismert (többek között VT-d Intelben, AMD-Vi AMD-ben, SMMU ARM-ben), Ez egy speciális eszköz amelynek fő funkciója az lefordítani vagy szűrni a DMA kéréseket (Közvetlen memóriahozzáférés) az eszközökről a gép fizikai memóriájába. A virtualizáció során arra használják, hogy a vendégrendszerek közvetlenül hozzáférjenek a perifériás eszközökhöz, például Ethernet adapterekhez, grafikus kártyákhoz és tárolóvezérlőkhöz.

Milyen előnyökkel jár az IOMMU paraviralizáció?

Korábban, a Xen hypervisor az IOMMU-t használta a hozzáférés átirányítására PCI-eszközök, és szabályozza ezeknek az eszközöknek a memóriához való hozzáférését. Azonban, Stabilitási és biztonsági okokból a vendégek nem fértek hozzá közvetlenül az IOMMU blokkhoz a hardver biztosítja.

Bemutatunk egy új, paravirtualizált IOMMU-t, egyszerűen PV-IOMMU néven. Alapvetően azokat a funkciókat valósítja meg, amelyeket a vendég elvár egy IOMMU-tól, elvonatkoztatva a hardver minden belső részletét. A Xenben egy új hiperhívást adtunk hozzá az ilyen műveletekhez (ami a HYPERVISOR_iommu_op), amely különféle IOMMU-műveleteket biztosít, amelyeket a vendég használhat (ha engedélyezett).

Ennek ellenére, lehetőség nyílt a vendégnek felületet kínálni hogy hozzáférhessen az IOMMU-hoz, egyszerűsített Xen paravirtualizált infrastruktúra használatával, miközben elrejti az alacsony szintű hardverrészleteket. Ez az interfész, az úgynevezett PV-IOMMU, a hardver összes belső részletét kivonja, és IOMMU-műveleteket biztosít, amelyekhez a vendég hozzáférhet, ha engedélyezve van. A PV-IOMMU műveletei alműveletekként jelennek meg a HYPERVISOR_iommu_op hiperhívásban, és a vendég számára kényelmesen vannak megtervezve.

Az egyik fő funkció, amelyet a gazdagép elvár egy IOMMU-tól, az "IOMMU tartományok" létrehozásának és módosításának képessége, amely fordítások halmaza, amely memóriakontextust hoz létre, és amely egy eszközre (vagy több eszközre) alkalmazható. Ezeket a tartományokat a Xenben „IOMMU-kontextusoknak” nevezik, hogy elkerüljük a Xen-tartományokkal való összetévesztést, amelyek virtuális gépek.

Az IOMMU paravirtualizációból származó előnyök közül a következőket említjük:

  • DMA védelem a Dom0 számára: Az IOMMU paravirtualizáció közvetlen memória-hozzáférési (DMA) védelmet tesz lehetővé a felügyeleti tartomány (Dom0) számára virtualizációs környezetekben. Ez segít javítani a rendszer biztonságát és stabilitását azáltal, hogy megakadályozza, hogy az eszközök közvetlenül hozzáférjenek a rendszermemóriához, ami veszélyeztetheti a Dom0 integritását.
  • Linux VFIO támogatás: Az IOMMU paravirtualizálás elősegíti a virtualizált rugalmas I/O infrastruktúra támogatását felhasználói eszközökhöz (VFIO) virtualizációs környezetekben, lehetővé téve a felhasználói alkalmazások és virtuális gépek számára a hardvereszközök közvetlen elérését.
  • Megkönnyíti az SPDK megvalósítását a Xen segítségével: Az IOMMU paravirtualizálás szintén része annak a folyamatos erőfeszítésnek, amely az SPDK-t Xen-nel támogatja. Ez megnyitja az ajtót a virtuális gépek tárolására szolgáló új gyors adatút előtt, amely potenciálisan növelheti a tárolási teljesítményt virtualizált környezetekben.

Ezen kívül még Xen egyik problémáját az IOMMU-val tervezik megoldani, mivel jelenlegvagy lehetővé teszi több IOMMU kontextus létezését egyetlen Xen tartományban. A Xen IOMMU alrendszer újratervezését azonban fontolgatják, hogy figyelembe vegyen több IOMMU-környezetet, és módosítsa a meglévő funkciókat azok kihasználása érdekében. Bár az első megközelítést megvalósító funkcionális PoC bevezetésre került, bizonyos korlátokkal és hiányos támogatással, megemlítik, hogy az alrendszer teljes újratervezésén dolgoznak a jövőre nézve.

Végül meg kell említeni, hogy A fejlesztés jelenlegi szakaszában a PV-IOMMU csak az Intel VT-d-t támogatja, de a tervek szerint hamarosan bekerül az AMD-Vi és az SMMUv3 is. Ha többet szeretne megtudni róla, a részleteket megtalálja a következő link.