PBS auf demselben Host? Deshalb könnten Ihre Backups langsam sein
Sie haben also einen Monster-Server mit 24 Kernen, 256 GB DDR5-RAM und einem Gen5 Datacenter-NVMe, das die meisten SSDs im Schlaf überholen könnte. Und doch... Ihr Proxmox Backup Server (PBS) schleppt sich mit mageren 200 MB/s beim Sichern von VMs dahin. Wie kann das sein?
Das ist genau das Problem, auf das ein Nutzer stieß, nachdem er beschlossen hatte, PBS in einer VM auf demselben Proxmox-Node zu hosten, den er sicherte. Auf dem Papier schreit das Setup nach Performance. In der Praxis sah das Geschwindigkeitsdiagramm eher aus wie eine Schildkröte auf einem Laufband.
Es lohnt sich, das auseinanderzunehmen, denn keine Menge an roher Hardware-Power rettet Sie vor virtuellen Engpässen, wenn Sie nicht vorsichtig sind.
Das Problem: Wenn High-End-Hardware unter den Erwartungen bleibt
In diesem Fall hatte der Server jede Performance-Checkbox abgehakt: blitzschnelles NVMe (Kingston DC3000ME Gen5), Unmengen an Speicher und CPU-Headroom für Tage. Es gab keine Last auf dem System, keine offensichtlichen I/O-Engpässe, und dennoch stagnierten die Backups bei etwa 350 MB/s Lese- und Schreibgeschwindigkeit.
Was es noch schlimmer machte, waren die beworbenen Specs des Laufwerks mit über 10.000 MB/s in beide Richtungen. Man erwartet schnelle Backups, keinen Verkehrsstau. Wo ging also all diese Geschwindigkeit hin?
VM-Netzwerk: Ihr erster Verdächtiger
PBS in einer VM auf demselben Proxmox-Host laufen zu lassen bedeutet, dass der gesamte Backup-Traffic durch virtualisierte Ebenen laufen muss, einschließlich virtueller NICs, die zu unauffälligen Leistungskillern werden können.
Der Reddit-Nutzer vermutete dies und hatte recht. Die virtuelle NIC (wahrscheinlich standardmäßig auf VirtIO) führt zu etwas Overhead, und wenn Sie ein paar hundert Gigabyte sichern, summiert sich das. Virtuelle Netzwerkschnittstellen sättigen nicht immer denselben Durchsatz wie native, besonders wenn Sie nicht für Multi-Queue-Unterstützung oder Jumbo-Frames (MTU 9000) optimieren.
Ein anderer Kommentator empfahl, die Multiqueue-Einstellung der NIC an die Anzahl der vCPUs anzupassen und die MTU-Größe zu erhöhen. Das klingt nach einer Kleinigkeit, liefert aber oft sofortige Gewinne.
LVM und virtueller Disk-Overhead
Ein genauerer Blick auf das Setup zeigt, dass die PBS-VM eine virtuelle SCSI-Disk mit aktivierter SSD-Emulation verwendet, die auf LVM aufbaut. Klingt cool, ist aber eine Abstraktionsebene zu viel. Die Performance leidet oft, wenn Sie Daten über mehrere virtualisierte Volumes verschieben, besonders wenn sowohl Lese- als auch Schreibströme zwischen LVM-Ebenen tanzen.
Während SCSI im Allgemeinen in Ordnung ist, kann das Ausführen von schweren I/O durch diese virtuelle Pipe auf einem Host-basierten LVM Latenz hinzufügen, bei Lesevorgängen ebenso wie bei Schreibverstärkung, Synchronisierungen und Komprimierung. Und das ist, bevor wir überhaupt über PBS' eigene Deduplizierungs- und Chunking-Arbeitslast sprechen.
CPU und RAM? Wahrscheinlich nicht Ihr Problem
Das System meldete während des Backups nur 30% CPU-Auslastung und 3% RAM-Auslastung. Ein Problem mit roher Rechenleistung ist das also nicht.
Wahrscheinlich sehen Sie einen software-getriebenen Engpass, bei dem virtualisiertes I/O und PBS' interne Mechanik nicht gut zusammenspielen. Und wenn Ihre CPU zu wenig tut, bedeutet das möglicherweise, dass der Engpass früher in der Pipeline auftritt, wahrscheinlich im Datenpfad zwischen der Quell-VM und dem PBS-Speicher.
Die Alternative: Bare Metal oder Hybrid-Installation
Mehrere Stimmen im Thread wiederholten dasselbe: "Warum nicht einfach PBS direkt auf dem Proxmox-Node installieren?"
Es stellt sich heraus, dass das möglich und sogar effizient ist. Sie können PBS neben Proxmox auf demselben physischen Server installieren, indem Sie einfach apt install proxmox-backup-server nach Hinzufügen des Repos ausführen. Auf diese Weise hat PBS direkten Disk-Zugriff, und Sie umgehen den VM-Overhead vollständig.
Wenn Sie nicht vollständig auf Bare Metal gehen möchten, könnte ein Hybrid-Setup mit LXC-Containern mit Bind-Mounts ein Sweet Spot sein. Ein Nutzer bemerkte bessere Performance beim Ausführen von PBS in einem LXC gegenüber einer vollständigen VM, wahrscheinlich weil LXCs die virtuellen Disk-Ebenen überspringen und direkt auf Host-Speicher zugreifen.
"Aber was, wenn mein Node abstürzt?"
Das ist eine berechtigte Sorge. PBS und Proxmox auf demselben Server laufen zu lassen fühlt sich riskant an. Wenn der Host explodiert, was passiert mit Ihren Backups?
Hier kommt gute Speicherhygiene ins Spiel. Einige Nutzer bekämpfen dies, indem sie Backup-Speicher auf einem völlig separaten Laufwerk platzieren, isoliert von der Proxmox-Systemdisk. Auf diese Weise können Sie, selbst wenn das Betriebssystem zerstört wird, neu installieren und Ihr Backup-Volume ohne Datenverlust mounten.
Andere gehen noch weiter und richten mehrere PBS-Instanzen auf separaten Nodes ein, die Backups zwischen sich synchronisieren. Ja, das ist komplexer, aber es gibt Ihnen Redundanz. Und Seelenfrieden ist es wert.
FIO-Tests: messen statt raten
Möchten Sie harte Zahlen? Ein versierter Kommentator lieferte einen FIO-Befehl zum Benchmarking der realen Disk-Performance innerhalb der PBS-VM. Dieser Test sagt Ihnen, ob Ihr Engpass Disk-I/O ist oder woanders liegt.
Hier ist die Art von Befehl, die sie vorschlugen:
fio --name=seq-read128k --ioengine=io_uring --rw=read --bs=128k --size=2g --numjobs=8 --iodepth=64 --runtime=20 --time_based --group_reporting
Führen Sie das in Ihrer VM aus und vergleichen Sie es mit der Host-Performance. Wenn Ihre VM deutlich langsamer ist, haben Sie Ihren Schuldigen.
TL;DR: Deshalb ist Ihre PBS-VM langsam
- Virtueller NIC-Overhead kann die Performance drosseln. Probieren Sie Jumbo-Frames (MTU 9000) und Multiqueue.
- Virtuelle Disk über LVM fügt unnötige Latenz hinzu. Erwägen Sie direkten Disk-Zugriff oder Bind-Mounts.
- PBS in einer VM auf demselben Node laufen zu lassen verursacht, dass Backup-Traffic durch virtuelle Ebenen geloopt wird.
- PBS auf dem Host (Bare Metal oder containerisiert) ist oft schneller und manchmal einfacher.
- Verwenden Sie separate Disks für System und Backup-Speicher. Reduziert Risiko, erhöht Geschwindigkeit.
- Benchmarken Sie mit FIO, um Ihre realen I/O-Grenzen zu finden.
Abschließende Gedanken
PBS in einer VM zu platzieren scheint ein cleverer Weg zu sein, die Dinge modular zu halten. Aber in der Praxis führt es oft zu Performance-Engpässen, die Ihre Zeit und Ihr Hardware-Potenzial verschwenden.
Wenn Sie dieselben Geschwindigkeitsmauern treffen, werfen Sie einen kritischen Blick darauf, wie Sie Ihren Stack schichten. Manchmal besteht die Lösung darin, die Ebenen abzuschälen, die unbemerkt bremsen, statt mehr Hardware auf das Problem zu werfen. Niemand sollte schließlich eine 5-minütige Bootzeit durchleiden müssen, nur um ein paar E-Mails zu checken.