PV-IOMMU, Xen IOMMU paravirtualizācijas mehānisms

Xen logotips

L paziņoja XCP-NG projekta izstrādātāji Nesen viņi strādā pie jauna projekta, kam ir nosaukums "PV-IOMMU" un tas ļauj viesu sistēmām piekļūt ierobežotām IOMMU funkcijām, kas ieviestas, izmantojot paravirtualizāciju Xen vidē.

Būtībā PV-IOMMU sola ļaut Dom0 izmantot paravirtualizētu IOMMU, kas piedāvā vairākas priekšrocības, piemēram, DMA aizsardzību Dom0 un atbalstu Linux VFIO.

Kas ir IOMMU?

IOMMU, kas pazīstams ar dažādiem nosaukumiem atkarībā no ražotāja (VT-d Intel, AMD-Vi AMD, SMMU ARM, cita starpā), Tā ir ieviesta īpaša ierīce kuras galvenā funkcija ir tulkot vai filtrēt DMA pieprasījumus (tiešā piekļuve atmiņai) no ierīcēm uz iekārtas fizisko atmiņu. Virtualizācijā to izmanto, lai ļautu viesu sistēmām tieši piekļūt perifērijas ierīcēm, piemēram, Ethernet adapteriem, grafikas kartēm un krātuves kontrolleriem.

Kādas priekšrocības tiek iegūtas, izmantojot IOMMU paravirualizāciju?

Iepriekš Xen hipervizors izmantoja IOMMU, lai novirzītu piekļuvi PCI ierīcēm un kontrolēt šo ierīču piekļuvi atmiņai. tomēr Stabilitātes un drošības apsvērumu dēļ viesi nevarēja tieši piekļūt IOMMU blokam ko nodrošina aparatūra.

Mēs piedāvājam jaunu paravirtualizētu IOMMU, ko vienkārši sauc par PV-IOMMU. Tas būtībā ievieš funkcijas, kuras viesis sagaida no IOMMU, abstrahējot visas aparatūras iekšējās detaļas. Programmā Xen mēs pievienojām jaunu hiperzvanu šādām darbībām (kas ir HYPERVISOR_iommu_op), kas nodrošina dažādas IOMMU darbības, kuras viesis var izmantot (ja tas ir atļauts).

Neskatoties uz to, ir bijis iespējams piedāvāt interfeisu viesim lai ļautu jums piekļūt IOMMU, izmantojot vienkāršotu Xen paravirtualizētu infrastruktūru, vienlaikus slēpjot zema līmeņa aparatūras detaļas. Šī saskarne, ko sauc par PV-IOMMU, abstrahē visas aparatūras iekšējās detaļas un nodrošina IOMMU darbību kopu, kurām viesis var piekļūt, ja tas ir atļauts. Operācijas PV-IOMMU tiek parādītas kā apakšoperācijas hiperzvanā HYPERVISOR_iommu_op, un tās ir izstrādātas viesim ērtā veidā.

Viena no galvenajām funkcijām, ko saimniekdators sagaida no IOMMU, ir iespēja izveidot un modificēt "IOMMU domēnus", kas ir tulkojumu kopa, kas veido atmiņas kontekstu un ko var lietot ierīcei (vai vairākām ierīcēm). Šos domēnus Xen sauc par "IOMMU kontekstiem", lai izvairītos no sajaukšanas ar Xen domēniem, kas ir virtuālās mašīnas.

Starp dažādajiem ieguvumiem, kas izceļas no IOMMU paravirtualizācijas, ir minēti šādi:

  • Dom0 DMA aizsardzība: IOMMU paravirtualizācija nodrošina tiešas atmiņas piekļuves (DMA) aizsardzību pārvaldības domēnam (Dom0) virtualizācijas vidēs. Tas palīdz uzlabot sistēmas drošību un stabilitāti, neļaujot ierīcēm tieši piekļūt sistēmas atmiņai, kas varētu apdraudēt Dom0 integritāti.
  • Linux VFIO atbalsts: IOMMU paravirtualizācija atvieglo atbalstu virtualizētai elastīgai I/O infrastruktūrai lietotāju ierīcēm (VFIO) virtualizācijas vidēs, ļaujot lietotāju lietojumprogrammām un virtuālajām mašīnām tieši piekļūt aparatūras ierīcēm.
  • Atvieglo SPDK ieviešanu ar Xen: IOMMU paravirtualizācija ir arī daļa no pastāvīgajiem centieniem atbalstīt SPDK ar Xen. Tas paver durvis uz jaunu ātru datu ceļu virtuālās mašīnas glabāšanai, kas potenciāli var uzlabot krātuves veiktspēju virtualizētā vidē.

Papildus tam arī vienu no Ksena problēmām plānots risināt ar IOMMU, kopš šobrīdvai pieļauj vairāku IOMMU kontekstu pastāvēšanu vienā Xen domēnā. Tomēr tiek apsvērta Xen IOMMU apakšsistēmas pārprojektēšana, lai ņemtu vērā vairākus IOMMU kontekstus un pārveidotu esošās funkcijas, lai tās izmantotu. Lai gan ir ieviests funkcionāls PoC, kas realizē pirmo pieeju, ar zināmiem ierobežojumiem un nepilnīgu atbalstu, tiek minēts, ka tiek strādāts pie pilnīgas apakšsistēmas pārprojektēšanas nākotnei.

Visbeidzot, tas ir jāpiemin Pašreizējā izstrādes fāzē PV-IOMMU atbalsta tikai Intel VT-d, taču drīzumā plānots pievienot AMD-Vi un SMMUv3 atbalstu. Ja vēlaties uzzināt vairāk par to, varat skatīt sīkāku informāciju šī saite.