Modul 9 von 16 · 📖 10 min Lesezeit · ⏱ 60 min gesamt
FUTO 09 KVM Virtualisierung
Inhaltsverzeichnis (6 Abschnitte)
FUTO 09 KVM Virtualisierung
In diesem Modul erlernen Sie die Grundlagen der Virtualisierung mit KVM/QEMU unter Linux. Sie erfahren, wie Sie virtuelle Maschinen effizient erstellen und verwalten, und erhalten Einblicke in die wichtigsten Werkzeuge wie libvirt, virsh und virt-manager. Der Fokus liegt auf praktischer Anwendung für den Einsatz in kleinen und mittelständischen Unternehmen.
Sie werden verstehen, wie KVM als Hypervisor funktioniert, wie Sie virtuelle Hardware mit virtio-Treibern optimieren und wie Sie Cloud-init für die automatische Initialisierung von VMs nutzen. Nach Abschluss dieses Moduls können Sie eigene virtuelle Infrastrukturen aufsetzen und verwalten.
Konzepte und Hintergrund
- KVM/QEMU
- Kernel-based Virtual Machine (KVM) ist ein Hypervisor, der direkt im Linux-Kernel integriert ist. QEMU (Quick Emulator) stellt die Emulation der Hardware bereit. Zusammen ermöglichen sie vollvirtualisierte Maschinen mit nahezu nativer Leistung.
- libvirt
- Die libvirt-API ist eine Sammlung von Tools zur Verwaltung von Virtualisierungsplattformen. Sie bietet ein einheitliches Interface für verschiedene Hypervisors und ist die Grundlage für viele Verwaltungswerkzeuge wie virsh und virt-manager.
- virtio
- Virtio ist ein Standard für paravirtualisierte Geräte in virtuellen Maschinen. Diese speziellen Treiber ermöglichen eine deutlich höhere Leistung bei Netzwerk- und Festplattenzugriffen, da sie den Overhead der Emulation reduzieren.
- cloud-init
- cloud-init ist ein Standard für die Initialisierung von Cloud-Instanzen. In VMs sorgt es für die automatische Konfiguration beim ersten Start, wie das Setzen von Hostnamen, Erstellen von Benutzern oder Einbinden von SSH-Schlüsseln.
Architektur-Diagramm
flowchart TB
Host[Host-System
Linux mit KVM] -->|Hardware-Abstraktion| Hypervisor[KVM Hypervisor]
Hypervisor --> VM1[VM 1
Debian]
Hypervisor --> VM2[VM 2
Ubuntu]
Hypervisor --> VM3[VM 3
CentOS]
VM1 -->|virtio| Netz[Netzwerk-Interface]
VM2 -->|virtio| Netz
VM3 -->|virtio| Netz
VM1 -->|virtio| Speicher[Virtuelle Festplatte]
VM2 -->|virtio| Speicher
VM3 -->|virtio| Speicher
Praktische Schritte
- Installieren Sie die notwendigen Pakete mit
. Dies installiert den KVM-Hypervisor, die libvirt-Verwaltungstools und die grafische Oberfläche.sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager - Fügen Sie Ihren Benutzer zur libvirt-Gruppe hinzu mit
. Dies ermöglicht Ihnen die Verwaltung von VMs ohne Root-Rechte.sudo usermod -aG libvirt $USER - Starten und aktivieren Sie den libvirt-Daemon mit
. Der Daemon ist für die Verwaltung der virtuellen Maschinen zuständig.sudo systemctl enable --now libvirtd - Erstellen Sie eine virtuelle Festplatte mit
. Das qcow2-Format ermöglicht Snapshots und effiziente Speichernutzung.qemu-img create -f qcow2 /var/lib/libvirt/images/debian.qcow2 20G - Installieren Sie eine VM mit virt-install über die Konsole oder verwenden Sie virt-manager für die grafische Installation. Für eine Debian-VM im Netzwerk "default" verwenden Sie:
.virt-install --name debian --memory 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/debian.qcow2,size=20 --os-variant debian10 --network network=default --graphics spice - Konfigurieren Sie die VM mit cloud-init für die automatische Initialisierung. Erstellen Sie eine user-data-Datei und binden Sie sie bei der Installation ein:
.virt-install --cloudinit user-data=cloud-init.cfg ... - Verwalten Sie VMs mit virsh, der Kommandozeilen-Schnittstelle zu libvirt. Starten Sie eine VM mit
und erhalten Sie Informationen mitvirsh start debian
.virsh dominfo debian - Erstellen Sie Snapshots von VMs mit
. Snapshots ermöglichen das schnelle Zurücksetzen eines VM-Zustands.virsh snapshot-create-as debian pre-upgrade
Häufige Fallstricke
Weiterführende Ressourcen
- Offizielle libvirt-Dokumentation
- KVM-Homepage mit Wiki und HOWTOs
- Red Hat Virtualisierungsdokumentation (auch für andere Distributionen nützlich)
- Offizielle cloud-init-Dokumentation
- Virt-Manager Projektseite
Wissens-Check
Vier Fragen zur Selbstkontrolle. Klicken Sie jede Frage an, um die richtige Antwort und Erklärung zu sehen.
Was ist der Hauptunterschied zwischen KVM und QEMU in der Virtualisierung?
- A) KEMU ist eine Abkürzung für Kernel-based Emulation Utility, während QEMU für Quick Emulator steht.
- B) KVM ist ein Hypervisor, der direkt im Linux-Kernel integriert ist, während QEMU die Hardware-Emulation bereitstellt.
- C) KVM ist nur für Windows-Hosts geeignet, während QEMU ausschließlich auf Linux läuft.
- D) KVM dient zur Verwaltung von virtuellen Maschinen, während QEMU ausschließlich zur Installation von Betriebssystemen verwendet wird.
Richtige Antwort: B. KVM ist ein Kernel-basierter Hypervisor, während QEMU die Hardware-Emulation bereitstellt. Option A ist falsch, da es keine Abkürzung KEMU gibt. Option C ist falsch, da KVM primär für Linux-Hosts entwickelt wurde. Option D ist falsch, da KVM nicht direkt zur Verwaltung dient, sondern die Virtualisierungsebene bereitstellt.
Welcher Vorteil bietet der Einsatz von virtio-Treibern in virtuellen Maschinen?
- A) Sie ermöglichen die Nutzung von 3D-Grafikbeschleunigung in VMs.
- B) Sie reduzieren den Overhead bei Netzwerk- und Festplattenzugriffen durch paravirtualisierte Geräte.
- C) Sie erlauben die direkte Verbindung von physischen USB-Geräten an die VM ohne Umweg über den Host.
- D) Sie ermöglichen die Live-Migration von VMs ohne Unterbrechung des Netzwerkverkehrs.
Richtige Antwort: B. Virtio-Treiber reduzieren den Overhead durch paravirtualisierte Geräte, was zu besserer Leistung bei I/O-Operationen führt. Option A bezieht sich auf GPU-Passthrough, nicht auf virtio. Option C beschreibt USB-Passthrough, nicht virtio. Option D ist zwar ein Vorteil von KVM, aber nicht spezifisch für virtio-Treiber.
Was ist der Hauptzweck von cloud-init in einer virtuellen Maschine?
- A) Die Überwachung der Systemleistung und Ressourcennutzung der VM.
- B) Die automatische Initialisierung und Konfiguration der VM beim ersten Start.
- C) Die Sicherung und Wiederherstellung von VM-Konfigurationen.
- D) Die Verwaltung von Netzwerkbrücken und VLAN-Konfigurationen auf dem Host-System.
Richtige Antwort: B. cloud-init sorgt für die automatische Konfiguration bei der ersten Initialisierung einer VM. Option A beschreibt Monitoring-Tools, nicht cloud-init. Option C bezieht sich auf Backup-Lösungen, nicht cloud-init. Option D betrifft Netzwerkkonfiguration auf Host-Ebene, nicht die VM-Initialisierung.
Was ist die Hauptfunktion der libvirt-API in einer KVM-Umgebung?
- A) Die direkte Emulation von physischer Hardware für die virtuellen Maschinen.
- B) Die Bereitstellung eines einheitlichen Interfaces zur Verwaltung verschiedener Hypervisors.
- C) Die Optimierung der CPU-Zuweisung für verschiedene VMs basierend auf ihrer Auslastung.
- D) Die Verschlüsselung von VM-Images und Datenübertragung zwischen Host und VMs.
Richtige Antwort: B. libvirt bietet ein einheitliches Interface zur Verwaltung verschiedener Hypervisors. Option A beschreibt die Funktion von QEMU, nicht libvirt. Option C bezieht sich auf CPU-Scheduling-Funktionen des Host-Kernels, nicht libvirt. Option D betrifft Sicherheitsfunktionen, die nicht im Kern von libvirt implementiert sind.