linux-rhel-centos-fedora virtualization kvm libvirt rhel cockpit

Enterprise Virtualization: KVM & Cockpit on RHEL (Artikel 118)

Professionelle Virtualisierung unter RHEL. Erfahren Sie den Umgang mit Cockpit-Machines, das Härten von KVM-Instanzen und fortgeschrittene Performance-Optimierungen.

# Enterprise Virtualization on RHEL: KVM im Unternehmenseinsatz

TL;DR / Management Summary RHEL ist die Geburtsstätte von KVM. Während wir unter Debian oft virt-manager nutzen, setzt Red Hat nun voll auf Cockpit zur grafischen Verwaltung und Libvirt für die CLI-Automatisierung. Ein Enterprise-Setup nutzt zudem Hugepages für den RAM, vHost-Net für den Netzwerkdurchsatz und stellt sicher, dass VMs durch SELinux (sVirt) voneinander isoliert sind.


# 1. Einführung & Architektur

Der RHEL Virtualisierungs-Stack.

Red Hat hat den virt-manager als veraltet (deprecated) markiert. Die Zukunft des lokalen VM-Managements ist Web-basiert.

# Architektur-Übersicht (Mermaid)

graph TD
    A[Admin: Browser / CLI] -->|HTTPS 9090| B[Cockpit Web UI]
    A -->|SSH| C[virsh CLI]
    B --> D[libvirtd Daemon]
    C --> D
    D --> E[KVM Kernel Module]
    D --> F[QEMU Emulator]
    E/F --> G[VM: Windows / Linux]
    H[SELinux: sVirt] --> G

# 2. Installation & Web-Management

Cockpit vorbereiten.

# Pakete installieren

sudo dnf install cockpit cockpit-machines libvirt
sudo systemctl enable --now libvirtd
sudo systemctl enable --now cockpit.socket

Greifen Sie nun über https://<server_ip>:9090 auf den Bereich “Virtual Machines” zu.


# 3. Performance Tuning: Der Enterprise-Schliff

Wo Red Hat glänzt.

# Hugepages (RAM Optimierung)

Standardmäßig nutzt Linux 4KB Memory-Pages. Für große VMs (Datenbanken) sind Hugepages (2MB oder 1GB) effizienter, da sie die CPU-TLB-Last senken.

# Reserviere 2048 Hugepages (2MB) = 4GB RAM
echo 2048 > /proc/sys/vm/nr_hugepages

# CPU Pinning

Verhindern Sie, dass VM-Prozesse zwischen physischen Kernen hin- und herspringen.

<!-- In der virsh XML -->
<cputune>
  <vcpupin vcpu='0' cpuset='1'/>
  <vcpupin vcpu='1' cpuset='2'/>
</cputune>

# 4. Sicherheit: sVirt (SELinux Isolation)

Schutz vor VM-Escape.

RHEL nutzt sVirt, um jede VM mit einem eigenen SELinux-Kontext zu versehen (ähnlich wie Container, siehe Artikel 108).

  • Vorteil: Selbst wenn ein Angreifer aus der VM ausbricht und Root-Rechte auf dem QEMU-Prozess erlangt, verhindert SELinux den Zugriff auf das Dateisystem des Hosts oder andere VMs.

# Status prüfen

ps -eZ | grep qemu
# Output: system_u:system_r:svirt_t:s0:c12,c45 ...

# 5. Troubleshooting & “War Stories”

Wenn die VM hakt.

# Story 1: “Der VNC-Tastatur Albtraum”

Symptom: In der Cockpit-Konsole (VNC) passen die Sonderzeichen nicht, obwohl das OS der VM auf ‘Deutsch’ steht. Ursache: Das Keymap-Setting in der Libvirt-XML steht auf en-us (Standard). Lösung: virsh edit <name> -> <graphics type='vnc' port='-1' autoport='yes' keymap='de'/>.

# Story 2: “Disk-I/O Hänger bei Snapshots”

Symptom: Während eines Backups (Snapshot) friert die Datenbank in der VM für 10-20 Sekunden ein. Ursache: Das QCOW2-Dateisystem muss massiv Metadaten schreiben, während der Hypervisor den Disk-State puffert. Lösung: Nutzen Sie RAW-Devices auf einem LVM-Thin-Pool oder ZFS. KVM kann Snapshots dann direkt auf der Storage-Ebene machen, was deutlich schneller ist als auf File-Ebene.


# 6. Fazit & Empfehlung

  • GUI: Gewöhnen Sie sich an Cockpit. Es ist der neue Standard für RHEL-Admins.
  • Automation: Nutzen Sie Terraform (siehe Artikel 051) mit dem Libvirt-Provider für reproduzierbare VM-Deployments.
  • Monitoring: Nutzen Sie virt-top, um die Ressourcennutzung Ihrer VMs auf der CLI zu überwachen.

# Anhang: Cheatsheet

Aufgabe RHEL Befehl
VM Liste virsh list --all
Cockpit Start systemctl start cockpit
Resource Monitor virt-top
VM Log-Datei /var/log/libvirt/qemu/<name>.log
XML Export virsh dumpxml <name> > backup.xml
Host Info virt-host-validate