Warum Disks in VM so langsam?

tekknus

Member
Sep 2, 2021
6
0
6
54
Hallo, ich schaffe es nicht mein Storage Performant hinzubekommen.
Host ist ein HPE DL 380 Gen9 mit 2x E5-2690v4 und 16x32GB RDIMMs

Proxmox VE ist auf ein Hardware Raid 1 mit SATA SSDs installiert (default optionen vom installer)
Als Storage nutzte ich anfänglich mit 8xSata SSD (mit Raidcontroller und jeder Disk als Raid0), zwischendurch 16xSata SSD (mit LSI HBA) und nun endlich das NVMe 6x U.2 SFF 2,5" Bay Enablement Kit 774741-B21 in welchem 4 Stk 3,84TB Micron 7300 Pro NVMe SSDs stecken. Leider fühlen sich VMs darauf immer noch nicht "snappy" an und die Bedienung via RDP ist ein Geduldsspiel...

Auf dem Hardware Raid hab ich laut https://pve.proxmox.com/wiki/Windows_2022_guest_best_practices eine windows vm installiert und eine NVMe Disk in unterschiedlichen Szenarien eingebunden und mit 4k NTFS formatiert:

passthrough:
root@ipve1:~# qm set 100 -scsi3 /dev/disk/by-id/nvme-Micron_7300_XXgekürztXX
update VM 100: -scsi3 /dev/disk/by-id/nvme-Micron_7300_XXgekürztXX
1675268144055.png1675268150062.png

lvm:
1675268399166.png
1675268404451.png

zfs mit ashift=12 und volblocksize 4k:
1675268463209.png1675268470863.png

Zum Vergleich habe ich auch mal windows bare metal statt proxmox installiert und dort folgende Ergebnisse erhalten
1675268690604.png1675268701951.png
interessant hierbei ist, dass es kaum einen Unterschied macht ob 512 oder 4096 mit nvme-cli formatiert wird (habe unten auf den Screenshots die formatierung vermerkt)

Am Ende möchte ich für meine VMs (Windows IIS und SQL) die schnellste Lösung mit Redundanz - ich denke ZFS Raid10 wäre passend?
Nur leider ist das dann noch langsamer:
1675269301285.png1675269307694.png

Habt Ihr bitte einen Rat für mich wo insbesondere die RND4K Performance verloren geht und wa sich dagegen tun kann?

lg tekknus
 
Hast du mal eine höhere volblocksize versucht? Bei ashift=12 und 6 disks im raid10 würde es es mit einer 8K oder 16K volblocksize versuchen. ZFS wird aber immer langsamer sein, da dort Datenintegrität und nicht Performance im Fokus ist. Und selbst bei deinem Passthrough ist es kein echtes physisches Passthrough, da die VM trotzdem nur mit virtuellen 512B Sektor Disks arbeitet. Würdest du die NVMe SSD per PCI Passthrough durchreichen, solltest du eigentlich die gleiche Bare Metal Performance bekommen. Aber das ist ja eigentlich auch nicht was du willst. Du willst ja ein Raid mit Redundanz auf Host-Ebene.

Ansonsten auch mal fio zum Benchmarken nehmen und damit sync writes machen. Mit Crystal Disk Mark misst du ja eigentlich nur Cache. Gerade beim Lesen ist das eigentlich nur ein RAM Benchmark.
 
Wieso verwendest du nicht den Raid-Controller?
HPE Smart-Path aktiv? Cache-Konfiguration ist wie eingestellt? Disk-Cache am Raid aktiviert?
Auf welchen PCIe-Slot hängt der Kit?
Bios-Einstellungen (Power-Profile etc.) wie eingestellt?
Ich finde die Konfiguration/das Konzept irgendwie unglücklich,
Kaum technische Details aber viele synthetische Benchmarkbilder, so konzeptioniert man keinen Server :(
 
Last edited:
Hast du mal eine höhere volblocksize versucht? Bei ashift=12 und 6 disks im raid10 würde es es mit einer 8K oder 16K volblocksize versuchen. ZFS wird aber immer langsamer sein, da dort Datenintegrität und nicht Performance im Fokus ist. Und selbst bei deinem Passthrough ist es kein echtes physisches Passthrough, da die VM trotzdem nur mit virtuellen 512B Sektor Disks arbeitet. Würdest du die NVMe SSD per PCI Passthrough durchreichen, solltest du eigentlich die gleiche Bare Metal Performance bekommen. Aber das ist ja eigentlich auch nicht was du willst. Du willst ja ein Raid mit Redundanz auf Host-Ebene.

Ansonsten auch mal fio zum Benchmarken nehmen und damit sync writes machen. Mit Crystal Disk Mark misst du ja eigentlich nur Cache. Gerade beim Lesen ist das eigentlich nur ein RAM Benchmark.
Letzter Screenshot ZFS Raid 10 über alle 4 disks ist mit den defaults, also ashift=12 und volblocksize 8k erstellt - ich kann mal probieren ob es mit volblocksize 16k besser läuft, sollte aber erst ab 6 disks so sein oder?
Aha, also denkst du es liegt an der "übersetzung scsi - pci"?
Die unterschiedlichen konfigurationen mit einzelnen disks im lvm, zfs bzw passthrough habe ich nur ausprobiert, weil ich herausfinden wollte was/wo die "Bremse" ist.

Danke für den Hinweis bzgl Cache - ich habe crystaldiskmark verwendet weil man fio soviele optionen mitgeben kann, dass der Vergleich ev. schwer fällt
 
Wieso verwendest du nicht den Raid-Controller?
HPE Smart-Path aktiv? Cache-Konfiguration ist wie eingestellt? Disk-Cache am Raid aktiviert?
Auf welchen PCIe-Slot hängt der Kit?
Bios-Einstellungen (Power-Profile etc.) wie eingestellt?
Ich finde die Konfiguration/das Konzept irgendwie unglücklich,
Kaum technische Details aber viele synthetische Benchmarkbilder, so konzeptioniert man keinen Server :(
Weil der nur SATA/SAS und kein NVMe kann.
Nein kein Smart Path aktiviert, Cache ist deaktiviert da keine BBU, außerdem bootet ja nur mehr proxmox vom hwraid.
Ich habe sowohl den oberen als auch den mittleren Slot am Riser von CPU1 probiert (mehr Möglichkeiten gibts eh nicht) - nachdem die Performance unter Windows ja dem Datasheet entspricht, gehe ich davon aus, dass hier keine Fehlkonfiguration vorliegt.
BIOS habe ich aktuell 3.02 davor 2.92 auf default Einstellungen gesetzt -> Balanced Power Profil
Warum unglücklich? Was würdest du anders machen?
Den Server habe ich schon im September 2021 gekauft/gebaut und bin nach mehreren Umbauten (mehr Ram, HBA statt RAID, mehr disks und nun schlussendlich NVMe statt SATA) immer noch nicht zufrieden mit der diskIO Leistung.
 
SAS/SATA -> wir reden hier von einem älteren G9 mit PCIeV3, erwarte hier keine Performance-Wunder, was Virtualisierung angeht.
Meine Erfahrung mit der G9-Serie ist, dass es von Package her einfacher/günstiger ist, das ganze über den internen Raid zu realisieren.
Du sparst dir den immensen Overhead von ZFS und fährst dann mit dem verlässlichen und performanten ext4.

Bei deinem Raid1 fürs OS bitte Smart-Path und die Drive-Cache aktivieren.

Das Datenlaufwerk würde ich über Raid5 (mit Spare-Disk) mit Enterprise-SSD´s realisieren, Raid-Cache und Drive-Cache aktiviert (50/50%).
(warte mit deinen Benchmarks, bis das Volume fertig initialisiert ist ;) )

Eine BBU kostet kaum was, ist aber quasi ein muss.

Das Balanced Power-Profile ist nur für die Energie-Effizienz da, nicht für Performance.
Wenn Höchstleistung gefordert -> Static High Performance oder wenn Leistung und Energiesparen gleichzeitig wichtig ist, OS-Control und im PVE dann intel_pstate deaktivieren, acpi-cpufreq aktivieren, cpufreq-utils installieren und schedutil verwenden.

Bitte vergiss auch nicht, dass sich zwischen Bare-Metal und virtueller Umgebung immer ein gewisser Verlust ergibt.

Von solch synthetischen Benchmarks halte ich gar nichts, das gehört in die Spiele-Ecke, weil nichts-aussagend.
 
SAS/SATA -> wir reden hier von einem älteren G9 mit PCIeV3, erwarte hier keine Performance-Wunder, was Virtualisierung angeht.
Meine Erfahrung mit der G9-Serie ist, dass es von Package her einfacher/günstiger ist, das ganze über den internen Raid zu realisieren.
Du sparst dir den immensen Overhead von ZFS und fährst dann mit dem verlässlichen und performanten ext4.

Bei deinem Raid1 fürs OS bitte Smart-Path und die Drive-Cache aktivieren.

Das Datenlaufwerk würde ich über Raid5 (mit Spare-Disk) mit Enterprise-SSD´s realisieren, Raid-Cache und Drive-Cache aktiviert (50/50%).
(warte mit deinen Benchmarks, bis das Volume fertig initialisiert ist ;) )

Eine BBU kostet kaum was, ist aber quasi ein muss.

Das Balanced Power-Profile ist nur für die Energie-Effizienz da, nicht für Performance.
Wenn Höchstleistung gefordert -> Static High Performance oder wenn Leistung und Energiesparen gleichzeitig wichtig ist, OS-Control und im PVE dann intel_pstate deaktivieren, acpi-cpufreq aktivieren, cpufreq-utils installieren und schedutil verwenden.

Bitte vergiss auch nicht, dass sich zwischen Bare-Metal und virtueller Umgebung immer ein gewisser Verlust ergibt.

Von solch synthetischen Benchmarks halte ich gar nichts, das gehört in die Spiele-Ecke, weil nichts-aussagend.
Danke für deinen Input - OS Raid stell ich gleich um!

Was spricht für Raid5 mit spare statt Raid6/10?

Power Profile werde ich noch durchtesten!

Nachdem ich die NVMe SSDs jetzt aber schon habe würde ich diese gerne nutzen.
Ich konnte keinen NVMe-Raidcontroller finden der mit meiner Hardware kompatibel ist -> muss ich wohl ein software raid machen.

In der Proxmox gui finde ich keine Möglichkeit ein lvm raid zu erstellen, bilde mir auch ein irgendwo in der doku gelesen zu haben, dass ZFS seitens proxmox präferiert wird... warum ist das so?

Ich würde jetzt noch https://forum.proxmox.com/threads/raid-10-with-lvm.112874/ als Alternative zum ZFS raid ausprobieren - gibt es ausser ashift, volblocksize und der low level sectorsize der ssds weitere Parameter die die IOPS beeinflussen?

Danke für eure Hilfe! lg tekknus
 
Danke für deinen Input - OS Raid stell ich gleich um!
;)
Was spricht für Raid5 mit spare statt Raid6/10?
Verwende ich bei den G9´s immer. Spart Platz, ist performant (Raid-Cache 50/50), Drive-Cache enabled, ext4 drauf.
Power Profile werde ich noch durchtesten!
Super
Nachdem ich die NVMe SSDs jetzt aber schon habe würde ich diese gerne nutzen.
Ich konnte keinen NVMe-Raidcontroller finden der mit meiner Hardware kompatibel ist -> muss ich wohl ein software raid machen.
Naja, dann lass die Kirche im Dorf und verwende dafür halt ZFS, wenn die Hardware schon da ist...
In der Proxmox gui finde ich keine Möglichkeit ein lvm raid zu erstellen, bilde mir auch ein irgendwo in der doku gelesen zu haben, dass ZFS seitens proxmox präferiert wird... warum ist das so?

Ich würde jetzt noch https://forum.proxmox.com/threads/raid-10-with-lvm.112874/ als Alternative zum ZFS raid ausprobieren - gibt es ausser ashift, volblocksize und der low level sectorsize der ssds weitere Parameter die die IOPS beeinflussen?

Danke für eure Hilfe! lg tekknus
:D
 
In der Proxmox gui finde ich keine Möglichkeit ein lvm raid zu erstellen, bilde mir auch ein irgendwo in der doku gelesen zu haben, dass ZFS seitens proxmox präferiert wird... warum ist das so?
Z.B. wegen der Bitrot-Protection. Bei LVM hast du ja keinen Mechanismus der deine Daten auf Beschädigung überprüft und dann repariert. Da können sich dann über die Jahre deine Daten immer mehr und mehr beschädigen, ohne das du eventuell etwas davon mitbekommst. Auffallen tut sowas ja eher, wenn es mal einen Boot-Sektor betrifft und eine VM dann nicht mehr starten will oder ähnliches. Aber nicht wen da nur ein paar Dateien oder Datenbankeinträge ihre Integrität verlieren.
Und viele Proxmox Features nutzen ja die Funktonen des darunterliegenden Storages, wie z.B. die Replikation und Snapshots von ZFS.

LVM Raid kann man machen, musst du dann aber manuell über die CLI. Das einzige Software-Raid was PVE offiziell unterstüzt ist ZFS und btrfs.

gibt es ausser ashift, volblocksize und der low level sectorsize der ssds weitere Parameter die die IOPS beeinflussen?
Z.B. Caching, der verwendete Kompressionsalgorithmus, der verwendete Hashingalgorithmus, wieviele Kopien von Metadaten gespeichert werden sollen, ob du Sync Writes erlaubst oder nicht, dann natürlich das Pool Layout (mehr vdevs = mehr IOPS), ...
 
Last edited:
Was spricht für Raid5 mit spare statt Raid6/10?
Daß der Controller das immer unterstützt ... für raid6 muß man normalerweise noch ne Lizenz zukaufen, falls der Vorbesitzer das nicht schon getan hat.
Daher sind unsere DL380G8 und IBM x3650M4 auf raid5 beschränkt, während die Reservekiste DL380G7 raid6 kann ...
 
Eigentlich seit Gen8 und auf jeden Fall seit Gen9 ist Raid6 immer dabei. Die Lizenz gab es eigentlich nur bis G7 als Option.
 
Eigentlich seit Gen8 und auf jeden Fall seit Gen9 ist Raid6 immer dabei. Die Lizenz gab es eigentlich nur bis G7 als Option.
Also unsere DL380p Gen8 bietet jedenfalls kein RAID6 an. Ist eine 8LFF mit P420i. Kann das sein, daß die 12LFF oder 25SFF andere Controller mit mehr Ports und anderen Optionen habe?
 
Die einzige Einschränkung, für Raid 6 und 60 brauchst du mindestens 512MB FBWC Cache. Ohne Batteriecache macht Raid5 und Raid6 sowieso kein Spaß.
 
Hast du BBWC oder FBWC? Laut Datenblatt geht 5 + 50 auch mit BBWC, aber 6 + 60 nur mitFBWC
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!