Ο ανακοίνωσαν οι προγραμματιστές του έργου XCP-NG Πρόσφατα, εργάζονται σε ένα νέο έργο που έχει το όνομα «PV-IOMMU» και αυτό επιτρέπει στα συστήματα φιλοξενούμενων να έχουν πρόσβαση σε περιορισμένες λειτουργίες του IOMMU που υλοποιούνται μέσω της παραεικονικοποίησης στο περιβάλλον Xen.
Βασικά, PV-IOMMU υπόσχεται να επιτρέψει στο Dom0 να χρησιμοποιήσει ένα παραεικονικό IOMMU, το οποίο προσφέρει πολλά πλεονεκτήματα, όπως προστασία DMA για Dom0 και υποστήριξη για Linux VFIO.
Τι είναι το IOMMU;
IOMMU γνωστό με διαφορετικά ονόματα ανάλογα με τον κατασκευαστή (VT-d στην Intel, AMD-Vi στην AMD, SMMU στην ARM, μεταξύ άλλων), Είναι μια ειδική συσκευή που εφαρμόζεται του οποίου η κύρια λειτουργία είναι μετάφραση ή φιλτράρισμα αιτημάτων DMA (Άμεση πρόσβαση στη μνήμη) από τις συσκευές στη φυσική μνήμη του μηχανήματος. Στην εικονικοποίηση, χρησιμοποιείται για να επιτρέπει στα συστήματα φιλοξενούμενων να έχουν άμεση πρόσβαση σε περιφερειακές συσκευές όπως προσαρμογείς Ethernet, κάρτες γραφικών και ελεγκτές αποθήκευσης.
Ποια οφέλη αποκομίζονται με την παραιϊκοποίηση του IOMMU;
στο παρελθόν, ο Xen hypervisor χρησιμοποίησε το IOMMU για να ανακατευθύνει την πρόσβαση των συσκευών PCI και τον έλεγχο της πρόσβασης αυτών των συσκευών στη μνήμη. Ωστόσο, Για λόγους σταθερότητας και ασφάλειας, οι επισκέπτες δεν μπορούσαν να έχουν απευθείας πρόσβαση στο μπλοκ IOMMU παρέχεται από το υλικό.
Παρουσιάζουμε ένα νέο παραεικονικό IOMMU που ονομάζεται απλά PV-IOMMU. Βασικά υλοποιεί τα χαρακτηριστικά που περιμένει ο επισκέπτης από ένα IOMMU, αφαιρώντας όλες τις εσωτερικές λεπτομέρειες του υλικού. Στο Xen, προσθέσαμε μια νέα υπερ-κλήση για τέτοιες λειτουργίες (η οποία είναι HYPERVISOR_iommu_op) που παρέχει διάφορες λειτουργίες IOMMU που μπορεί να χρησιμοποιήσει ο επισκέπτης (αν επιτρέπεται).
Παρόλα αυτά, ήταν δυνατό να προσφερθεί μια διεπαφή στον επισκέπτη για να σας επιτρέψει να έχετε πρόσβαση στο IOMMU, χρησιμοποιώντας μια απλοποιημένη παραεικονική υποδομή Xen, ενώ αποκρύπτονται λεπτομέρειες υλικού χαμηλού επιπέδου. Αυτή η διεπαφή, που ονομάζεται PV-IOMMU, αφαιρεί όλες τις εσωτερικές λεπτομέρειες του υλικού και παρέχει ένα σύνολο λειτουργιών IOMMU στις οποίες ο επισκέπτης μπορεί να έχει πρόσβαση, εάν επιτρέπεται. Οι λειτουργίες στο PV-IOMMU εκτίθενται ως δευτερεύουσες λειτουργίες στην υπερ-κλήση HYPERVISOR_iommu_op και έχουν σχεδιαστεί με τρόπο που είναι βολικό για τον επισκέπτη.
Ένα από τα κύρια χαρακτηριστικά που περιμένει ο κεντρικός υπολογιστής από ένα IOMMU είναι η δυνατότητα δημιουργίας και τροποποίησης "IOMMU Domains" που είναι ένα σύνολο μεταφράσεων που δημιουργούν περιβάλλον μνήμης και που μπορούν να εφαρμοστούν σε μια συσκευή (ή σε πολλές συσκευές). Αυτοί οι τομείς ονομάζονται "IOMMU Contexts" στο Xen για να αποφευχθεί η σύγχυση με τους τομείς Xen που είναι εικονικές μηχανές.
Μεταξύ των διαφορετικών πλεονεκτημάτων που ξεχωρίζουν από την παραεικονικότητα του IOMMU, αναφέρονται τα ακόλουθα:
- Προστασία DMA για Dom0: Η παραεικονικότητα του IOMMU επιτρέπει την προστασία άμεσης πρόσβασης στη μνήμη (DMA) για τον τομέα διαχείρισης (Dom0) σε περιβάλλοντα εικονικοποίησης. Αυτό βοηθά στη βελτίωση της ασφάλειας και της σταθερότητας του συστήματος αποτρέποντας τις συσκευές από την άμεση πρόσβαση στη μνήμη του συστήματος, κάτι που θα μπορούσε να θέσει σε κίνδυνο την ακεραιότητα του Dom0.
- Υποστήριξη Linux VFIO: Η παραεικονικότητα του IOMMU διευκολύνει την υποστήριξη εικονικοποιημένης ευέλικτης υποδομής εισόδου/εξόδου για συσκευές χρήστη (VFIO) σε περιβάλλοντα εικονικοποίησης, επιτρέποντας στις εφαρμογές των χρηστών και στις εικονικές μηχανές να έχουν άμεση πρόσβαση σε συσκευές υλικού.
- Διευκολύνει την εφαρμογή του SPDK με το Xen: Η παραεικονικότητα του IOMMU αποτελεί επίσης μέρος μιας συνεχιζόμενης προσπάθειας υποστήριξης του SPDK με το Xen. Αυτό ανοίγει την πόρτα σε μια νέα γρήγορη διαδρομή δεδομένων για αποθήκευση εικονικής μηχανής, η οποία μπορεί ενδεχομένως να ενισχύσει την απόδοση αποθήκευσης σε εικονικά περιβάλλοντα.
Επιπλέον, επίσης Ένα από τα προβλήματα του Xen σχεδιάζεται να αντιμετωπιστεί με το IOMMU, αφού επί του παρόντοςή επιτρέπει την ύπαρξη πολλαπλών πλαισίων IOMMU σε έναν μόνο τομέα Xen. Ωστόσο, ένας επανασχεδιασμός του υποσυστήματος Xen IOMMU εξετάζεται για να ληφθούν υπόψη πολλαπλά περιβάλλοντα IOMMU και να τροποποιηθούν οι υπάρχουσες λειτουργίες για να γίνει χρήση τους. Αν και έχει υλοποιηθεί ένα λειτουργικό PoC που υλοποιεί την πρώτη προσέγγιση, με ορισμένους περιορισμούς και ελλιπή υποστήριξη, αναφέρεται ότι εργάζεται για το μέλλον πλήρης επανασχεδιασμός του υποσυστήματος.
Τέλος, πρέπει να αναφερθεί ότι Στην τρέχουσα φάση ανάπτυξης, το PV-IOMMU υποστηρίζει μόνο Intel VT-d, αλλά η υποστήριξη για AMD-Vi και SMMUv3 σχεδιάζεται να προστεθεί σύντομα. Εάν ενδιαφέρεστε να μάθετε περισσότερα σχετικά με αυτό, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο παρακάτω σύνδεσμο.