RHCSA Series: Essentials of Virtualization and Guest Administration with KVM - Part 15


Αν αναζητήσετε τη λέξη virtualize σε ένα λεξικό, θα διαπιστώσετε ότι σημαίνει "να δημιουργήσετε μια εικονική (και όχι πραγματική) έκδοση κάτι ". Στην πληροφορική, ο όρος εικονικοποίηση αναφέρεται στη δυνατότητα εκτέλεσης πολλαπλών λειτουργικών συστημάτων ταυτόχρονα και απομονωμένων το ένα από το άλλο, πάνω από το ίδιο φυσικό σύστημα (υλισμικό), γνωστό στο σχήμα εικονικοποίησης ως κεντρικός υπολογιστής.

Μέσω της χρήσης της οθόνης εικονικής μηχανής (επίσης γνωστής ως hypervisor), οι εικονικές μηχανές (που αναφέρονται ως επισκέπτες) παρέχονται εικονικοί πόροι (π.χ. CPU, RAM, αποθήκευση, δίκτυο διεπαφές, για να αναφέρουμε μερικές) από το υποκείμενο υλικό.

Έχοντας αυτό κατά νου, είναι ξεκάθαρο ότι ένα από τα κύρια πλεονεκτήματα της εικονικοποίησης είναι η εξοικονόμηση κόστους (σε εξοπλισμό και υποδομή δικτύου και από την άποψη της προσπάθειας συντήρησης) και η σημαντική μείωση του φυσικού χώρου που απαιτείται για να φιλοξενήσει όλο το απαραίτητο υλικό.

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

Λάβετε υπόψη ότι το παρόν άρθρο προορίζεται να αποτελέσει ένα σημείο εκκίνησης για να μάθετε τα βασικά της εικονικοποίησης στο RHEL 7 χρησιμοποιώντας KVM (Εικονική μηχανή που βασίζεται στον πυρήνα) με βοηθητικά προγράμματα γραμμής εντολών και όχι -Συζήτηση σε βάθος του θέματος.

Επαλήθευση απαιτήσεων υλικού και εγκατάσταση πακέτων

Για να ρυθμίσετε την εικονικοποίηση, η CPU σας πρέπει να την υποστηρίζει. Μπορείτε να επαληθεύσετε εάν το σύστημά σας πληροί τις απαιτήσεις με την ακόλουθη εντολή:


grep -E 'svm|vmx' /proc/cpuinfo

Στο παρακάτω στιγμιότυπο οθόνης μπορούμε να δούμε ότι το τρέχον σύστημα (με μικροεπεξεργαστή AMD) υποστηρίζει εικονικοποίηση, όπως υποδεικνύεται από το svm. Αν είχαμε επεξεργαστή Intel, θα βλέπαμε αντ' αυτού vmx στα αποτελέσματα της παραπάνω εντολής.

Επιπλέον, θα χρειαστεί να έχετε ενεργοποιημένες τις δυνατότητες εικονικοποίησης στο υλικολογισμικό του κεντρικού υπολογιστή σας (BIOS ή UEFI).

Τώρα εγκαταστήστε τα απαραίτητα πακέτα:

  1. Το qemu-kvm είναι ένας εικονικοποιητής ανοιχτού κώδικα που παρέχει εξομοίωση υλικού για τον υπερεπόπτη KVM, ενώ το qemu-img παρέχει ένα εργαλείο γραμμής εντολών για το χειρισμό εικόνων δίσκου.
  2. Το libvirt περιλαμβάνει τα εργαλεία για την αλληλεπίδραση με τις δυνατότητες εικονικοποίησης του λειτουργικού συστήματος.
  3. Το libvirt-python περιέχει μια λειτουργική μονάδα που επιτρέπει σε εφαρμογές γραμμένες σε Python να χρησιμοποιούν τη διεπαφή που παρέχεται από το libvirt.
  4. libguestfs-tools: διάφορα εργαλεία γραμμής εντολών διαχειριστή συστήματος για εικονικές μηχανές.
  5. virt-install: άλλα βοηθητικά προγράμματα γραμμής εντολών για διαχείριση εικονικών μηχανών.

yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Μόλις ολοκληρωθεί η εγκατάσταση, φροντίστε να ξεκινήσετε και να ενεργοποιήσετε την υπηρεσία libvirtd:


systemctl start libvirtd.service
systemctl enable libvirtd.service

Από προεπιλογή, κάθε εικονική μηχανή θα μπορεί να επικοινωνεί μόνο με τα υπόλοιπα στον ίδιο φυσικό διακομιστή και με τον ίδιο τον κεντρικό υπολογιστή. Για να επιτρέψουμε στους επισκέπτες να φτάσουν σε άλλα μηχανήματα εντός του LAN μας και επίσης στο Διαδίκτυο, πρέπει να δημιουργήσουμε μια διεπαφή γέφυρας στον κεντρικό μας υπολογιστή (π.χ. br0, για παράδειγμα) με:

1. προσθέτοντας την ακόλουθη γραμμή στην κύρια διαμόρφωση NIC (πιθανότατα /etc/sysconfig/network-scripts/ifcfg-enp0s3):


BRIDGE=br0

2. δημιουργία του αρχείου διαμόρφωσης για br0 (/etc/sysconfig/network-scripts/ifcfg-br0) με αυτά τα περιεχόμενα (σημειώστε ότι ενδέχεται να χρειαστεί να αλλάξετε τη διεύθυνση IP, τη διεύθυνση πύλης και τις πληροφορίες DNS):


DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. τέλος, ενεργοποιώντας την προώθηση πακέτων κάνοντας, στο /etc/sysctl.conf,


net.ipv4.ip_forward = 1

και φόρτωση των αλλαγών στην τρέχουσα διαμόρφωση του πυρήνα:


sysctl -p

Λάβετε υπόψη ότι μπορεί επίσης να χρειαστεί να πείτε στο τείχος προστασίας ότι αυτό το είδος επισκεψιμότητας θα πρέπει να επιτρέπεται. Θυμηθείτε ότι μπορείτε να ανατρέξετε στο άρθρο σχετικά με αυτό το θέμα στην ίδια σειρά (Μέρος 11: Έλεγχος επισκεψιμότητας δικτύου με χρήση τείχους προστασίας και Iptables), εάν χρειάζεστε βοήθεια για να το κάνετε αυτό.