2.3 Virtualization | Ορισμός και Αρχές Λειτουργίας
2.3 Virtualization | Ορισμός και Αρχές Λειτουργίας
2.3.1 Virtualization | Ορισμός και Αρχές Λειτουργίας
Η τεχνολογία της εικονικοποίησης (Virtualization) αποτελεί μια θεμελιώδη μέθοδο που επιτρέπει σε ένα φυσικό υλικό (hardware) να υποστηρίζει την εκτέλεση πολλαπλών λειτουργικών συστημάτων (Operating Systems - OS) ταυτόχρονα. Η κεντρική ιδέα είναι ότι κάθε λειτουργικό σύστημα αντιλαμβάνεται ότι λειτουργεί σε ένα αποκλειστικό, αφιερωμένο περιβάλλον, σαν να πρόκειται για ξεχωριστό φυσικό σύστημα.
Virtualization ορίζεται ως η τεχνογνωστική μέθοδος για τη δημιουργία πλήρως απομονωμένων εικονικών περιβαλλόντων, διάφορων εφαρμογών και χρήσεων, με σκοπό την αποτελεσματική και δυναμική διαχείριση των πόρων ενός υπολογιστικού συστήματος.
2.3.2 Κίνητρο Ανάπτυξης και Θεμελιώδη Πλεονεκτήματα
Η εικονικοποίηση αναδείχθηκε ως άμεση απάντηση στην υποαξιοποίηση των υπολογιστικών πόρων (ιδίως στους servers) και την ανάγκη για ευελιξία και μείωση κόστους στις υποδομές IT. Αυτό το αρχικό κίνητρο έχει μετατραπεί στα κύρια πλεονεκτήματα που καθιστούν την τεχνολογία απαραίτητη:
Πρώτον, επιτυγχάνεται Εντατικοποίηση Πόρων (Resource Intensification), καθώς η δυνατότητα εκτέλεσης πολλών VMs σε ένα μόνο φυσικό μηχάνημα (Host Server) αυξάνει δραματικά το consolidation ratio, μειώνοντας την ανάγκη για φυσικό υλικό και, κατ' επέκταση, το κόστος λειτουργίας και ψύξης. Δεύτερον, η κάθε VM λειτουργεί σε ένα πλήρως απομονωμένο περιβάλλον. Αυτή η απομόνωση περιορίζει την εξάπλωση σφαλμάτων ή κακόβουλου λογισμικού, μειώνοντας τον κίνδυνο μόλυνσης από ιούς ή κακόβουλες εφαρμογές. Τέλος, η Virtualization προσφέρει Ευκολία Διαχείρισης και Ελαστικότητα μέσω της εύκολης δημιουργίας, διαγραφής και αναπαραγωγής εικονικών μηχανών. Επιπλέον, η ελαστικότητα στην ανάπτυξη των πόρων επιτρέπει την άμεση προσαρμογή του CPU, της RAM και του δίσκου στις ανάγκες κάθε εφαρμογής.
2.3.3 Αρχή Λειτουργίας και ο Ρόλος του Hypervisor
Η τεχνολογία της Virtualization βασίζεται σε ένα κεντρικό λογισμικό που ονομάζεται Hypervisor (Υπερεπόπτης[1]). Ο Hypervisor είναι το λογισμικό ή το firmware που είναι υπεύθυνο για τη δημιουργία και τη διαχείριση των Εικονικών Μηχανών (Virtual Machines, VMs) πάνω στο φυσικό υλικό (Hardware).

Ο Hypervisor διαδραματίζει κεντρικό ρόλο, καθώς διαχειρίζεται τον απευθείας έλεγχο του φυσικού υλικού, δημιουργεί ένα εικονικό περιβάλλον για κάθε OS και διανέμει δυναμικά τους πόρους του host server στα εικονικά συστήματα. Κάθε VM που δημιουργείται παρέχει ένα ολοκληρωμένο σύνολο εικονικών πόρων (εικονική CPU, μνήμη, δίσκοι, κάρτες δικτύου) που προσομοιώνουν ένα πραγματικό σύστημα. Εντός αυτού του περιβάλλοντος, εγκαθίσταται και εκτελείται ένα Guest OS, λειτουργώντας πλήρως απομονωμένα από το Host OS ή τα υπόλοιπα VMs.
Επιγραμματικά:
- Hypervisor: Το λογισμικό που εγκαθίσταται πάνω στο hardware (ή στο Host OS) και δημιουργεί τα εικονικά περιβάλλοντα (VMs).
- VM: Το εικονικό περιβάλλον που παρέχει το σύνολο των εικονικών πόρων (CPU, RAM, HD-SSD, LAN, DEVICES), προσομοιώνοντας ένα πραγματικό μηχάνημα.
- Guest OS: Το λειτουργικό σύστημα που εγκαθίσταται και εκτελείται εντός του VM, λειτουργώντας πλήρως απομονωμένα.
2.3.3.1 Τυπολογία Hypervisors
Η ταξινόμηση των hypervisors είναι κρίσιμη για την κατανόηση των διαφορετικών εφαρμογών της Virtualization. Η διάκριση γίνεται ανάλογα με τη θέση που καταλαμβάνουν στην ιεραρχία του συστήματος και τον βαθμό άμεσης πρόσβασής τους στο φυσικό υλικό (hardware). Αυτή η θέση υπαγορεύει την απόδοση, την ασφάλεια και το πεδίο εφαρμογής τους.
Για την καλύτερη κατανόηση των δύο βασικών τύπων, Type 1 και Type 2, ακολουθεί ο Πίνακας 1, που συγκρίνει τα κριτήρια λειτουργίας και χρήσης τους.
| Κριτήριο Σύγκρισης | Type 1 Hypervisors (Bare-Metal) | Type 2 Hypervisors (Hosted) |
|---|---|---|
| Εγκατάσταση | Άμεσα στο Hardware του υπολογιστή. | Πάνω σε ένα ήδη εγκατεστημένο Λειτουργικό Σύστημα (Host OS). |
| Αρχιτεκτονική | Λειτουργούν ως το πρωτεύον λειτουργικό σύστημα για το υλικό. | Λειτουργούν ως εφαρμογή (Application) εντός του Host OS. |
| Πρόσβαση στο Hardware | Άμεση πρόσβαση (χωρίς ενδιάμεσο OS). | Έμμεση πρόσβαση, μέσω των drivers του Host OS. |
| Απόδοση & Ασφάλεια | Υψηλότερη απόδοση και ασφάλεια (κυρίαρχο μοντέλο). | Καλή, αλλά εξαρτάται από τους πόρους και την απόδοση του Host OS. |
| Ιδανική Χρήση | Επαγγελματικές υποδομές, Data Centers, Cloud Services. | Προσωπική χρήση, Δοκιμές, Ανάπτυξη εφαρμογών σε Desktop. |
| Γνωστά Παραδείγματα | VMware ESXi, XenServer, Microsoft Hyper-V Server, Proxmox VE, Oracle VM Server, Red Hat Virtualization, Citrix Hypervisor. | VMware Workstation, Oracle VM VirtualBox, Parallels Desktop, Microsoft Hyper-V Client. |
Θυμάμαι!
- Type 1 Hypervisors: Εγκαθίστανται άμεσα στο hardware (Bare-Metal) και προσφέρουν υψηλή απόδοση για παραγωγικά περιβάλλοντα.
- Type 2 Hypervisors: Τρέχουν πάνω σε ένα Host OS (Hosted) και είναι πιο εύκολα στη χρήση για προσωπική ανάπτυξη και δοκιμές.
2.3.3.2 Επίπεδα Εικονικοποίησης
Τα επίπεδα εικονικοποίησης περιγράφουν ποιο τμήμα της υπολογιστικής υποδομής γίνεται εικονικό, ανάλογα με τον πόρο που θέλουμε να απομονώσουμε και να διαχειριστούμε. Αντί να εστιάζουμε μόνο στο Λειτουργικό Σύστημα, η εικονικοποίηση εφαρμόζεται ιεραρχικά σε διάφορα σημεία του συστήματος (από το φυσικό υλικό έως τις εφαρμογές).
Για την καλύτερη επισκόπηση του εικονικοποιούμενου πόρου και του στόχου αφαίρεσης σε κάθε επίπεδο, ακολουθεί ο Πίνακας 2:
| Επίπεδο Εικονικοποίησης | Εικονικοποιούμενος Πόρος (Στόχος Αφαίρεσης) | Βασική Λειτουργία | Τεχνικοί Τύποι/Παραδείγματα |
|---|---|---|---|
| Επίπεδο 1 (System Virtualization) | Υλικό (Hardware) | Δημιουργία πλήρους εικονικού συστήματος (VM) για την εκτέλεση Guest OS | Full Virtualization (Απευθείας), Paravirtualization (Εντολών) |
| Επίπεδο 2 (Process Virtualization) | Διεργασίες ή Εφαρμογές | Δημιουργία απομονωμένου περιβάλλοντος για τη λειτουργία μεμονωμένων εφαρμογών (π.χ., Containerization). | Application Virtualization, Network Virtualization (Δικτύου) |
| Επίπεδο 3 (Storage Virtualization) | Χώρος Αποθήκευσης (Disks) | Λογική συγκέντρωση και διαχείριση του χώρου αποθήκευσης, ανεξάρτητα από το φυσικό υλικό. | Storage Aggregation (Συγκέντρωση), Virtual Disks (Εικονικοί Δίσκοι) |
- Virtualization Επίπεδου 1 (System virtualization): Αφορά την πλήρη εικονικοποίηση του υλικού, δημιουργώντας ολόκληρα εικονικά συστήματα. Περιλαμβάνει την Απευθείας Εικονικοποίηση (Full Virtualization) και την Εικονικοποίηση Εντολών (Paravirtualization).
- Virtualization Επίπεδου 2 (Process virtualization): Εστιάζει στην εικονικοποίηση διεργασιών ή εφαρμογών. Αυτό σημαίνει ότι δημιουργούμε ένα εικονικό περιβάλλον μόνο για συγκεκριμένες λειτουργίες ή εφαρμογές (όπως συμβαίνει με την Εικονικοποίηση Δικτύου, όπου γίνεται διαχωρισμός του φυσικού δικτύου σε λογικά, εικονικά δίκτυα, επιτρέποντας τη δημιουργία εικονικών τοπολογιών.)
- Virtualization Επίπεδου 3 (Storage virtualization): Αφορά την λογική συγκέντρωση του φυσικού χώρου αποθήκευσης. Ουσιαστικά, κρύβουμε τους φυσικούς δίσκους και τους παρουσιάζουμε ως ενιαίο χώρο (Storage Aggregation) ή ως Εικονικούς δίσκους (Virtual Disks) που είναι ανεξάρτητοι από το πραγματικό υλικό.
Θυμάμαι!
- Τα επίπεδα εικονικοποίησης αφορούν τον συγκεκριμένο πόρο του υπολογιστή που εικονικοποιείται, δηλαδή αν πρόκειται για τον Server, το Δίκτυο ή τον Χώρο Αποθήκευσης.
- Κάθε επίπεδο προσφέρει διαφορετικά πλεονεκτήματα και χρησιμοποιείται για διαφορετικούς σκοπούς (π.χ., System Virtualization για Servers, Storage Virtualization για ασφάλεια δεδομένων)
2.3.4 Μειονεκτήματα και η Γέφυρα προς το Containerization
Ενώ η Virtualization έφερε επανάσταση, η δημιουργία ενός VM απαιτεί συνήθως σημαντικούς πόρους (ολόκληρο OS kernel, RAM overhead) και η εκκίνησή της μπορεί να είναι σχετικά αργή. Αυτά τα μειονεκτήματα οδήγησαν στην ανάπτυξη του Containerization (όπως το LXC και το Docker), μια τεχνολογία που αποτελεί την επόμενη εξελικτική φάση της εικονικοποίησης.
Η Containerization επιτρέπει την εκτέλεση εφαρμογών σε μια lightweight[2] μονάδα (container). Αυτά τα containers δεν απαιτούν τη φόρτωση ολόκληρου του Guest OS, αλλά τρέχουν από τον κοινό kernel του Host OS. Αυτό οδηγεί σε μικρότερο footprint και γρηγορότερες αποδόσεις από τα VMs.
Η Containerization περιγράφεται αναλυτικά στην επόμενη ενότητα και είναι η τεχνολογία που χρησιμοποιείται ως επί το πλείστον στην ανάπτυξη της παρούσας εργασίας. Ωστόσο, είναι κρίσιμο να θυμόμαστε ότι η Virtualization παρέχει το VM (δηλαδή τον Host Server) πάνω στο οποίο δημιουργούνται τα containers μέσω του LXD.
2.3.5 Εφαρμογή και Προοπτικές
Η εικονικοποίηση (Virtualization), με την ικανότητά της να δημιουργεί απομονωμένα εικονικά περιβάλλοντα, έχει βρει ευρεία εφαρμογή σε ένα φάσμα τομέων, καθιστώντας την ακρογωνιαίο λίθο των σύγχρονων υποδομών IT.
Πρωταρχικά, χρησιμοποιείται για τη δημιουργία εικονικών servers και desktops (VDI — Virtual Desktop Infrastructure), επιτρέποντας την ενοποίηση των φυσικών servers και τη δραστική μείωση του hardware footprint στα κέντρα δεδομένων. Επιπλέον, η τεχνολογία είναι απαραίτητη για τους κύκλους ανάπτυξης και δοκιμής εφαρμογών (Development and Testing), καθώς οι VMs προσφέρουν ένα απομονωμένο και αναπαραγώγιμο περιβάλλον για την αξιολόγηση νέου κώδικα.
Επιπλέον, η εικονικοποίηση VM αποτελεί τον θεμέλιο λίθο των σύγχρονων Cloud Services, όπου παρέχει τη βασική υποδομή ως υπηρεσία (IaaS), επιτρέποντας στους χρήστες να μισθώνουν εικονικούς πόρους κλιμακώνοντας άμεσα. Τέλος, η ευελιξία της υποστηρίζει νέες τάσεις όπως το Edge Computing[3], όπου η απομόνωση που προσφέρει είναι κρίσιμη για την ασφαλή εκτέλεση εφαρμογών σε μικρές, απομακρυσμένες υπολογιστικές μονάδες.
Οι προοπτικές για την εικονικοποίηση είναι πολλά υποσχόμενες, καθώς η τεχνολογία αναμένεται να εξελιχθεί με νέες λειτουργίες – ιδιαίτερα στη διασύνδεση με το Containerization – και να υποστηρίξει ακόμα πιο απαιτητικές εφαρμογές.
Η εικονικοποίηση έχει μεταμορφώσει τον τρόπο που χρησιμοποιούμε τις IT υποδομές και θα συνεχίσει να διαδραματίζει κεντρικό ρόλο στην τεχνολογία του μέλλοντος, παρέχοντας τη βάση για τις επόμενες τεχνολογικές εξελίξεις, όπως το Containerization που ακολουθεί.