Τι είναι ο υπερ-επιτηρητής;
Ένας υπερ-επιτηρητής (hypervisor) είναι ένα λογισμικό ή υλικολογισμικό που διευκολύνει τη δημιουργία και τη διαχείριση εικονικών μηχανών, αφαιρώντας τους πόρους υλικού ενός φυσικού υπολογιστή, επιτρέποντας έτσι την ταυτόχρονη εκτέλεση πολλαπλών λειτουργικών συστημάτων. Αντί να δημιουργεί ένα ολόκληρο σύστημα με υλικό και λειτουργικό σύστημα, δημιουργεί μια εικονική έκδοση — ουσιαστικά προσομοιώνοντας ένα πλήρες περιβάλλον υπολογιστή.
Πώς λειτουργεί ένας υπερ-επιτηρητής;
Κατά τη δημιουργία μιας εικονικής μηχανής (VM), αυτή λειτουργεί με βάση μια μη εικονική, πραγματική μηχανή — όπως ένας υπολογιστής. Η VM εξαρτάται από το φυσικό υλικό. Επομένως, υπάρχει ένα επίπεδο μεταξύ των δύο επιπέδων που είναι υπεύθυνο για τη διαχείριση: ο υπερ-επιτηρητής (hypervisor). Ο υπερ-επιτηρητής είναι ένα λογισμικό που αναλαμβάνει τη διαχείριση των απαιτούμενων πόρων. Αυτό το πρόγραμμα, γνωστό και ως Επιτηρητής Εικονικής Μηχανής (VMM), κατανέμει τους πόρους εντός του συστήματος. Με αυτόν τον τρόπο, πολλές και διαφορετικές εικονικές μηχανές μπορούν να λειτουργούν σε ένα σύστημα-ξενιστή, καθώς ο υπερ-επιτηρητής διασφαλίζει ότι δεν παρεμβαίνουν η μία στην άλλη και ότι όλες διαθέτουν τις απαραίτητες δυνατότητες.
Ο υπερ-επιτηρητής δημιουργεί έτσι ένα επίπεδο αφαίρεσης μεταξύ του υλικού και των λειτουργικών συστημάτων που εκτελούνται σε αυτό. Αυτό επιτυγχάνεται με τη διαίρεση των πόρων του υλικού σε λογικές μονάδες και την προσομοίωση ενός μοναδικού περιβάλλοντος για κάθε εικονική μηχανή. Οι εικονικές μηχανές δίνουν την εντύπωση ότι εκτελούνται απευθείας σε πραγματικό υλικό, παρόλο που μοιράζονται πόρους με άλλες εικονικές μηχανές.
Ο αυστηρός διαχωρισμός μεταξύ των διαφόρων εικονικών μηχανών όχι μόνο εξασφαλίζει την ορθή κατανομή των πόρων, αλλά και ενισχύει την ασφάλεια. Ο υπερ-επιτηρητής (hypervisor) διασφαλίζει ότι ένα σύστημα-επισκέπτης δεν μπορεί να έχει πρόσβαση σε αρχεία ενός άλλου συστήματος-επισκέπτη. Αυτό είναι ιδιαίτερα σημαντικό για σκοπούς δοκιμών, ώστε ένα ελαττωματικό πρόγραμμα να μην προκαλεί ζημιά σε άλλα περιβάλλοντα δοκιμών.
Διαχείριση μνήμης
Στην εικονικοποίηση της CPU, ο υπερ-επιτηρητής χρησιμοποιεί τεχνικές όπως η κατανομή χρόνου (time-slicing) για να κατανέμει δίκαια την υπολογιστική ισχύ μεταξύ των εικονικών μηχανών. Οι σύγχρονοι επεξεργαστές διαθέτουν ειδικές λειτουργίες εικονικοποίησης (π.χ. Intel VT-x ή AMD-V) που υποστηρίζουν τον υπερ-επιτηρητή και μειώνουν το λειτουργικό κόστος.
Η μνήμη (RAM) διαχειρίζεται μέσω τεχνικών σελιδοποίησης και αντιστοίχισης. Ο υπερ-επιτηρητής (hypervisor) αντιστοιχίζει διευθύνσεις εικονικής μνήμης σε μπλοκ φυσικής μνήμης, έτσι ώστε κάθε εικονική μηχανή (VM) να βλέπει μόνο τον δικό της χώρο μνήμης. Όταν η μνήμη είναι περιορισμένη, μπορεί να χρησιμοποιήσει μηχανισμούς όπως η υπερδέσμευση μνήμης ή το ballooning για την αποτελεσματική κατανομή της μνήμης μεταξύ των εικονικών μηχανών.
Διαχείριση εισόδων/εξόδων και συσκευών
Οι εικονικές μηχανές έχουν πρόσβαση σε συσκευές υλικού, όπως σκληρούς δίσκους, κάρτες δικτύου ή κάρτες γραφικών, μέσω εικονικών διεπαφών. Ο υπερ-επιτηρητής (hypervisor) εξομοιώνει αυτές τις συσκευές ή προωθεί απευθείας τα αιτήματα στο φυσικό υλικό (χρησιμοποιώντας τεχνικές Direct-I/O ή pass-through). Αυτό εξασφαλίζει μια ισορροπία μεταξύ συμβατότητας και απόδοσης.
Απομόνωση και ασφάλεια
Ένα σημαντικό πλεονέκτημα της εικονικοποίησης είναι η απομόνωση μεταξύ των εικονικών μηχανών. Κάθε εικονική μηχανή λειτουργεί στο δικό της περιβάλλον, οπότε τυχόν σφάλματα ή επιθέσεις σε μία εικονική μηχανή δεν έχουν άμεση επίδραση στις άλλες εικονικές μηχανές ή στο σύστημα-κεντρικό υπολογιστή. Ο υπερ-επιτηρητής χρησιμοποιεί διάφορους μηχανισμούς ασφαλείας για να εξασφαλίσει τον αυστηρό διαχωρισμό, όπως προστασία μνήμης, ελέγχους πρόσβασης και τεχνικές sandboxing.
Διάφοροι τύποι ελεγκτών εικονικών μηχανών
Υπάρχουν δύο διαφορετικοί τύποι εποπτών εικονικών μηχανών: οι υπερ-εποπτές τύπου 1 και τύπου 2. Ο καθένας χαρακτηρίζεται από πολύ συγκεκριμένα πλεονεκτήματα. Ο πρώτος είναι επίσης η παλαιότερη έκδοση. Η εικονικοποίηση με αυτή την τεχνολογία είχε ήδη αρχίσει να εφαρμόζεται από τη δεκαετία του 1960.
Υπερ-επιτηρητής τύπου 1
Ο πρώτος τύπος υπερ-επιτηρητή ονομάζεται «bare-metal hypervisor » ή «native hypervisor». Αυτός ο τύπος VMM εγκαθίσταται απευθείας στο φυσικό υλικό, παρακάμπτοντας το λειτουργικό σύστημα του κεντρικού υπολογιστή. Ως αποτέλεσμα, πρέπει να περιλαμβάνει όλους τους απαραίτητους οδηγούς συσκευών. Η κατανάλωση πόρων με έναν υπερ-επιτηρητή τύπου 1 είναι σχετικά χαμηλή, επειδή η υπολογιστική ισχύς δεν χρειάζεται να περάσει μέσω του λειτουργικού συστήματος του κεντρικού υπολογιστή. Αυτός ο τύπος υπερ-επιτηρητή έχει σχεδιαστεί κυρίως για χρήστες που επιθυμούν να εγκαταστήσουν έναν διακομιστή εικονικοποίησης. Ωστόσο, για μικρότερα οικιακά έργα, ένας υπερ-επιτηρητής τύπου 1 τείνει να είναι υπερβολικά περίπλοκος.

Υπερ-επιτηρητής τύπου 2
Η δεύτερη παραλλαγή (γνωστή και ως «φιλοξενούμενος υπερ-επιτηρητής») απαιτεί ένα υπάρχον λειτουργικό σύστημα, το οποίο είναι εγκατεστημένο στο φυσικό υλικό. Ένας υπερ-επιτηρητής τύπου 2 εγκαθίσταται όπως οποιοδήποτε άλλο πρόγραμμα. Στη συνέχεια, το VMM διαχειρίζεται την εικονικοποίηση. Δεν χρειάζεται να εγκατασταθούν προγράμματα οδήγησης συσκευών στον υπερ-επιτηρητή, καθώς το πραγματικό λειτουργικό σύστημα μπορεί απλά να τα μεταβιβάσει στο λογισμικό. Ωστόσο, αυτή η ευκολία έχει ως αντίτιμο την απόδοση. Ένα σημαντικό μέρος των πόρων καταναλώνεται ήδη από το λειτουργικό σύστημα του κεντρικού υπολογιστή. Λόγω της εύκολης εγκατάστασης και διαμόρφωσης, οι υπερ-επιτηρητές τύπου 2 είναι ιδανικοί για μικρότερα έργα.
