Πώς να δημιουργήσετε εικονικές μηχανές στο Linux χρησιμοποιώντας KVM (εικονική μηχανή που βασίζεται σε πυρήνα) - Μέρος 1


Αυτό το σεμινάριο εξετάζει την εισαγωγή, την ανάπτυξη του KVM και τον τρόπο χρήσης του για τη δημιουργία εικονικών μηχανών κάτω από διανομές που βασίζονται στο RedHat όπως RHEL/CentOS7 και Fedora 21 .

Τι είναι το KVM;

Το KVM ή (Kernel-based Virtual Machine) είναι μια πλήρης λύση εικονικοποίησης για Linux σε υλικό Intel 64 και AMD 64 που περιλαμβάνεται στον κύριο πυρήνα Linux από την 2.6.20 και είναι σταθερή και γρήγορη για τους περισσότερους φόρτους εργασίας.

Χαρακτηριστικά KVM

Υπάρχουν πολλά χρήσιμα χαρακτηριστικά και πλεονεκτήματα που θα κερδίσετε όταν χρησιμοποιείτε το KVM για να αναπτύξετε την εικονική σας πλατφόρμα. Ο hypervisor KVM υποστηρίζει τις ακόλουθες δυνατότητες:

  1. Υπερ-δέσμευση : Αυτό σημαίνει την εκχώρηση περισσότερων εικονικών CPU ή μνήμης από τους διαθέσιμους πόρους στο σύστημα.
  2. Thin provisioning : Η οποία επιτρέπει την κατανομή ευέλικτου χώρου αποθήκευσης και βελτιστοποιεί τον διαθέσιμο χώρο για κάθε εικονική μηχανή επισκέπτη.
  3. Στάθμευση εισόδου/εξόδου δίσκου : Παρέχει τη δυνατότητα να ορίσετε ένα όριο στα αιτήματα εισόδου/εξόδου δίσκου που αποστέλλονται από εικονικές μηχανές στον κεντρικό υπολογιστή.
  4. Αυτόματη εξισορρόπηση NUMA : Βελτιώνει την απόδοση των εφαρμογών που εκτελούνται σε συστήματα υλικού NUMA.
  5. Δυνατότητα εντατικής προσθήκης εικονικής CPU : Παρέχει τη δυνατότητα αύξησης της επεξεργαστικής ισχύος ανάλογα με τις ανάγκες σε εικονικές μηχανές που λειτουργούν, χωρίς διακοπές λειτουργίας.

Αυτή είναι η πρώτη μας εν εξελίξει σειρά KVM (Εικονική μηχανή με βάση τον πυρήνα), εδώ θα καλύψουμε τα ακόλουθα άρθρα εν μέρει.

Προαπαιτούμενα

Βεβαιωθείτε ότι το σύστημά σας διαθέτει τις επεκτάσεις εικονικοποίησης υλικού: Για κεντρικούς υπολογιστές που βασίζονται σε Intel, επαληθεύστε ότι η επέκταση εικονικοποίησης CPU [vmx] είναι διαθέσιμη χρησιμοποιώντας την ακόλουθη εντολή.

[root@server ~]# grep -e 'vmx' /proc/cpuinfo

Για κεντρικούς υπολογιστές που βασίζονται σε AMD, βεβαιωθείτε ότι η επέκταση εικονικοποίησης CPU [svm] είναι διαθέσιμη.

[root@server ~]# grep -e 'svm' /proc/cpuinfo

Εάν δεν υπάρχει έξοδος, βεβαιωθείτε ότι οι επεκτάσεις εικονικοποίησης είναι ενεργοποιημένες στο BIOS. Βεβαιωθείτε ότι οι μονάδες KVM έχουν φορτωθεί στον πυρήνα "θα πρέπει να φορτωθεί από προεπιλογή".

[root@server ~]# lsmod | grep kvm

Η έξοδος πρέπει να περιέχει kvm_intel για κεντρικούς υπολογιστές που βασίζονται σε intel ή kvm_amd για κεντρικούς υπολογιστές που βασίζονται σε amd.

Πριν ξεκινήσετε , θα χρειαστείτε τον λογαριασμό root ή μη χρήστη με δικαιώματα sudo ρυθμισμένα στο σύστημά σας και επίσης βεβαιωθείτε ότι το σύστημά σας είναι ενημερωμένο.

[root@server ~]# yum update

Βεβαιωθείτε ότι το Selinux είναι σε λειτουργία Permissive.

[root@server ~]# setenforce 0

Βήμα 1: Εγκατάσταση και ανάπτυξη KVM

1. Αρχικά θα εγκαταστήσουμε τα πακέτα qemu-kvm και qemu-img. Αυτά τα πακέτα παρέχουν το KVM σε επίπεδο χρήστη και τη διαχείριση εικόνων δίσκου.

[root@server ~]# yum install qemu-kvm qemu-img

2. Τώρα, έχετε την ελάχιστη απαίτηση για την ανάπτυξη εικονικής πλατφόρμας στον κεντρικό υπολογιστή σας, αλλά διαθέτουμε επίσης χρήσιμα εργαλεία για τη διαχείριση της πλατφόρμας μας, όπως:

  1. Το virt-manager παρέχει ένα εργαλείο GUI για τη διαχείριση των εικονικών μηχανών σας.
  2. Το libvirt-client παρέχει ένα εργαλείο CL για τη διαχείριση του εικονικού σας περιβάλλοντος, αυτό το εργαλείο που ονομάζεται virsh.
  3. Το virt-install παρέχει την εντολή "virt-install" για τη δημιουργία των εικονικών μηχανών σας από το CLI.
  4. Το libvirt παρέχει τις βιβλιοθήκες της πλευράς του διακομιστή και του κεντρικού υπολογιστή για αλληλεπίδραση με υπερεπόπτες και συστήματα κεντρικού υπολογιστή.

Ας εγκαταστήσουμε αυτά τα παραπάνω εργαλεία χρησιμοποιώντας την ακόλουθη εντολή.

[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client 

3. Για χρήστες RHEL/CentOS7, έχουν επίσης επιπλέον ομάδες πακέτων, όπως: Virtualization Client, Virtualization Platform και Virtualization Tools προς εγκατάσταση.

[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools	

4. Ο δαίμονας εικονικοποίησης που διαχειρίζεται όλη την πλατφόρμα είναι "libvirtd ". ας το επανεκκινήσουμε.

[root@server ~]#systemctl restart libvirtd

5. Αφού κάνετε επανεκκίνηση του δαίμονα, ελέγξτε την κατάστασή του εκτελώντας την ακόλουθη εντολή.

[root@server ~]#systemctl status libvirtd  
Δείγμα εξόδου
libvirtd.service - Virtualization daemon 
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) 
   Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago 
 Main PID: 25701 (libvirtd) 

Τώρα, ας μεταβούμε στην επόμενη ενότητα για να δημιουργήσουμε τις εικονικές μας μηχανές.

Βήμα 2: Δημιουργήστε VM χρησιμοποιώντας KVM

Όπως αναφέραμε νωρίτερα, έχουμε μερικά χρήσιμα εργαλεία για τη διαχείριση της εικονικής μας πλατφόρμας και τη δημιουργία εικονικών μηχανών. Ένα από αυτά τα εργαλεία ονομάζεται [virt-manager] που χρησιμοποιούμε στην επόμενη ενότητα.

6. Αν και το virt-manager είναι ένα εργαλείο που βασίζεται σε GUI, θα μπορούσαμε επίσης να το εκκινήσουμε/ξεκινήσουμε από τερματικό καθώς και από GUI.

[root@server ~]#virt-manager
Χρήση του GNOME

Χρήση GNOME Classic

7. Μετά την εκκίνηση του εργαλείου, θα εμφανιστεί αυτό το παράθυρο.

8. Από προεπιλογή θα διαπιστώσετε ότι ο διαχειριστής είναι συνδεδεμένος απευθείας με τον localhost, ευτυχώς θα μπορούσατε να χρησιμοποιήσετε το ίδιο εργαλείο για να διαχειριστείτε έναν άλλο κεντρικό υπολογιστή από απόσταση. Από την καρτέλα "Αρχείο", απλώς επιλέξτε "Προσθήκη σύνδεσης" και θα εμφανιστεί αυτό το παράθυρο.

Επιλέξτε "Σύνδεση με απομακρυσμένο κεντρικό υπολογιστή " και, στη συνέχεια, δώστε Όνομα κεντρικού υπολογιστή/IP του απομακρυσμένου διακομιστή. Εάν θέλετε να δημιουργήσετε σύνδεση με τον απομακρυσμένο κεντρικό υπολογιστή κάθε φορά που ξεκινά ο διαχειριστής, απλώς επιλέξτε την επιλογή "Αυτόματη σύνδεση".

9. Ας επιστρέψουμε στον localhost μας, πριν δημιουργήσετε μια νέα εικονική μηχανή θα πρέπει να αποφασίσετε πού θα αποθηκευτούν τα αρχεία;! Με άλλα λόγια, θα πρέπει να δημιουργήσετε τον Δίσκο τόμου (Εικονικός δίσκος/Εικόνα δίσκου ) για την εικονική σας μηχανή.

Κάνοντας δεξί κλικ στο localhost και επιλέγοντας "Λεπτομέρειες " και, στη συνέχεια, επιλέξτε την καρτέλα "Αποθήκευση".

10. Στη συνέχεια, πατήστε το κουμπί "Νέος τόμος ", μετά πληκτρολογήστε το όνομα του νέου σας εικονικού δίσκου (Δίσκος τόμου) και εισαγάγετε το μέγεθος που θέλετε/χρειάζεστε στην ενότητα "Μέγιστη χωρητικότητα".

Το μέγεθος εκχώρησης είναι το πραγματικό μέγεθος για το δίσκο σας, το οποίο θα εκχωρηθεί αμέσως από τον φυσικό σας δίσκο μετά την ολοκλήρωση των βημάτων.

Σημείωση: Αυτή είναι μια σημαντική τεχνολογία στον τομέα διαχείρισης αποθηκευτικού χώρου που ονομάζεται "λεπτή παροχή". Χρησιμοποιούσε για να εκχωρήσει μόνο το χρησιμοποιημένο μέγεθος αποθήκευσης, ΟΧΙ όλο το διαθέσιμο μέγεθος.

Για παράδειγμα, δημιουργήσατε εικονικό δίσκο με μέγεθος 60G, αλλά στην πραγματικότητα χρησιμοποιήσατε μόνο 20G, χρησιμοποιώντας αυτήν την τεχνολογία το μέγεθος που εκχωρείται από τον φυσικό σας σκληρό δίσκο θα είναι 20G όχι 60G.

Με άλλα λόγια, το εκχωρημένο φυσικό μέγεθος θα κατανεμηθεί δυναμικά ανάλογα με το πραγματικό μέγεθος που χρησιμοποιείται. Θα μπορούσατε να βρείτε περισσότερες πληροφορίες με λεπτομέρειες στο VMWare vStorage Thin Provisioning.

11. Θα σημειώσετε ότι μια ετικέτα του νέου δίσκου τόμου έχει εμφανιστεί στη λίστα.

Θα πρέπει επίσης να παρατηρήσετε τη διαδρομή της νέας εικόνας δίσκου (Volume Disk), από προεπιλογή θα βρίσκεται στην περιοχή /var/lib/libvirt/images, μπορείτε να την επαληθεύσετε χρησιμοποιώντας την ακόλουθη εντολή.

[root@server Downloads]# ls -l /var/lib/libvirt/images
-rw-------. 1 root root 10737418240 Jan  3 16:47 vm1Storage.img

12. Τώρα, είμαστε έτοιμοι να δημιουργήσουμε την εικονική μας μηχανή. Ας πατήσουμε το κουμπί "VM" στο κύριο παράθυρο, θα εμφανιστεί αυτό το παράθυρο του οδηγού.

Επιλέξτε τη μέθοδο εγκατάστασης που θα χρησιμοποιήσετε για να δημιουργήσετε την εικονική μηχανή. Προς το παρόν θα χρησιμοποιήσουμε Τοπικά μέσα εγκατάστασης, αργότερα θα συζητήσουμε τις υπόλοιπες μεθόδους.

13. Τώρα ήρθε η ώρα να καθορίσουμε ποια μέσα τοπικής εγκατάστασης θα χρησιμοποιηθούν, έχουμε δύο επιλογές:

  1. Από φυσικό [CDROM/DVD].
  2. Από εικόνα ISO.

Για το σεμινάριο μας, ας χρησιμοποιήσουμε τη μέθοδο εικόνας ISO, επομένως θα πρέπει να παρέχετε τη διαδρομή της εικόνας ISO σας.

Σημαντικό: Δυστυχώς, υπάρχει ένα πραγματικά ανόητο σφάλμα για το οποίο χρησιμοποιεί το RHEL/CentOS7. Αυτό το σφάλμα σάς εμποδίζει να εγκαταστήσετε χρησιμοποιώντας φυσικό [CDROM/DVD], θα βρείτε ότι η επιλογή είναι γκρι έτσι.

Και αν κρατήσετε τον κέρσορα πάνω του, θα εμφανιστεί αυτό το μήνυμα σφάλματος.

Μέχρι τώρα δεν υπάρχει επίσημη/άμεση λύση για αυτό το σφάλμα, θα μπορούσατε να βρείτε περισσότερες πληροφορίες για το ίδιο στη διεύθυνση https://bugzilla.redhat.com.

14. Ο χώρος αποθήκευσης έχει επιστρέψει, θα χρησιμοποιήσουμε τον εικονικό δίσκο που δημιουργήσαμε νωρίς για να εγκαταστήσουμε την εικονική μηχανή σε αυτόν. Θα είναι όπως φαίνεται.

15. Το τελευταίο βήμα που σας ρωτά σχετικά με το όνομα της εικονικής σας μηχανής και άλλες σύνθετες επιλογές σας επιτρέπει να το συζητήσουμε αργότερα.

Εάν θέλετε να αλλάξετε κάποια διαμόρφωση ή να κάνετε κάποια προσαρμογή, απλώς ελέγξτε την επιλογή "Προσαρμογή διαμόρφωσης πριν από την εγκατάσταση". Στη συνέχεια, κάντε κλικ στο ολοκλήρωση και περιμένετε δευτερόλεπτα, θα εμφανιστεί η κονσόλα ελέγχου για να το διαχειριστεί το Guest OS σας

συμπέρασμα

Τώρα μάθατε τι είναι το KVM, πώς να διαχειρίζεστε την εικονική σας πλατφόρμα χρησιμοποιώντας εργαλεία GUI, πώς να αναπτύσσετε την εικονική μηχανή χρησιμοποιώντας το και άλλα φοβερά πράγματα.

Αν και αυτό δεν είναι το τέλος του άρθρου, στα προσεχή άρθρα μας, θα συζητήσουμε άλλα σημαντικά θέματα που σχετίζονται με το KVM. Λερώστε τα χέρια σας χρησιμοποιώντας τις προηγούμενες γνώσεις και ετοιμαστείτε για το επόμενο μέρος…..