RHEL in Proxmox: VM Optimization (Artikel 120)
Der ultimative Guide für RHEL-Gäste unter Proxmox VE. Erfahren Sie alles über Treiber-Optimierung, Subscription-Handling in dynamischen Umgebungen und Performance-Tuning.
# RHEL on Proxmox: Enterprise-Stabilität im Hypervisor
TL;DR / Management Summary Wer Red Hat Enterprise Linux (RHEL) auf Proxmox betreibt, will maximale Ausfallsicherheit. Ein Standard-Install reicht hier nicht aus. Wir benötigen den QEMU Guest Agent für konsistente Snapshots, die VirtIO-Pipeline für I/O-Performance und eine Strategie für das Subscription-Management beim Klonen von VMs. Dieses Modul zeigt, wie Sie RHEL so konfigurieren, dass es sich nahtlos in den Proxmox-Cluster integriert.
# 1. Einführung & Architektur
Das Zusammenspiel von RHEL und KVM.
RHEL erkennt die KVM-Umgebung von Proxmox automatisch. Dennoch ist die Kommunikation zwischen Host und Gast der Flaschenhals.
# Die Kommunikations-Schichten (Mermaid)
graph TD
A[RHEL Guest OS] -->|VirtIO-SCSI / Net| B[Proxmox Hypervisor]
A -->|Guest Agent Socket| C[Host Control API]
B -->|CPU Passthrough| D[Physical Hardware]
C -->|Trigger: FS Freeze| A
C -->|Status: IP Address| B
# 2. Gast-System Vorbereitung
Den Agenten aktivieren.
Im Gegensatz zu Ubuntu ist der Guest Agent bei RHEL oft nicht vorinstalliert.
# Schritt 1: Agent installieren
sudo dnf install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
# Schritt 2: Konsolenzugriff (ttyS0)
Um qm terminal in Proxmox nutzen zu können, muss RHEL die serielle Konsole kennen.
sudo grubby --update-kernel=ALL --args="console=tty0 console=ttyS0,115200"
sudo reboot
# 3. Storage & I/O Optimierung
Millisekunden sparen.
# Disk-Discard (TRIM)
Damit Proxmox ungenutzten Platz auf dem ZFS/Ceph-Backend freigibt:
- In Proxmox: Häkchen bei
Discardsetzen. - Im Gast:
# Systemd Timer aktivieren (macht wöchentliches fstrim)
sudo systemctl enable --now fstrim.timer
# I/O Scheduler
Innerhalb der VM sollte der Scheduler auf none oder mq-deadline stehen, da der Host (Proxmox) das Scheduling übernimmt.
# Status prüfen
cat /sys/block/sda/queue/scheduler
# 4. Day-2 Operations: Subscription Management
Das Klon-Problem.
Wenn Sie eine RHEL-VM in Proxmox klonen, haben beide die gleiche Subscription-ID. Red Hat erkennt dies als Missbrauch oder Fehler.
# Vor der Template-Erstellung (Cleanup)
Bevor Sie eine VM zum Proxmox-Template konvertieren:
# 1. Subscription entfernen
sudo subscription-manager unregister
sudo subscription-manager clean
# 2. Machine-ID leeren
sudo truncate -s 0 /etc/machine-id
sudo rm -f /var/lib/dbus/machine-id
# 3. Cloud-Init vorbereiten
sudo dnf install cloud-init
# 5. Troubleshooting & “War Stories”
Wenn die VM hinkt.
# Story 1: “Der hängende Snapshot”
Symptom: Das Proxmox-Backup der RHEL-VM bricht mit einem Fehler ab oder friert die VM für Minuten ein.
Ursache: Der Guest Agent kann das Dateisystem nicht einfrieren (fsfreeze), weil ein Prozess (z.B. eine Datenbank) exklusiven Zugriff hält.
Lösung: Prüfen Sie das Log im Gast: journalctl -u qemu-guest-agent. Stellen Sie sicher, dass keine hängenden NFS-Mounts vorhanden sind.
# Story 2: “Netzwerk-Rename nach Klon”
Symptom: Nach dem Klonen hat die VM kein Netzwerk. ip a zeigt ein Interface wie eth0 (alt) vs ens18 (neu).
Ursache: Predictable Network Interface Names. RHEL erkennt die neue MAC-Adresse und weist ein neues Device zu.
Lösung: Nutzen Sie Cloud-Init (siehe Artikel 054), um das Netzwerk beim ersten Boot korrekt zu mappen, oder nutzen Sie generische Interface-Namen via Kernel-Parameter net.ifnames=0.
# 6. Fazit & Empfehlung
- CPU: Stellen Sie in Proxmox den CPU-Typ immer auf host.
- Netzwerk: Nutzen Sie den virtio Controller für minimale CPU-Last.
- Automation: Erstellen Sie ein sauberes RHEL-Template inklusive Guest Agent und Cloud-Init für schnelles Deployment.
# Anhang: Cheatsheet
| Aufgabe | Ort | Einstellung / Befehl |
|---|---|---|
| Agent Status | Gast | systemctl status qemu-guest-agent |
| IP in GUI sehen | Host | Erfordert Guest Agent |
| Disk TRIM Test | Gast | sudo fstrim -v / |
| Serielles Terminal | Host | qm terminal <vmid> |
| Shutdown Typ | Host | qm shutdown <vmid> (Sendet ACPI) |
| Performance Test | Gast | dd if=/dev/zero of=test bs=1G count=1 oflag=direct |