Linux Inside
79
boxes, βασισμένο σε gnome3 libraries. Ενώ το virt-manager
προορίζεται κυρίως για διαχειριστές και έμπειρους χρήστες,
το gnome boxes προσανατολίζεται για απλούς χρήστες, χω-
ρίς ιδιαίτερες γνώσεις, που απλά θέλουν να δημιουργήσουν
μερικές εικονικές μηχανές για να δοκιμάζουν νέες διανομές ή
να ελέγχουν νέο λογισμικό χωρίς να χρειάζεται να πειράξουν
το δικό τους. Δείτε ένα στιγμιότυπο στην εικόνα
http://goo.gl/2OPPI.
Spice protocol
Εκτός από το standard display, οι εικονικές μηχανές χρησι-
μοποιούν το VNC (Virtual Network Computing) για την απεικό-
νιση του γραφικού περιβάλλοντος. Έτσι μπορούμε και δικτυα-
κά και με χρήση κωδικού να συνδεθούμε στο γραφικό περι-
βάλλον της εικονικής μηχανής. Η διαδικασία είναι εξαιρετικά
απλή και για λεπτομέρειες μπορούμε να κοιτάξουμε στο
manual του qemu-kvm. Το spice-protocol έρχεται να καλύψει
τα κενά του vnc στον τρόπο απεικόνισης ενός γραφικού περι-
βάλλοντος. Μέσω των Virtual Device Interfaces μεταφέρει τις
συσκευές που χρησιμοποιεί μία εικονική μηχανή από το δια-
κομιστή στον πελάτη. Το spice βασίζεται στην αρχιτεκτονική
server-client και ήδη υπάρχει ένα .xpi (δηλαδή firefox addon)
σε πειραματικό στάδιο, για να μπορούμε να βλέπουμε και να
διαχειριζόμαστε τις εικονικές μηχανές μας μέσω ενός
browser! Το spice δημιουργήθηκε ώστε να διαμοιράζει τις συ-
σκευές ενός διακομιστή, κυρίως δικτυακά, σε μία εικονική μη-
χανή. Ήδη υπάρχει xorg driver και, ως εκ τούτου, μπορούμε
να σηκώσουμε 3D γραφικά σε μία εικονική μηχανή, γεγονός
που μέχρι τώρα δεν μπορούσε να γίνει. Εκτός, λοιπόν, από
τις συσκευές εισόδου και εξόδου, το spice μπορεί να μεταφέ-
ρει ήχο και να συγχρονίζει τις αντιγραφές/επικολλήσεις ανά-
μεσα σε μία εικονική μηχανή και στο μηχάνημα που τρέχει.
libguestfs
To libguestfs είναι κι αυτό ένα προγραμματιστικό εργαλείο,
αλλά για να διαχειριζόμαστε εικονικούς δίσκους. Μπορούμε να
προσαρτήσουμε σε πραγματικό χρόνο μία εικονική κατάτμηση,
να εξάγουμε αρχεία ή ακόμα και να πάρουμε ένα πλήρες αντί-
γραφο όλων των αρχείων – χωρίς όμως να πειράξουμε τα αρ-
χεία της διανομής κατά τη λειτουργία της. Ακόμη μπορούμε να
γεμίσουμε με μηδενικά τον κενό χώρο ενός εικονικού δίσκου ή
να μειώσουμε τον πραγματικό χώρο που δεσμεύει στο μηχάνη-
μά μας. Εκτός από την προφανή χρήση, ότι δηλαδή επεξεργά-
ζεται κατατμήσεις Linux, υποστηρίζει και Windows κατατμήσεις
και διανέμεται με εργαλείο που μπορεί να διαβάσει τη registry
(hivex). Υποστηρίζει software raid, lvm partitions, εικονικούς δί-
σκους που έχουν δημιουργηθεί σε virtualbox, vmware server,
xen server και αρκετά (δημοφιλή και μη) αρχεία συστημάτων
και γενικά είναι ένα πολυεργαλείο όσον αφορά στη διαχείριση
εικονικών δίσκων. To libguestfs έχει διεπαφές σε αρκετές δη-
μοφιλείς γλώσσες προγραμματισμού, επιτρέποντάς μας τη
συγγραφή δικών μας προγραμμάτων. Τέλος, μαζί με τη χρήση
του febootstrap μπορούμε να δημιουργήσουμε υπερβολικά πο-
λύ μικρές εικονικές μηχανές, μόνο με τη βασική δομή και λει-
τουργία μίας Linux διανομής αυτόματα.
Μια ματιά
Δεν μπορούμε να κλείσουμε αυτό το άρθρο χωρίς να ανα-
φερθούμε στα παρακάτω:
• ganeti
• OpenNebula
To ganeti είναι εργαλείο διαχείρισης cluster virtual server.
Χρειάζεται να έχουμε ήδη στήσει τον δικό μας hypervisor και
μετά αναλαμβάνει τα πάντα. Φτιάχνουμε τα δικά μας clusters
με virtual servers.
Το opennebula είναι μία πλατφόρμα για την ανάπτυξη και
διαχείριση ενός data center για εικονικές μηχανές. Μπορούμε
να δημιουργήσουμε τα δικά μας ιδιωτικά ή δημόσια σύννεφα
(cloud infrastructure) βασισμένα σε εικονικές μηχανές.
Επίλογος
Για την ώρα, η μόνη community διανομή που μπορεί να χρη-
σιμοποιηθεί από την αρχή μέχρι το τέλος, ώστε να εγκαταστή-
σουμε το δικό μας KVM server, είναι το Fedora. Ήδη από το
Fedora 16 υπάρχει ξεχωριστή επιλογή στο μενού εγκατάστα-
σης, ενώ στο Fedora 17 είναι προεγκατεστημένα και προρυθ-
μισμένα όλα τα απαραίτητα προγράμματα που χρειάζεται κα-
νείς. Αυτό δεν σημαίνει βέβαια ότι στην αγαπημένη σας διανο-
μή δεν θα μπορέσετε να εγκαταστήσετε και να χειριστείτε
απλά και εύκολα όλα τα παραπάνω προγράμματα.
Όλες οι παραπάνω τεχνολογίες και βιβλιοθήκες είναι ανοι-
κτού κώδικα, έχουν εκτενή τεκμηρίωση και προσφέρουν διε-
παφές με πολλές και δημοφιλείς γλώσσες. Εάν είστε προ-
γραμματιστές, μπορείτε να γράψετε τη δική σας εφαρμογή
πολύ γρήγορα και να έχει άμεσα μεγάλη απήχηση στην κοινό-
τητα. Μία καλή ιδέα είναι η συγγραφή ενός libvirt client σε
JavaScript! Έτσι, μέσα από οποιονδήποτε browser θα μπορού-
με να διαχειριστούμε τις εικονικές μηχανές ενός διακομιστή.
Στο προηγούμενο τεύχος αναφερθήκαμε στην αναγκαιότητα
της ύπαρξης εικονικών μηχανών, ειδικά σε μικρομεσαίες επι-
χειρήσεις. Σε αυτό να προσθέσω ότι υπάρχουν εταιρείες που
με πολύ μικρό κόστος (κυρίως στο εξωτερικό) πουλάνε VPS
(virtual private servers) σε πολύ χαμηλές τιμές (<10$ το μήνα),
επειδή στηρίζουν τους servers τους σε open source λειτουργι-
κό. Πολύ θα χαιρόμουν να δω και στην Ελλάδα έναν ISP ή μία
εταιρεία που να πουλάει VPS σε ακόμα χαμηλότερες τιμές.
•
Linux Labs - KVM
Το Virtual Machine Manager εν δράσει...
Σύνδεσμοι
[1] http://libvirt.org
[2] http://virt-manager.org
[3] https://live.gnome.org/Boxes
[4] http://spice-space.org
[5] http://libguestfs.org
[6] https://code.google.com/p/ganeti
[7] http://opennebula.org