PV-IOMMU, një mekanizëm paravirtualizimi i Xen IOMMU

Logoja Xen

L njoftuan zhvilluesit e projektit XCP-NG Së fundmi ata janë duke punuar për një projekt të ri që ka emrin "PV-IOMMU" dhe kjo i lejon sistemet e vizitorëve të aksesojnë funksionet e kufizuara të IOMMU të zbatuara përmes paravirtualizimit në mjedisin Xen.

Në thelb, PV-IOMMU premton të mundësojë Dom0 të përdorë një IOMMU të paravirtualizuar, i cili ofron disa avantazhe si mbrojtja DMA për Dom0 dhe mbështetje për Linux VFIO.

Çfarë është IOMMU?

IOMMU i njohur me emra të ndryshëm në varësi të prodhuesit (VT-d në Intel, AMD-Vi në AMD, SMMU në ARM, ndër të tjera), Është një pajisje speciale e implementuar funksioni kryesor i të cilit është përktheni ose filtroni kërkesat DMA (Direct Memory Access) nga pajisjet në memorien fizike të makinës. Në virtualizim, ai përdoret për të lejuar sistemet e vizitorëve të aksesojnë drejtpërdrejt pajisjet periferike si përshtatësit Ethernet, kartat grafike dhe kontrollorët e ruajtjes.

Çfarë përfitimesh merren me paravirualizimin e IOMMU?

Më parë, hipervizori Xen përdori IOMMU për të ridrejtuar aksesin të pajisjeve PCI dhe kontrolloni aksesin e këtyre pajisjeve në memorie. Megjithatë, Për arsye stabiliteti dhe sigurie, të ftuarit nuk mund të hynin drejtpërdrejt në bllokun e IOMMU ofruar nga hardueri.

Ne paraqesim një IOMMU të re të paravirtualizuar të quajtur thjesht PV-IOMMU. Në thelb zbaton veçoritë që pret i ftuari nga një IOMMU, duke abstraguar të gjitha detajet e brendshme të harduerit. Në Xen, ne shtuam një hiperthirrje të re për operacione të tilla (që është HYPERVISOR_iommu_op) që ofron operacione të ndryshme IOMMU që vizitori mund t'i përdorë (nëse lejohet).

Pavarësisht kësaj, ka qenë e mundur të ofrohet një ndërfaqe për mysafirin për t'ju lejuar të hyni në IOMMU, duke përdorur një infrastrukturë të thjeshtuar të paravirtualizuar Xen, duke fshehur detajet e harduerit të nivelit të ulët. Kjo ndërfaqe, e quajtur PV-IOMMU, abstrakton të gjitha detajet e brendshme të harduerit dhe ofron një sërë operacionesh të IOMMU që vizitori mund t'i qaset, nëse lejohet. Operacionet në PV-IOMMU ekspozohen si nën-operacione në hiperthirrjen HYPERVISOR_iommu_op dhe janë të dizajnuara në një mënyrë që të jetë e përshtatshme për mysafirin.

Një nga veçoritë kryesore që hosti pret nga një IOMMU është aftësia për të krijuar dhe modifikuar "IOMMU Domains" i cili është një grup përkthimesh që krijojnë kontekstin e kujtesës dhe që mund të aplikohen në një pajisje (ose pajisje të shumta). Këto domene quhen "IOMMU Contexts" në Xen për të shmangur konfuzionin me domenet Xen që janë makina virtuale.

Ndër përfitimet e ndryshme që dallohen nga paravirtualizimi i IOMMU, përmenden këto:

  • Mbrojtja DMA për Dom0: Paravirtualizimi i IOMMU mundëson mbrojtjen e aksesit të drejtpërdrejtë të memories (DMA) për domenin e menaxhimit (Dom0) në mjediset e virtualizimit. Kjo ndihmon në përmirësimin e sigurisë dhe stabilitetit të sistemit duke parandaluar që pajisjet të hyjnë drejtpërdrejt në kujtesën e sistemit, gjë që mund të rrezikojë integritetin e Dom0.
  • Mbështetje Linux VFIO: Paravirtualizimi IOMMU lehtëson mbështetjen për infrastrukturën e virtualizuar fleksibël të hyrjes/daljes për pajisjet e përdoruesve (VFIO) në mjediset e virtualizimit, duke lejuar që aplikacionet e përdoruesve dhe makinat virtuale të kenë qasje direkte në pajisjet harduerike.
  • E bën të lehtë zbatimin e SPDK me Xen: Paravirtualizimi i IOMMU është gjithashtu pjesë e një përpjekjeje të vazhdueshme për të mbështetur SPDK-në me Xen. Kjo hap derën për një rrugë të re të shpejtë të të dhënave për ruajtjen e makinës virtuale, e cila potencialisht mund të rrisë performancën e ruajtjes në mjediset e virtualizuara.

Përveç kësaj, gjithashtu një nga problemet e Xen është planifikuar të trajtohet me IOMMU, që nga momentiose lejon ekzistencën e konteksteve të shumta të IOMMU në një domen të vetëm Xen. Megjithatë, një ridizajnim i nënsistemit Xen IOMMU po konsiderohet për të llogaritur kontekste të shumta të IOMMU dhe për të modifikuar veçoritë ekzistuese për t'i përdorur ato. Edhe pse është zbatuar një PoC funksionale që zbaton qasjen e parë, me kufizime të caktuara dhe mbështetje jo të plotë, përmendet se po punohet për një ridizajnim të plotë të nënsistemit për të ardhmen.

Në fund, duhet përmendur se Në fazën aktuale të zhvillimit, PV-IOMMU mbështet vetëm Intel VT-d, por mbështetja për AMD-Vi dhe SMMUv3 është planifikuar të shtohet së shpejti. Nëse jeni të interesuar të mësoni më shumë rreth tij, mund të konsultoni detajet në lidhja vijuese.