GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie Linux KVM und erstellen eine Gast-VM mit Beispielen

KVM steht für Kernel-based Virtual Machine.

Wie der Name schon sagt, handelt es sich hierbei um eine Kernel-basierte Virtualisierungstechnologie für Linux-Betriebssysteme auf Hardware, die Virtualisierung unterstützt.

Die Gastbetriebssysteme können vollständig virtualisiert oder paravirtualisiert sein.

Paravirtualisierung ermöglicht die Ausführung mehrerer Betriebssysteme auf einem Hardwaresatz, indem Ressourcen wie Prozessoren und Arbeitsspeicher effektiv genutzt werden. Bei der Para-Virtualisierung wird das Betriebssystem so modifiziert, dass es mit einer virtuellen Maschine arbeitet, wodurch die Ausführungszeit minimiert wird, die erforderlich ist, um die Operationen auszuführen, die sonst in einer virtuellen Umgebung schwierig auszuführen wären.

Dies ist der erste Artikel einer fortlaufenden Artikelserie über KVM.

1. Tools zum Verwalten von VMs

Das KVM-Paket enthält qemu-kvm, ein Hypervisor-spezifisches Tool zum Verwalten virtueller Maschinen.

Anstelle dieses Tools können Sie das als libvirt bekannte Softwarepaket verwenden, das eine bequemere und empfohlene Methode zum Verwalten virtueller Maschinen darstellt. Diese Software enthält eine API-Bibliothek, einen Daemon (libvirtd) und ein Befehlszeilenprogramm (virsh).

Sie können dieses libvirt-Tool verwenden, um alle vorhandenen virtuellen Maschinen zu verwalten, die auf KVM, Xen, VMWARE ESX usw. laufen. Eine vollständige Liste der unterstützten Hypervisoren finden Sie unter libvirt.

Es sind nur wenige andere Tools verfügbar, mit denen Sie Ihre Gast-VM verwalten können.

  • virt-manager (Virtual Machine Manager):Ein grafisches Verwaltungstool für VM-Gäste.
  • vm-install:Ein skriptbasiertes, menügesteuertes Dienstprogramm, das einen VM-Gast definiert und sein Betriebssystem installiert.
  • virt-viewer:Ein X-Viewer-Client für VM-Gäste, der die TLS/SSL-Verschlüsselung der x509-Zertifikatsauthentifizierung und SASL-Authentifizierung unterstützt.

2. Überprüfen Sie die Virtualisierungsunterstützung auf Ihrer Hardware

Um zu überprüfen, ob Ihre CPU die Hardware-Virtualisierung unterstützt, führen Sie den folgenden Befehl aus.

# egrep '(vmx|svm)' /proc/cpuinfo

Wenn Sie in der Ausgabe unter Flags vmx oder svm sehen, unterstützt Ihre Hardware (CPU) die Virtualisierung.

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm 
constant_tsc archrfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni 
dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 
popcnt lahf_lm tpr_shadow vnmi flexprioritpt vpid
.

3. KVM-Pakete installieren

Installieren Sie KVM-Pakete mit Ihrem Distributions-spezifischen Paketverwaltungstool (z. B. yum auf RedHat und CentOS).

# yum install kvm

Nachdem Sie das Haupt-kvm-Paket installiert haben, installieren Sie die folgenden KVM-bezogenen Pakete, die Ihnen helfen, die VMs auf Ihrem System zu verwalten.

# yum install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools

Im Folgenden sind die KVM-bezogenen Pakete aufgeführt, die auf meinem Computer installiert sind. Die Versionsnummer auf Ihrem System kann leicht abweichen.

# rpm -qa | egrep "virt|kvm|qemu"
python-virtinst-0.600.0-18.el6.noarch
qemu-img-0.12.1.2-2.415.el6.x86_64
libvirt-0.10.2-29.el6.x86_64
virt-viewer-0.5.6-8.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6.x86_64
libvirt-python-0.10.2-29.el6.x86_64
virt-manager-0.9.0-19.el6.x86_64
virt-top-1.0.4-3.15.el6.x86_64
libvirt-client-0.10.2-29.el6.x86_64
gpxe-roms-qemu-0.9.7-6.10.el6.noarch
virt-what-1.11-1.2.el6.x86_64

Nachdem die Pakete installiert sind, wird empfohlen, Ihren Computer neu zu starten, um alle KVM- und libvirt-Module zu laden, auch wenn Sie es mit dem Befehl modprobe neu laden können.

Sie können das Gastbetriebssystem mit dem Virtul Machine Manager installieren, der vm-install (für SUSE Linux) und virt-install (für RedHat).

Wenn Ihr Display eingerichtet ist (durch Excess, ReflectionX oder einige andere Display-Manager), bietet es eine grafische Oberfläche zum Erstellen eines Assistenten für virtuelle Maschinen, der Sie durch den Installationsprozess führt. Wenn die Anzeige nicht eingestellt ist, d. h. wenn die Maschine über ssh ohne X11-Weiterleitung verbunden wird, bietet vm-install einen Befehlszeilenassistenten, um interaktiv einen VM-Gast für die Installation einzurichten.

4. Netzwerkvoraussetzung zum Erstellen einer Gast-VM

Standardmäßig haben VMs nur Netzwerkzugriff auf andere VMs auf demselben Server (und auf den Host selbst). Wenn Sie möchten, dass die VMs Zugriff auf Ihr VLAN haben, müssen Sie wie hier erklärt eine Netzwerkbrücke auf dem Host erstellen.

Bearbeiten Sie /etc/sysconfig/network-scripts/ifcfg-eth0 und fügen Sie die Zeile „BRIDGE=br0“ hinzu (stellen Sie sicher, dass alle statischen IPs entfernt werden).

Erstellen Sie die Datei /etc/sysconfig/network-scripts/ifcfg-br0 und fügen Sie die Einträge wie unten gezeigt hinzu. Sie können statisch oder dhcp verwenden. Ich habe in diesem Fall eine statische IP verwendet.

DEVICE="br0"
BOOTPROTO="static"
IPADDR="xxx.xxx.xxx.xxx"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="Bridge"
NM_CONTROLLED="no"

Wenn Sie eine Firewall betreiben (wie iptables), erstellen Sie eine Regel, um überbrückten Datenverkehr zuzulassen.

5. Zusätzliche Voraussetzungen zum Erstellen einer Gast-VM

Der Standardspeicherort für die VM-Image-Dateien ist unter /var/lib/libvirt/images. Bitte stellen Sie sicher, dass unter diesem Verzeichnis ausreichend Platz vorhanden ist. Wenn nicht, können Sie die Image-Datei während der Erstellung der VM auf ein anderes Verzeichnis verweisen.

Aktivieren Sie die IP-Weiterleitung in /etc/sysctl.conf, indem Sie die folgende Zeile hinzufügen:

inet.ipv3.ip_forward=1

Wenn Sie SELinux während der Testphase ausgeführt haben, deaktivieren Sie es, indem Sie SELinux in den zulässigen Modus versetzen.

Starten Sie das System neu, nachdem die obigen Änderungen vorgenommen wurden.

6. Erstellen einer neuen Gast-VM mit virt-install

Das virt-install-Tool wird verwendet, um die VM zu erstellen. Dieses Tool kann sowohl im interaktiven als auch im nicht-interaktiven Modus verwendet werden.

Im folgenden Beispiel habe ich alle erforderlichen Werte zum Erstellen einer VM als Befehlszeilenparameter an den Befehl virt-install übergeben.

# virt-install \
 -n myRHELVM1 \
 --description "Test VM with RHEL 6" \
 --os-type=Linux \
 --os-variant=rhel6 \
 --ram=2048 \
 --vcpus=2 \
 --disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 \
 --graphics none \
 --cdrom /var/rhel-server-6.5-x86_64-dvd.iso \
 --network bridge:br0

Im obigen virt-install-Befehl:

  • n Name Ihrer virtuellen Maschine
  • Beschreibung Eine gültige Beschreibung Ihrer VM. Zum Beispiel:Anwendungsserver, Datenbankserver, Webserver usw.
  • os-Typ Betriebssystemtyp kann Linux, Solaris, Unix oder Windows sein.
  • os-Variante Verteilungstyp für den obigen os-Typ. Für Linux kann es beispielsweise rhel6, centos6, ubuntu14, suse11, fedora6 usw. sein. Für Windows kann dies win2k, win2k8, win8, win7 sein
  • Widder Speicher für die VM in MB
  • vcpu Gesamtzahl der virtuellen CPUs für die VM.
  • Festplattenpfad =/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 Pfad, in dem die VM-Image-Dateien gespeichert sind. Größe in GB. In diesem Beispiel ist diese VM-Image-Datei 10 GB groß.
  • Grafiken keine Dies weist virt-install an, anstelle des grafischen VNC-Fensters eine Textkonsole am seriellen Port der VM zu verwenden. Wenn Sie den xmanager eingerichtet haben, können Sie diesen Parameter ignorieren.
  • CD-ROM Gibt den Speicherort des Installationsabbilds an. Sie können den NFS- oder HTTP-Installationsort angeben (anstelle von –cdrom). Beispiel:–location=http://.com/pub/rhel6/x86_64/
  • Netzwerkbrücke:br0 Dieses Beispiel verwendet den Bridged-Adapter br0. Es ist auch möglich, Ihr eigenes Netzwerk an einem bestimmten Port anstelle eines Bridged-Adapters zu erstellen. Wenn Sie NAT verwenden möchten, verwenden Sie etwas wie unten für den Netzwerkparameter mit dem Namen des virtuellen Netzwerks, der als VMnetwork1 bekannt ist. Alle Netzwerkkonfigurationsdateien befinden sich unter /etc/libvirt/qemu/networks/ für die virtuellen Maschinen. Beispiel:–network network=VMnetwork1

7. Virtuelle Maschinen auflisten

Sie können das Grub-Menü mit „console=tty0 console=ttyS0,115200“ bearbeiten, um die Konsole für Ihren Bildschirm während des Installationsvorgangs in Ihrem SSH-Fenster anzuzeigen. Auf diese Weise können Sie das Betriebssystem über die geführte Installation installieren. Andernfalls können Sie den X-Server für die Anzeige verwenden.

Der folgende Befehl zeigt alle virtuellen Maschinen an, die auf Ihrem Betriebssystem installiert sind. In diesem Beispiel haben wir zwei VMs auf diesem System installiert.

# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     dev-dev-vm                     running
 2     myRHELVM1                      running

8. VM-Konfigurationsdatei bearbeiten

Nachdem die VM erstellt wurde, sehen Sie die VM-Konfigurationsdatei am folgenden Speicherort. Der Name der Konfigurationsdatei ist der Name der VM mit der Erweiterung .xml.

# ls -l /etc/libvirt/qemu/myRHELVM1.xml
-rw-------. 1 root root 2109 Oct 15 12:30 /etc/libvirt/qemu/myRHELVM1.xml

Sie sollten diese Datei nicht manuell bearbeiten und stattdessen den Befehl virsh edit verwenden. Gehen Sie wie folgt vor, um die Domäne (virtuelle Maschine) zu bearbeiten:

virsh edit myRHELVM1

9. Verbinden Sie sich mit der VM-Konsole

Verwenden Sie den folgenden Befehl, um eine Verbindung zur Konsole der virtuellen Maschine herzustellen. Sie können „Strg + ]“ verwenden, um die VM-Konsole zu verlassen.

virsh console myRHELVM1

Wenn auf Ihrem Host kein X-Server ausgeführt wird, ist die Verbindung zu einer seriellen VM-Konsole möglicherweise die einzige Möglichkeit, sich bei einer VM anzumelden, wenn kein Netzwerk verfügbar ist.

Das Einrichten des Zugriffs auf die Konsole einer VM unterscheidet sich nicht von einem physischen Server, bei dem Sie einfach die richtigen Kernel-Boot-Parameter zur VM hinzufügen.

Hängen Sie beispielsweise für eine RHEL-VM (oder CentOS-VM) die folgenden Parameter an die Kernel-Boot-Zeile in /etc/grub.conf an und starten Sie dann die VM neu.

console=tty0 console=ttyS0,115200

Alternativ können Sie auch die folgenden Einträge zur Datei /etc/grub.conf hinzufügen.

serial --unit=0 --speed=115200
terminal --timeout=5 serial console

10. VM-Informationen anzeigen

Um die VM-Informationen anzuzeigen, verwenden Sie den folgenden Befehl:

# virsh dominfo myRHELVM1
Id:             5
Name:           myRHELVM1
UUID:           58083ae7-51db-50c3-64d8-bc4c49f642d0
OS Type:        Linux
State:          running
CPU(s):         2
CPU time:       207.6s
Max memory:     2097152 KiB
Used memory:    2097152 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: selinux
Security DOI:   0
Security label: system_u:system_r:svirt_t:s0:c698,c788 (permissive)

11. CPU- und Speicherauslastung der VM anzeigen

Um die CPU- und Speicherauslastung der virtuellen Maschine anzuzeigen, verwenden Sie den Befehl virt-top wie unten gezeigt.

# virt-top
virt-top 07:14:44 - x86_64 8/8CPU 1600MHz 32094MB
3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 0.1%  Mem: 4096 MB (4096 MB by guests)
   ID S RDRQ WRRQ RXBY TXBY %CPU %MEM    TIME   NAME
    5 R    0    0 1546    0  0.0  6.0   3:29.55 dev-dev-vm
    8 R    0    0 1546    0  0.0  6.0   1:42.17 myRHELVM2
    -

12. VM mit virsh herunterfahren, neu starten oder starten

Gehen Sie wie folgt vor, um die VM herunterzufahren:

# virsh shutdown myRHELVM1
Domain myRHELVM1 is being shutdown

Gehen Sie wie folgt vor, um die VM neu zu starten:

# virsh reboot myRHELVM1

Gehen Sie wie folgt vor, um die virtuelle Maschine zu starten oder einzuschalten. Sobald die VM gestartet ist, führen Sie „virsh list –all“ aus, um alle laufenden VMs anzuzeigen.

# virsh start myRHELVM1
Domain myRHELVM1 started

Im nächsten Artikel der KVM-Serie behandeln wir weitere Details zum Bearbeiten und Manipulieren von Konfigurationen auf einer einzelnen VM.


Linux
  1. So verwenden Sie die Befehle „cat“ und „tac“ mit Beispielen in Linux

  2. So installieren und testen Sie Ansible unter Linux

  3. Flatpak unter Linux:Was es ist und wie man Apps damit installiert

  4. So installieren und verwenden Sie Flatpak unter Linux

  5. So installieren Sie CVS und erstellen ein CVS-Repository auf einem Linux-Server

Erstellen und bearbeiten Sie Schriftarten unter Linux mit BirdFont

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

So installieren und verwenden Sie Alpine mit Gmail IMAP unter Linux

So installieren und verwenden Sie den Ack-Befehl unter Linux mit Beispielen

So installieren Sie Dig unter Linux mit Befehlszeilenbeispielen

So installieren und konfigurieren Sie KVM unter Ubuntu Linux