Οι σύγχρονες εφαρμογές για εικονικές μηχανές, όπως το VirtualBox και το VMWare, μπορούν να προσομοιώσουν το IOMMU (VT-x ή AMD-V). Με άλλα λόγια, μπορούμε να δημιουργήσουμε μια εικονική μηχανή μέσα σε μια άλλη εικονική μηχανή. Το ερώτημα είναι, σε έναν i7 και με 32GB RAM, πόσο βαθιά μπορούμε να πάμε?
Προτάσεις συνεργασίας
Τα νέα άρθρα του PCsteps
Γίνε VIP μέλος στο PCSteps
–Read this post in English, on PCsteps.com—
Προσοχή: Μην το δοκιμάσετε αυτό στο σπίτι. Δεν είναι επικίνδυνο, είναι απλώς χάσιμο χρόνου.
Για να ικανοποιήσουμε την επιστημονική σας περιέργεια, έχουμε καταγράψει όλες μας τις προσπάθειες, συμπεριλαμβανομένων των αποτυχιών.
Οπότε, εάν ονειρεύεστε εμφωλευμένες εικονικές μηχανές, τότε έχετε πραγματικά περίεργα όνειρα, μάλλον πρέπει να μιλήσετε με κάποιον ειδικό. Θα έχετε όμως μια απάντηση σχετικά με το τι είναι δυνατόν.
Το σύστημα της δοκιμής
Για να πραγματοποιούσαμε σωστά αυτό το πείραμα, θα έπρεπε να χρησιμοποιήσουμε έναν server με πολλαπλούς επεξεργαστές.
120 συνολικοί πυρήνες και 12.0 TB RAM θα ήταν πραγματικά μεγάλη βοήθεια. Δυστυχώς, ξεχάσαμε τα $100.000 που κοστίζει ένας τέτοιος server στο άλλο μας παντελόνι. Δεν σας τη σπάει όταν γίνεται αυτό?
Οπότε, το καλύτερο που μπορούσαμε να έχουμε ήταν ένας απλός, οικιακός υπολογιστής. Έχει έναν i7 4790K, και τρέχει στην κανονική συχνότητα των 4GHz, χωρίς overclock. Ο υπολογιστής διαθέτει επίσης 32GB RAM, αλλά μαντεύουμε ότι θα ξεμείνουμε από επεξεργαστική ισχύ πολύ πριν ξεμείνουμε η RAM.
Ακόμα κι έτσι, τα συνολικά 8 threads δεν είναι ένα αμελητέο νούμερο. Σίγουρα θα μας δώσει εμφωλευμένες εικονικές μηχανές δύο επιπέδων, και πιθανώς σε περισσότερα, αν είμαστε τυχεροί.
Το κύριο λειτουργικό μας, και το σημείο εκκίνησης του πειράματος μας είναι το Ubuntu Linux 14.10 x64.
Εμφωλευμένες εικονικές μηχανές με το VirtualBox
Το VirtualBox είναι ένα από τα γνωστότερα προγράμματα για τη δημιουργία εικονικών μηχανών. Είναι δωρεάν, το μεγαλύτερο μέρος του είναι ανοικτού κώδικα, είναι εύκολο στη χρήση, και κάνει τη δουλειά του καλά.
Επίσης έχουμε ήδη δει πώς να εγκαταστήσουμε το VirtualBox σε Linux Mint και Ubuntu, καθώς επίσης πώς να δημιουργήσουμε εικονική μηχανή Windows.
Η πρώτη εικονική μηχανή VirtualBox
Δεδομένου ότι ξεκινήσαμε με το Ubuntu Linux, ήταν λογικό να εγκαταστήσουμε Ubuntu και σε όλες τις εμφωλευμένες εικονικές μηχανές. Με αυτό τον τρόπο, οι απαιτήσεις από το hardware θα μοιραστούν ομοιόμορφα ανάμεσα στις μηχανές.
Η πρώτη εικονική μηχανή πρέπει να έχει αρκετή RAM. Οπότε, σύραμε τον slider μέχρι το τέλος της πράσινης ζώνης, η οποία είναι η “ασφαλής ζώνη” σύμφωνα με το VirtualBox.
Του δώσαμε επίσης τέσσερις πυρήνες CPU, το οποίο είναι και πάλι το ασφαλές όριο σύμφωνα με το VirtualBox.
Επιλέγοντας το Ubuntu 14.10 ISO σαν εικονικό δίσκο, ξεκινήσαμε την πρώτη μας εικονική μηχανή. Ως εδώ, καλά.
Και τότε…
Όποιες ρυθμίσεις και αν δοκιμάσαμε, δεν καταφέραμε καν να φορτώσουμε το live περιβάλλον του Ubuntu. Το καλύτερο που καταφέραμε ήταν να πάρουμε ένα αινιγματικό μήνυμα, που ποτέ δεν μάθαμε τι σημαίνει.
Οπότε, ήταν η ώρα για το plan B.
Plan B
Αντί για Ubuntu, χρησιμοποιήσαμε ένα Lubuntu 14.10 ISO.
Δεδομένου ότι το Lubuntu είναι μια ελαφριά διανομή Linux, αυτό ενδεχομένως να βοηθούσε το πείραμα μας.
Και έτσι…
Αρχίζουμε να υποπτευόμαστε ότι η έκδοση 14.10 του Ubuntu απλά δεν τα πάει καλά με τη τρέχουσα έκδοση του VirtualBox.
Ίσως εάν το ψάχναμε λίγο παραπάνω, θα καταφέρναμε να εγκαταστήσουμε τουλάχιστον την πρώτη εικονική.
Ωστόσο, το πείραμα δεν ανέφερε κάποια συγκεκριμένη διανομή, οπότε αποφασίσαμε να προχωρήσουμε στο Plan C.
Plan C
Θα μπορούσαμε πιθανότατα να δοκιμάσουμε Windows, δεδομένου ότι η δημιουργία μιας εικονική μηχανής στο VirtualBox είναι ζήτημα μερικών λεπτών.
Τελικά όμως, είπαμε να δώσουμε μια ευκαιρία στο Linux Mint 17.1, το οποίο είναι βασισμένο στο Ubuntu 14.04 LTS.
Ιδού. Το 14.04 με το VirtualBox φαίνεται να λειτουργεί κανονικά.
Δεν αναγνώριζε video hardware acceleration, αλλά μικρό το κακό.
Η πρώτη εμφωλευμένη εικονική μηχανή στο VirtualBox
Δεν αργήσαμε να έχουμε προβλήματα. Για την πρώτη εμφωλευμένη εικονική μηχανή, μπορούσαμε να δημιουργήσουμε μόνο 32bit σύστημα.
Αυτό σήμαινε ότι θα μπορούσαμε να διαθέσουμε μόνο 4GB RAM σε αυτήν την εικονική μηχανή.
Χωρίς να αποθαρρυνθούμε, δημιουργήσαμε την Linux Mint 2.
Μπορούσαμε επίσης να διαθέσουμε μόνο έναν πυρήνα, παρ' όλο που η VM είχε 4 διαθέσιμους.
Τα πράγματα δεν πήγαιναν καλά με το πείραμα μας. Όπως λοιπόν ήταν αναμενόμενο…
Παρόλο που διπλό-τσεκάραμε ότι είχαμε ενεργοποιημένο το Hardware Virtualization…
…απλά αρνείτο να λειτουργήσει στην πρώτη εμφωλευμένη εικονική μηχανή.
Η πρώτη VirtualBox Εικονική Μηχανή (δεύτερη προσπάθεια)
Οπότε, πίσω στην αφετηρία. Σκεφτήκαμε ότι ίσως έφταιγε το Linux Mint, οπότε καταργήσαμε την προηγούμενη Εικονική Μηχανή, και δημιουργήσαμε μία με Windows 7. Τα δοκιμαστικά ISOs 30 ημερών της Digital River σίγουρα βοήθησαν.
Δεν αντιμετωπίσαμε προβλήματα με την πρώτη εικονική μηχανή.
Ωστόσο, και πάλι δεν μπορούσαμε να εγκαταστήσουμε μια 64bit VM μέσα…
…και το VT-x virtualization και πάλι δεν λειτουργούσε.
Τελικά, οι εμφωλευμένες εικονικές μηχανές με το VirtualBox ήταν μάλλον αποτυχία.
Οπότε, αυτό σήμαινε το τέλος του πειράματος μας? Όχι ακριβώς.
Εμφωλευμένες εικονικές μηχανές στο VMware Workstation
Το Vmware Workstation είναι μια επαγγελματική λύση για την δημιουργία εικονικών μηχανών, και κοστίζει 250 δολάρια.
Στο PCsteps δεν θεωρούμε ότι το “επί πληρωμή” σημαίνει απαραίτητα “καλύτερο” όταν μιλάμε για λογισμικό.
Αλλά, αφού αποτύχαμε με το VirtualBox, το VMware άξιζε μια ευκαιρία.
Η πρώτη εικονική μηχανή VMware Workstation
Για την πρώτη εικονική μηχανή, διαθέσαμε 26GB μνήμης.
Διαθέσαμε επίσης και τους 8 πυρήνες και βεβαιωθήκαμε ότι είχαμε ενεργοποιημένη την επιλογή Virtualize Intel VT-x/EPT.
Η εγκατάσταση του Ubuntu 14.10 ολοκληρώθηκε χωρίς κανένα πρόβλημα. Επίσης, βρήκαμε το χαρακτηριστικό “Easy install” του VMware ιδιαίτερα βολικό, καθώς όλη η εγκατάσταση έγινε εντελώς αυτόματα, χωρίς καθόλου επιτήρηση.
Πριν περάσει πολλή ώρα, είχαμε την πρώτη μας εικονική μηχανή.
Η πρώτη εμφωλευμένη εικονική μηχανή στο VMware Workstation
Για την πρώτη εμφωλευμένη εικονική μηχανή, διαθέσαμε 19GB RAM, από τα 26GB της βασικής εικονικής μηχανής.
Αυτή τη φορά, δώσαμε 6 πυρήνες, και φυσικά ενεργοποιήσαμε το VT-x virtualization.
Αυτό ήταν το σημείο μέχρι το οποίο φτάσαμε και με το VirtualBox. Με το φόβο ότι δεν θα δούλευε και ότι ολόκληρο αυτό το άρθρο θα ήταν μια αποτυχία, ξεκινήσαμε την εμφωλευμένη εικονική μηχανή.
Πήραμε μια προειδοποίηση ότι μια εικονική μηχανή μέσα σε μια άλλη θα οδηγήσει σε μειωμένη απόδοση. Αλλά καλύτερα μια προειδοποίηση, παρά τα σφάλματα του VirtualBox.
Για φαντάσου. Λειτουργεί.
Η χρήση της CPU κορυφώθηκε κατά τη διάρκεια της εγκατάστασης, σύμφωνα με το System Load Indicator.
Είχαμε ακόμα και black-out του VMware Workstation σε μια φάση.
Στην συνέχεια όμως ξεκόλλησε, και η πρώτη μας εμφωλευμένη εικονική μηχανή έτρεχε κανονικά.
Επισήμως, το πείραμα των εμφωλευμένων εικονικών μηχανών στέφθηκε με επιτυχία. Αλλά πλέον είναι η ώρα για το σοβαρό ερώτημα. Πόσο βαθιά μπορούμε να πάμε?
Η δεύτερη VMware Workstation Εικονική Μηχανή
Για την δεύτερη εμφωλευμένη εικονική μηχανή διαθέσαμε 15GB RAM και τέσσερις από τους έξι πυρήνες της πρώτης εμφωλευμένης εικονικής μηχανής.
Όχι μόνο δούλεψε, αλλά πήγε και πιο ομαλά από την προηγούμενη εικονική μηχανή. Δεν είχαμε καθόλου black-outs.
Σύντομα, η δεύτερη εμφωλευμένη εικονική μηχανή με πλήρες εγκατεστημένο λειτουργικό σύστημα ήταν πραγματικότητα.
Φυσικά, όσο πιο βαθιά πηγαίναμε, τόσο πιο αργά θα γίνονταν τα πάντα. Όμως λειτουργούσε.
Το θέμα είναι ότι ακόμα και η απλούστερη εργασία, όπως η αντιγραφή ενός αρχείου, έκανε τα γραφήματα χρήσης της CPU να φωτίζουν σαν χριστουγεννιάτικο δέντρο.
Είναι εμφανές πλέον ότι το μέγεθος της RAM δεν έχει καμία σχέση με τα όρια των εικονικών μηχανών. Είναι όλα θέμα των πυρήνων του επεξεργαστή, και της ποιότητας του VT-x virtualization.
Η τρίτη εικονική μηχανή VMware Workstation
Τα πράγματα δεν φαίνονταν καλά για την τρίτη εμφωλευμένη εικονική μηχανή.
Το logo του VMware, το οποίο συνήθως περνάει πολύ γρήγορα για προλάβουμε να μπούμε στο BIOS με F2, τώρα πήρε ολόκληρα λεπτά για να φορτώσει.
Η δραστηριότητα της CPU ήταν επίσης ασταθής. Ένας μόνο πυρήνας ήταν στο 100%, και στην συνέχεια θα άλλαζε θέση με κάποιον άλλο πυρήνα.
Τελικά, η εικονική μηχανή κατάφερε να φορτώσει και μετά την οθόνη του POST, κόλλησε όμως στην ISOLINUX οθόνη, και δεν επανήλθε ποτέ.
Προσπαθήσαμε να ξαναδημιουργήσουμε το σενάριο με Windows 7 x64, σε περίπτωση που ήταν σφάλμα του Ubuntu.
Τα αποτελέσματα ήταν χειρότερα. Μπορέσαμε να εγκαταστήσουμε Windows μόνο στην πρώτη εμφωλευμένη εικονική μηχανή, και η δεύτερη θα κολλούσε πριν καν ξεκινήσει την εγκατάσταση.
Τα αποτελέσματα
Στο τέλος, δεν ήταν ούτε η RAM ή οι CPU πυρήνες που μας σταμάτησαν. Ήταν πιθανότατα το VT-x που δεν μπορούσε να χειριστεί την επαναλαμβανόμενη προσομοίωση.
Θα μπορούσε ένα ελαφρύτερο λειτουργικό, όπως μια ξεγυμνωμένη έκδοση του Arch Linux, να μας δώσει μια τρίτη εμφωλευμένη εικονική μηχανή? Ίσως.
Προς το παρών όμως, ακόμα και που καταφέραμε να έχουμε μια εικονική μηχανή μέσα σε μια εικονική μηχανή μέσα σε μια εικονική μηχανή, ήταν σημαντικό. Και εντελώς άχρηστο σε σχέση με τρεις ξεχωριστές εικονικές μηχανές να τρέχουν παράλληλα.
Λοιπόν, τώρα ξέρετε. Και η γνώση δύναμη.