Website-Suche

RHCSA-Reihe: Grundlagen der Virtualisierung und Gastverwaltung mit KVM – Teil 15


Wenn Sie das Wort „virtualisieren“ in einem Wörterbuch nachschlagen, werden Sie feststellen, dass es „eine virtuelle (und nicht eine tatsächliche) Version von etwas erstellen bedeutet. In der Informatik bezieht sich der Begriff „Virtualisierung“ auf die Möglichkeit, mehrere Betriebssysteme gleichzeitig und isoliert voneinander auf demselben physischen (Hardware-)System auszuführen, das im Virtualisierungsschema als Host bezeichnet wird.

Durch den Einsatz des Virtual Machine Monitors (auch bekannt als Hypervisor) werden virtuellen Maschinen (sogenannte Gäste) virtuelle Ressourcen (d. h. CPU, RAM, Speicher, Netzwerk) zur Verfügung gestellt Schnittstellen (um nur einige zu nennen) von der zugrunde liegenden Hardware.

Vor diesem Hintergrund liegt es auf der Hand, dass einer der Hauptvorteile der Virtualisierung in Kosteneinsparungen (bei der Ausrüstung und Netzwerkinfrastruktur sowie im Hinblick auf den Wartungsaufwand) und einer erheblichen Reduzierung des physischen Platzbedarfs für die Unterbringung der gesamten erforderlichen Hardware besteht.

Da diese kurze Anleitung nicht alle Virtualisierungsmethoden abdecken kann, empfehle ich Ihnen, für weitere Details zu diesem Thema die in der Zusammenfassung aufgeführte Dokumentation zu Rate zu ziehen.

Bitte beachten Sie, dass der vorliegende Artikel als Ausgangspunkt zum Erlernen der Grundlagen der Virtualisierung in RHEL 7 mithilfe von KVM (Kernel-based Virtual Machine) mit Befehlszeilendienstprogrammen gedacht ist und nicht als Einführung gedacht ist -Vertiefte Diskussion des Themas.

Überprüfen der Hardwareanforderungen und Installieren von Paketen

Um die Virtualisierung einzurichten, muss Ihre CPU diese unterstützen. Mit dem folgenden Befehl können Sie überprüfen, ob Ihr System die Anforderungen erfüllt:


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

Im folgenden Screenshot können wir sehen, dass das aktuelle System (mit einem AMD-Mikroprozessor) Virtualisierung unterstützt, wie durch svm angegeben. Wenn wir einen Intel-basierten Prozessor hätten, würden wir stattdessen vmx in den Ergebnissen des obigen Befehls sehen.

Darüber hinaus müssen in der Firmware Ihres Hosts Virtualisierungsfunktionen aktiviert sein (BIOS oder UEFI).

Installieren Sie nun die notwendigen Pakete:

  1. qemu-kvm ist ein Open-Source-Virtualisierungstool, das Hardware-Emulation für den KVM-Hypervisor bereitstellt, während qemu-img ein Befehlszeilentool zum Bearbeiten von Festplatten-Images bereitstellt.
  2. libvirt enthält die Tools zur Interaktion mit den Virtualisierungsfunktionen des Betriebssystems.
  3. libvirt-python enthält ein Modul, das es in Python geschriebenen Anwendungen ermöglicht, die von libvirt bereitgestellte Schnittstelle zu verwenden.
  4. libguestfs-tools: verschiedene Systemadministrator-Befehlszeilentools für virtuelle Maschinen.
  5. virt-install: andere Befehlszeilen-Dienstprogramme für die Verwaltung virtueller Maschinen.

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

Stellen Sie nach Abschluss der Installation sicher, dass Sie den Dienst libvirtd starten und aktivieren:


systemctl start libvirtd.service
systemctl enable libvirtd.service

Standardmäßig kann jede virtuelle Maschine nur mit den anderen auf demselben physischen Server und mit dem Host selbst kommunizieren. Damit die Gäste andere Maschinen in unserem LAN und auch im Internet erreichen können, müssen wir in unserem Host eine Bridge-Schnittstelle einrichten (z. B. br0), indem wir

1. Hinzufügen der folgenden Zeile zu unserer Haupt-NIC-Konfiguration (höchstwahrscheinlich /etc/sysconfig/network-scripts/ifcfg-enp0s3):


BRIDGE=br0

2. Erstellen der Konfigurationsdatei für br0 (/etc/sysconfig/network-scripts/ifcfg-br0) mit diesen Inhalten (beachten Sie, dass Sie Möglicherweise müssen Sie die IP-Adresse, Gateway-Adresse und DNS-Informationen ändern):


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. schließlich aktivieren Sie die Paketweiterleitung, indem Sie in /etc/sysctl.conf Folgendes vornehmen:


net.ipv4.ip_forward = 1

und Laden der Änderungen an der aktuellen Kernel-Konfiguration:


sysctl -p

Beachten Sie, dass Sie firewalld möglicherweise auch mitteilen müssen, dass diese Art von Datenverkehr zugelassen werden soll. Denken Sie daran, dass Sie den Artikel zu diesem Thema in derselben Serie (Teil 11: Netzwerkverkehrskontrolle mit FirewallD und Iptables) lesen können, wenn Sie dabei Hilfe benötigen.