Linux Inside
78
Σ
το προηγούμενο τεύχος του «Linux
Inside» γνωρίσαμε το KVM. Εξηγήσα-
με τη διαφορά μεταξύ server και
desktop virtualization και παρουσιάσαμε τις
πιο δημοφιλείς εμπλεκόμενες εταιρείες στο
χώρο. Αφού περιγράψαμε τι είναι το KVM
και ποια είναι τα απαραίτητα kernel modules, στην συνέχεια
του άρθρου περιγράψαμε αναλυτικά πώς μπορεί κάποιος να
δημιουργήσει τις δικές του εικονικές μηχανές natively στο μη-
χάνημά του.
Σε αυτό το άρθρο θα παρουσιάσουμε μερικά εργαλεία και
βιβλιοθήκες που θα μας δώσουν τη δυνατότητα να εκμεταλ-
λευτούμε στο μέγιστο τις εικονικές μηχανές. Γι’ αυτό, βγάλτε
το προηγούμενο τεύχος από τη βιβλιοθήκη σας και ρίξτε μία
γρήγορη ματιά πριν ξεκινήσουμε.
Αν έχουμε ήδη δημιουργήσει εικονικές μηχανές και θέλου-
με να εκκινήσουμε μία εξ αυτών, αρκεί να γράψουμε την πα-
ρακάτω εντολή:
qemu-kvm my_favorite_distro.qcow2
Θα ξεκινήσει να bootάρει την εικονική μηχανή με δίσκο το
my_favorite_distro.qcow2. Αν θέλουμε να προσθέσουμε συ-
σκευές ή να παραμετροποιήσουμε την εικονική μηχανή, ώστε
να ταιριάξει στις ανάγκες μας, θα πρέπει να διαβάσουμε
εκτενώς το manual του qemu-kvm.
Εκτός από τα βασικά, μνήμη, δίσκο, CD-ROM, δίκτυο,
display, μπορούμε να παραμετροποιήσουμε την εικονική μη-
χανή, ώστε να υποστηρίζει και USB, serial ports, audio, να
τρέχει εξ ολοκλήρου στη μνήμη χωρίς να γράφει στον εικονι-
κό δίσκο και ένα σωρό επιπλέον δυνατότητες. Στο δικό μου
σύστημα, το manual page του qemu-kvm, όντας κοντά στις
1.500 γραμμές, είναι αρκετά πλήρες και εκτενές.
Αν η διανομή μας χρειάζεται τουλάχιστον 1GB μνήμη και
θέλουμε να προσομοιώσουμε το touchpad του laptop μας ως
USB mouse, τότε είναι απαραίτητη η παρακάτω εντολή:
kvm my_favorite_distro.qcow2 -m 1024 -usbdevice tablet
libvirt (The virtualization API)
Το libvirt είναι ένα πλήρες προγραμματιστικό interface, μέ-
σα από το οποίο μπορούμε να διαχειριστούμε διαφορετικής
τεχνολογίας εικονικές μηχανές. Υποστηρίζει τις εξής τεχνολο-
γίες: KVM/QEMU, Xen hypervisor, LXC Linux container
system, OpenVZ, User Mode Linux paravirtualized kernel,
VirtualBox, VMware hypervisors & Workstation/Player και
Microsoft Hyper-V. Δικτυακά υποστηρίζει διασυνδέσεις όπως
bridge, NAT, VEPA και VN-LINK, καθώς και storage σε
IDE/SCSI/USB disks, FibreChannel, LVM, iSCSI, NFS και τοπι-
κά αρχεία συστημάτων.
Το libvirt προσφέρει σε εμάς έναν ενιαίο τρόπο διαχείρισης
των εικονικών μηχανών, είτε αυτές είναι τοπικά στο σύστημά
μας είτε βρίσκονται απομακρυσμένα σε κά-
ποιο διακομιστή. Το libvirtd είναι ο δαίμο-
νας που εκτελείται στο παρασκήνιο, δίνο-
ντας σε εμάς διαφανή τρόπο δημιουργίας
και επεξεργασίας των εικονικών μηχανών,
ανεξαρτήτως της τεχνολογίας και δικτυα-
κής θέσης του διακομιστή στον οποίο βρίσκονται πραγματικά
οι μηχανές.
Ο πιο απλός τρόπος για να συνδεθούμε στο libvirtd είναι
μέσω του virsh. To virsh είναι μία διεπαφή τερματικού, μέσα
από την οποία μπορούμε να εκτελέσουμε βασικές εντολές με
σκοπό τη διασύνδεση και διαχείριση των εικονικών μηχανών.
Μπορούμε επίσης να τροποποιήσουμε το διαδικτυακό τρόπο
επικοινωνίας των εικονικών μηχανών.
Αν θέλουμε να συνδεθούμε τοπικά:
virsh -c qemu:///system
ενώ εάν θέλουμε να συνδεθούμε απομακρυσμένα σε έναν
kvm server, μέσω ssh:
virsh -c qemu+ssh://hostname.example.com/system
Για να δούμε όλες τις εικονικές μηχανές (είτε αυτές έχουν
ξεκινήσει, είτε όχι), γράφουμε:
sudo virsh list --all
Το αποτέλεσμα στο δικό μου μηχάνημα είναι το εξής:
Id Name State
----------------------------------------------------
-
archlinux running
-
centos6 shut off
-
debian shut off
-
fedora16 shut off
-
linuxmint12 shut off
-
opensuse_12.1 shut off
-
ubuntu11.04 shut off
-
windows2003 shut off
-
winxp running
-
winxp.home shut off
-
winxphome shut off
virt-manager Vs gnome boxes
Το Virtual Machine Manager είναι ένα Python/GTK πρό-
γραμμα ανοικτού κώδικα. Κύριο ενδιαφέρον για την ανάπτυξή
του έχει η RedHat. Έχει γραφικό περιβάλλον (βασισμένο σε
PyGTK) και η κύρια δουλειά του είναι να διαχειρίζεται τους
πόρους και τις εικονικές μηχανές στο server που έχουμε συν-
δεθεί μέσω του libvirt interface. Δείτε τη σχετική εικόνα για να
πάρετε μία γεύση.
Χωρίς ιδιαίτερες γνώσεις και με μερικά κλικ μπορούμε να
μετατρέψουμε το μηχάνημά μας σε έναν πρώτης τάξεως δια-
κομιστή εικονικών μηχανών!
Το αντίπαλο δέος απέναντι στο virt-manager είναι το gnome
Του Ευάγγελου Μπαλάσκα <ebalaskas@ebalaskas.gr>
Linux Labs - KVM
Αφού μάθαμε τα βασικά για την εικονικοποίηση με
βάση τον πυρήνα Linux (KVM), προχωράμε στη
γνωριμία με τα εργαλεία εκείνα που μας βοηθούν
να αξιοποιήσουμε στο έπακρο αυτή την τεχνολογία.
Εργαλεία:
kvm, qemu, libvirt,
virt-manager
Δυσκολία:
URL:
http://goo.gl/ZRAJc
Δείτε το Wiki.
Εικονικοποίηση με KVM
(Μέρος 2ο)
Ο Βαγγέλης προσπαθεί να βοηθήσει τα νέα μέλη του χώρου.