Ο πειραματισμός είναι μέρος της ανθρώπινης φύσης. Αν όμως πειραματιστούμε με το λειτουργικό σύστημα στον υπολογιστή, μπορεί να μας κοστίσει σε χρήματα και σε χρόνο. Με μια virtual machine (εικονική μηχανή) μπορούμε να δοκιμάσουμε ύποπτες εφαρμογές και να καταστρέψουμε ένα εικονικό λειτουργικό σύστημα, χωρίς καμία απολύτως συνέπεια.
Προτάσεις συνεργασίας
Τα νέα άρθρα του PCsteps
Γίνε VIP μέλος στο PCSteps
–Read this post in English, on PCsteps.com—
Τι είναι μία virtual machine
Η virtual machine είναι μια εξομοίωση ενός ξεχωριστού υπολογιστή μέσα στο PC μας. Έχει ακριβώς τις λειτουργίες ενός φυσικού υπολογιστή: κάνει boot, επανεκκίνηση, και τερματισμό λειτουργίας.
Μπορούμε να συνδέσουμε περιφερειακές συσκευές, από φλασάκια USB μέχρι εκτυπωτές και scanner. H virtual machine διαθέτει μέχρι και δικό της BIOS ή UEFI, ενώ χρειάζεται drivers για την εξομοίωση της κάρτας γραφικών και ήχου.
Όπως και σε κάθε υπολογιστή, για να λειτουργήσει μια virtual machine χρειάζεται να εγκαταστήσουμε ένα λειτουργικό σύστημα. Αν πρόκειται για μια έκδοση των Windows, θα πρέπει να τα ενεργοποιήσουμε κανονικά, με ένα αγορασμένο κλειδί προϊόντος.
Αν υπάρξει κάποιο πρόβλημα στο λειτουργικό, η virtual machine θα κολλήσει, μπορεί ακόμα και να εμφανίσει μπλε οθόνη. Μπορούμε επίσης να τη μολύνουμε με malware, είτε από λάθος είτε σκόπιμα.
Η χρήση μιας virtual machine μπορεί να ξεκλειδώσει συναρπαστικές δυνατότητες στον υπολογιστή μας. Από το να δοκιμάσουμε εναλλακτικά λειτουργικά συστήματα και όχι και τόσο αξιόπιστες εφαρμογές μέχρι για ακραίο multitasking, ο βασικός περιορισμός είναι η φαντασία μας. Και οι πόροι του φυσικού μας υπολογιστή, βεβαίως.
Οι χρήσεις των virtual machines
Ακόμα κι αν δεν είχατε ξανακούσει τον όρο “virtual machine”, έχετε χρησιμοποιήσει τουλάχιστον μία, χωρίς να το έχετε συνειδητοποιήσει. Για την ακρίβεια, χρησιμοποιείτε μια virtual machine αυτή τη στιγμή, μόνο που διαβάζετε αυτές τις γραμμές.
Για να δούμε πώς χρησιμοποιούνται οι εικονικές μηχανές.
Server virtualization
Το Virtualization – η χρήση virtual machines – είναι ζωτικής σημασίας για πολλών ειδών server.
Έχετε ακούσει για το VPS Hosting? To VPS σημαίνει “Virtual Private Server”, και είναι ένας πιο επίσημος τρόπος να πούμε “virtual machine”.
Λειτουργεί ως εξής: Η εταιρεία που αναλαμβάνει το webhosting έχει έναν πανίσχυρο server. Μιλάμε για οχτώ Xeon επεξεργαστές, δεκαπέντε πυρήνες ο καθένας, 12TB RAM. Ή και ακόμα περισσότερα.
Όταν παραγγέλνουμε ένα πακέτο φιλοξενίας ιστοσελίδων σε VPS, η εταιρεία δημιουργεί για εμάς μια virtual machine μέσα σε αυτόν τον θηριώδη server.
Κάθε VPS έχει ένα λειτουργικό σύστημα – συνήθως Linux – και έναν πλήρη Web Server. Και χρησιμοποιεί όσους πυρήνες και RAM πληρώνουμε για το πακέτο που επιλέξαμε.
Πολλές ιστοσελίδες που επισκέπτεστε τρέχουν σε μια virtual machine, συμπεριλαμβανομένου του PCsteps.
Το ίδιο σύστημα εφαρμόζεται και σε άλλων ειδών server: Mail server, file server, domain controllers κλπ.
Το virtualization επιτρέπει την καλύτερη αξιοποίηση των συνολικών πόρων. Ξεχωριστοί server θα χρειάζονταν ξεχωριστές μητρικές κάρτες, συστήματα ψύξης, τροφοδοτικά, κουτιά. Ένας μεγάλος server με virtualization εξοικονομεί χρήματα και χώρο.
Βεβαίως, έχει το μειονέκτημα της μειωμένης αξιοπιστίας. Αν αποτύχει η μητρική του server, όλες οι ξεχωριστές virtual machines βγαίνουν εκτός. Ουσιαστικά έχουμε όλα μας τα αυγά σε ένα καλάθι.
Βέβαια, καλά όλα αυτά, αλλά κανείς από εμάς δεν έχει και δεν χρειάζεται έναν server των 50.000 ευρώ στο σπίτι. Και σίγουρα δεν μας χρειάζεται να τρέξουμε δυο ντουζίνες εικονικούς server ταυτόχρονα. Ποια είναι λοιπόν η χρήση μιας virtual machine σε οικιακό περιβάλλον?
Virtualization στο σπίτι – το απόλυτο περιβάλλον δοκιμών
Ας πούμε πως δεν έχουμε εγκαταστήσει ποτέ μια διανομή Linux, και αναρωτιόμαστε γιατί τόση φασαρία με το συγκεκριμένο λειτουργικό.
Έχουμε βέβαια την επιλογή να εγκαταστήσουμε το Linux παράλληλα με τα Windows στον υπολογιστή μας.
Αυτό όμως είναι μια δέσμευση. Θα χρειαστεί να κάνουμε επανεκκίνηση για να αλλάξουμε λειτουργικό σύστημα. Και, αν τελικά δεν μας αρέσει το Linux, είναι λίγο διαδικασία το να το αφαιρέσουμε.
Με μια virtual machine, μπορούμε να έχουμε μια πλήρη εγκατάσταση Linux μέσα στα Windows. Το να αλλάξουμε λειτουργικό είναι τόσο απλό όσο το να εναλλασσόμαστε ανάμεσα σε ανοιχτά παράθυρα. Αν το βαρεθούμε, απλά διαγράφουμε την εικονική μηχανή, και το Linux εξαφανίζεται, σαν να μην υπήρξε ποτέ.
Λειτουργεί και αντίστροφα όμως. Μπορούμε να έχουμε μια πλήρη εγκατάσταση Windows μέσα στη διανομή μας του Linux. Έτσι, αν χρειαζόμαστε μια εφαρμογή που είναι διαθέσιμη μόνη για Windows, μπορούμε να την τρέξουμε στην virtual machine. Ή μπορούμε να χρησιμοποιήσουμε τον scanner για τον οποίο δεν βρίσκουμε drivers στο Linux.
Ακόμα και στην ίδια οικογένεια λειτουργικών συστημάτων, υπάρχουν χρήσεις για μια virtual machine. Η ίδια η Microsoft πρόσθεσε το “Windows XP Mode” στις επαγγελματικές εκδόσεις των Windows 7. Αυτό δεν ήταν τίποτα παραπάνω από μια virtualization πλατφόρμα εξειδικευμένη για τα XP. Είναι πάντα χρήσιμη η δυνατότητα πρόσβασης σε ένα παλαιότερο λειτουργικό σύστημα, σε περίπτωση ασυμβατότητας με προγράμματα και συσκευές.
Μια εικονική μηχανή είναι επίσης ένας έξοχος τρόπος να δοκιμάσουμε ασταθή και πειραματικά λειτουργικά συστήματα. Είναι ο καλύτερος τρόπος να εγκαταστήσουμε τα Windows 10 Technical Preview, ή την Alpha έκδοση του επόμενου Ubuntu. Έτσι μπορούμε να δούμε τις δυνατότητες του λειτουργικού, χωρίς να χρειάζεται να ανεχτούμε την αστάθειά του.
Επιπλέον, είναι σημαντικό να έχουμε στο νου το ότι το εικονικό περιβάλλον είναι ξεχωριστό από το βασικό μας λειτουργικό σύστημα. Αν εγκαταστήσουμε ένα ύποπτο πρόγραμμα και μολύνει το εικονικό σύστημα, η μόλυνση δεν πρόκειται να επεκταθεί στο βασικό μας λειτουργικό.
Οι περισσότερες εφαρμογές για virtual machines μπορούν επίσης να δημιουργήσουν “snapshots” με την ακριβή κατάσταση του λειτουργικού συστήματος. Όσο κι αν καταστρέψουμε το εικονικό λειτουργικό, απλά επαναφέρουμε ένα προηγούμενο snapshot. Θα έχουμε ένα 100% λειτουργικό εικονικό σύστημα σε χρόνο μηδέν.
Η αλήθεια είναι πως αν έχουνε συνηθίσει να δουλεύουμε με virtual machines, είναι δύσκολο να προσαρμοστούμε χωρίς αυτές.
Μπορούμε να παίξουμε παιχνίδια σε μια virtual machine?
Οι virtual machines δεν είναι φτιαγμένες για gaming. Είναι ακατάλληλες για οτιδήποτε καλύτερο από απλά παιχνίδια browser και flash.
Ο βασικός περιοριστικός παράγοντας είναι πως μια εικονική μηχανή δεν χρησιμοποιεί την κάρτα γραφικών του συστήματος. Αντίθετα, δημιουργεί μια εικονική GPU για να σχεδιάζει επί της οθόνης.
Βλέπετε, η εικονική μηχανή μοιράζεται τον επεξεργαστή του συστήματος με το βασικό μας λειτουργικό. Όμως αυτό δεν γίνεται με την κάρτα γραφικών. Δεν υπάρχει κανένας τρόπος, μέχρι στιγμής τουλάχιστο, να μοιράζουμε την “ιπποδύναμη” της GPU ανάμεσα στο φυσικό και το εικονικό PC.
Για να χρησιμοποιήσει μια virtual machine την κάρτα γραφικών του συστήματος, χρειάζεται το VGA Passthrough. Αυτό θα έδινε στο εικονικό σύστημα τον πλήρη έλεγχο της κάρτας γραφικών. Αλλά τότε δεν θα μπορούσε το βασικό σύστημα να χρησιμοποιήσει την GPU.
Υπάρχει μια μέθοδος να εφαρμόσουμε VGA passthrough σε κάποιες συγκεκριμένες εικονικές μηχανές, όπως οι QEMU ή Xen. Όμως χρειάζεται το βασικό μας λειτουργικό να είναι Linux, να έχουμε δύο κάρτες γραφικών, και τις γνώσεις να “πειράξουμε” τον πυρήνα του Linux. Όπως φαντάζεστε, η διαδικασία είναι ελαφρώς περίπλοκη.
Μπορεί κάθε υπολογιστής να τρέξει μια virtual machine?
Μία virtual machine δανείζεται επεξεργαστική ισχύ και RAM από το φυσικό σύστημα. Τόσο το εικονικό όσο και το βασικό λειτουργικό σύστημα λειτουργούν ταυτόχρονα. Αυτό σημαίνει πως χρειαζόμαστε αρκετά ισχυρό επεξεργαστή και GB RAM και για τα δύο.
Βέβαια, μπορούμε να επιλέξουμε πόσους πυρήνες του επεξεργαστή και πόση RAM θα χρησιμοποιήσει η εικονική μηχανή.
Όμως το τι θα επιλέξουμε εξαρτάται από το λειτουργικό σύστημα που σκοπεύουμε να εγκαταστήσουμε. Και τις εφαρμογές που θέλουμε να τρέξουμε.
Αυτό σημαίνει πως αν έχουμε έναν υπολογιστή με 2GB RAM, μπορούμε θεωρητικά να τρέξουμε μια virtual machine με 32bit Windows 8, τα οποία έχουν ελάχιστες απαιτήσεις 1GB RAM. Δεν μπορούμε όμως να τρέξουμε 64bit Windows. Δεν γίνεται να δώσουμε όλη τη RAM του συστήματος στη virtual machine.
Για να τρέξουμε αξιοπρεπώς μια εικονική μηχανή, θα συνιστούσαμε τουλάχιστον διπύρηνο επεξεργαστή και 4GB RAM. Με έναν i7 και 16GB RAM, μπορούμε να τρέχουμε πάνω από μία εικονικές μηχανές ταυτόχρονα.
Χρειάζεται επίσης να έχουμε έναν επεξεργαστή και μια μητρική που να υποστηρίζουν το IOMMU (input/output/memory management unit, μονάδα διαχείρισης εισόδων/εξόδων/μνήμης). Είναι το χαρακτηριστικό που επιτρέπει στο σύστημα να μοιράσει την επεξεργαστική ισχύ και τη RAM ανάμεσα στο βασικό και το εικονικό λειτουργικό.
Στους επεξεργαστές Intel θα συναντήσουμε το IOMMU σαν την τεχνολογία VT-d. Η AMD το αποκαλεί AMD-V
Συνεχίζεται… πώς να δημιουργήσουμε μία virtual machine.
Υπάρχουν πολλές πλατφόρμες για τη δημιουργία virtual machines. Οι δύο γνωστότερες είναι το VirtualBox και το VMware. Το VirtualBox είναι δωρεάν, και σε μεγάλο βαθμό ανοιχτού κώδικα. Η VMware έχει τον δωρεάν VMware Player και μια σειρά πιο προηγμένες λύσεις επί πληρωμή.
Σε επόμενες δημοσιεύσεις θα δούμε αναλυτικά πώς να δημιουργήσουμε μια εικονική μηχανή στα Windows και το Linux, καθώς και πώς να εγκαταστήσουμε μια εικονική μηχανή με Mac OS X στα Windows