The pemaju projek XCP-NG diumumkan Baru-baru ini, mereka sedang mengusahakan projek baharu yang mempunyai nama itu «PV-IOMMU» dan itu membolehkan sistem tetamu mengakses fungsi terhad IOMMU yang dilaksanakan melalui paravirtualisasi dalam persekitaran Xen.
Pada asasnya, PV-IOMMU berjanji untuk membolehkan Dom0 menggunakan IOMMU paravirtual, yang menawarkan beberapa kelebihan seperti perlindungan DMA untuk Dom0 dan sokongan untuk Linux VFIO.
Apakah IOMMU?
IOMMU dikenali dengan nama berbeza bergantung pada pengilang (VT-d dalam Intel, AMD-Vi dalam AMD, SMMU dalam ARM, antara lain), Ia adalah peranti khas yang dilaksanakan yang mana fungsi utamanya menterjemah atau tapis permintaan DMA (Akses Memori Terus) daripada peranti ke memori fizikal mesin. Dalam virtualisasi, ia digunakan untuk membenarkan sistem tetamu mengakses terus peranti persisian seperti penyesuai Ethernet, kad grafik dan pengawal storan.
Apakah faedah yang diperolehi dengan paraviralisasi IOMMU?
Sebelum ini, hipervisor Xen menggunakan IOMMU untuk mengubah hala akses peranti PCI dan mengawal capaian peranti ini kepada ingatan. Walau bagaimanapun, Atas sebab kestabilan dan keselamatan, tetamu tidak dapat mengakses blok IOMMU secara langsung disediakan oleh perkakasan.
Kami mempersembahkan IOMMU paravirtual baharu yang dipanggil PV-IOMMU. Ia pada asasnya melaksanakan ciri-ciri yang tetamu jangkakan daripada IOMMU, mengabstraksi semua butiran dalaman perkakasan. Dalam Xen, kami menambah panggilan hiper baharu untuk operasi sedemikian (iaitu HYPERVISOR_iommu_op) yang menyediakan pelbagai operasi IOMMU yang boleh digunakan oleh tetamu (jika dibenarkan).
Walaupun demikian, adalah mungkin untuk menawarkan antara muka kepada tetamu untuk membolehkan anda mengakses IOMMU, menggunakan infrastruktur paravirtual Xen yang dipermudahkan, sambil menyembunyikan butiran perkakasan peringkat rendah. Antara muka ini, dipanggil PV-IOMMU, mengabstrak semua butiran dalaman perkakasan dan menyediakan satu set operasi IOMMU yang boleh diakses oleh tetamu, jika dibenarkan. Operasi dalam PV-IOMMU didedahkan sebagai sub-operasi dalam hypercall HYPERVISOR_iommu_op, dan direka bentuk dengan cara yang mudah untuk tetamu.
Salah satu ciri utama yang diharapkan oleh hos daripada IOMMU ialah keupayaan untuk mencipta dan mengubah suai "Domain IOMMU" yang merupakan satu set terjemahan yang menjadikan konteks memori dan yang boleh digunakan pada peranti (atau berbilang peranti). Domain ini dipanggil "Konteks IOMMU" dalam Xen untuk mengelakkan kekeliruan dengan domain Xen yang merupakan mesin maya.
Antara faedah berbeza yang menonjol daripada paravirtualisasi IOMMU, perkara berikut disebut:
- Perlindungan DMA untuk Dom0: Paravirtualisasi IOMMU membolehkan perlindungan akses ingatan terus (DMA) untuk domain pengurusan (Dom0) dalam persekitaran virtualisasi. Ini membantu meningkatkan keselamatan dan kestabilan sistem dengan menghalang peranti daripada mengakses terus memori sistem, yang boleh menjejaskan integriti Dom0.
- Sokongan Linux VFIO: Paravirtualisasi IOMMU memudahkan sokongan untuk infrastruktur I/O fleksibel maya untuk peranti pengguna (VFIO) dalam persekitaran virtualisasi, membenarkan aplikasi pengguna dan mesin maya mengakses peranti perkakasan secara langsung.
- Memudahkan untuk melaksanakan SPDK dengan Xen: Paravirtualisasi IOMMU juga merupakan sebahagian daripada usaha berterusan untuk menyokong SPDK dengan Xen. Ini membuka pintu kepada laluan data pantas baharu untuk storan mesin maya, yang berpotensi meningkatkan prestasi storan dalam persekitaran maya.
Selain itu, juga salah satu masalah Xen dirancang untuk ditangani dengan IOMMU, sejak sekarangatau membenarkan kewujudan berbilang konteks IOMMU dalam satu domain Xen. Walau bagaimanapun, reka bentuk semula subsistem Xen IOMMU sedang dipertimbangkan untuk mengambil kira pelbagai konteks IOMMU dan mengubah suai ciri sedia ada untuk menggunakannya. Walaupun PoC berfungsi yang melaksanakan pendekatan pertama telah dilaksanakan, dengan batasan tertentu dan sokongan yang tidak lengkap, disebutkan bahawa reka bentuk semula lengkap subsistem sedang diusahakan untuk masa hadapan.
Akhirnya, harus disebutkan bahawa Dalam fasa pembangunan semasa, PV-IOMMU hanya menyokong Intel VT-d, tetapi sokongan untuk AMD-Vi dan SMMUv3 dirancang untuk ditambah tidak lama lagi. Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh merujuk butiran dalam pautan berikut.