ZFS mit 2 M.2NVME SSD und 2 SATA SSD optimal konfigurieren

Nov 17, 2023
258
26
28
Moin,
wie kann man aus 2 x 2 M.2NVME SSD und 2 x SATA SSD die beste Leistung raus bekommen?

Wenn ich diese 4 Laufwerke in ein ZFS konfiguriere, wie wirkt sich das auf die Leistung aus oder sollte man besser 2 ZFS Volumes anlegen?

Also eins mit 2 x 2 M.2NVME SSD und eins mit 2 x SATA SSD.
 
wie kann man aus 2 x 2 M.2NVME SSD und 2 x SATA SSD die beste Leistung raus bekommen?
Standardantwort: das kommt darauf an, was für dich "beste Leistung" bedeutet!

Falls du 2*120 GB M.2 und 2*8 TB SATA hast lautet meine Antwort: ein Pool, mirrored SATA single vdev plus mirrored Special Device mit den NVMe.

Wenn viel Platz das Ziel ist: alles einfach striped mirrors und die Unterschiede ignorieren. Dies ist KEINE Empfehlung sondern worst case ;-)

Aber wir sind hier ja bei Proxmox :-)

Ich selber würde vermutlich zwei separate Pools, jeweils mit einem Mirror, anlegen. Sofern alle Geräte die gleiche Kapazität haben wären das 2*SATA für das OS + 2*NVMe für die VMs.

Generell sind "Enterprise Class" Devices zu empfehlen, also Geräte mit PLP - und das gilt natürlich auch für die NVMe...
 
  • Like
Reactions: Johannes S
@UdoB hat es schon angedeutet, es hängt von den richtigen Datenträgern ab.

Man benötigt sehr hohe IOPs bzgl. 4k Random R/W.
Das funktioniert mit Consumer NVMe M.2 meistens nicht.

Ich nutze deshalb lieber SATA Sata3 mit 2 VDEVs als ZFS Raid1 - Stripe - Raid1.
Meine Boards habe meistens 6 - 12 SATA3 Schnittstellen.
Und 1-2 NVMe 3.0 x4 oder 4.0 x4.

Die Datenmengen, die auf ein ZFS VDEV Special Device geschrieben werden, wenn
a) sie nur für die Speicherung der Metadaten verwendet wird,
b) die benötigte Größe kann man von der Größe des ZFS HDDs Pools ableiten: 1 % - 2 % und
c) die Anzahl der zu schreibenden Datenblöcken als ZFS VDEV Special Device
ist gering,

So dass ich auch mit MLC Flash-Speicher als ZFS VDEV Mirror Special Device für eine ZFS VDEV mit 2x HDD 7200 RPM bei einem Testsystem ausreichend ist.
Absichern kann ich dann diese Resteverwertung in einem ZFS Pool durch Nutzung einer APC USV:
# USV APC Back-UPS CS 350 (BK350EI)
 
Last edited:
Den Begriff "ZFS Volumes" gibt es nicht in der Literatur. Was ist gemeint?
Ich habe es mir fast gedacht.

Aber laut Google sagt es das gleiche was ich damit gemeint habe.

"ZFS-Volumes sind ein Typ von ZFS-Datasets und werden als Block-Geräte unter /dev/zvol/zroot gelistet. Ein ZFS-Volume kann als Datenspeicher für virtuelle Laufwerke genutzt werden, um so die Vorteile von ZFS-Datasets wie Snapshots, Klone oder Komprimierung zu nutzen."
 
@UdoB hat es schon angedeutet, es hängt von den richtigen Datenträgern ab.

Man benötigt sehr hohe IOPs bzgl. 4k Random R/W.
Das funktioniert mit Consumer NVMe M.2 meistens nicht.
Aber man könnte doch auch Enterprise M.2 NVMe einsetzen.

Ich nutze deshalb lieber SATA Sata3 mit 2 VDEVs als ZFS Raid1 - Stripe - Raid1.
Meine Boards habe meistens 6 - 12 SATA3 Schnittstellen.
Und 1-2 NVMe 3.0 x4 oder 4.0 x4.

Die Datenmengen, die auf ein ZFS VDEV Special Device geschrieben werden, wenn
a) sie nur für die Speicherung der Metadaten verwendet wird,
b) die benötigte Größe kann man von der Größe des ZFS HDDs Pools ableiten: 1 % - 2 % und
c) die Anzahl der zu schreibenden Datenblöcken als ZFS VDEV Special Device
ist gering,

So dass ich auch mit MLC Flash-Speicher als ZFS VDEV Mirror Special Device für eine ZFS VDEV mit 2x HDD 7200 RPM bei einem Testsystem ausreichend ist.
Absichern kann ich dann diese Resteverwertung in einem ZFS Pool durch Nutzung einer APC USV:
# USV APC Back-UPS CS 350 (BK350EI)
Danke news, aber warum immer noch SATA3?
NVMe 4.0x4 ist sich um ein vielfaches schneller.
Ich denke es gibt nicht genug NVMe 4.0x4 auf einem Board oder sind die NVMe 4.0x4 SSDs nicht zuverlässig genug?

Leistungsunterschiede in Werten

Hier sind einige typische Werte für beide SSD-Typen:

TypMax. LeseleistungMax. Schreibleistung
SATA III SSDca. 550 MB/sca. 500 MB/s
M.2 NVMe SSD1.500 bis 7.000 MB/s1.000 bis 5.000 MB/s
 
Last edited:
NVMe 4.0x4 ist sich um ein vielfaches schneller.
Das ist aber nur die Schnittstelle. Wenn da dann zB. eine QLC-NVME mit SLC-Cache dranhängt, schaut die reale Geschwindigkeit gaaaanz anderes aus.

Edit:
Ich hab hier einen PBS am laufen, den ich ursprünglich mit einer Samsung 870pro SSD (ext4) gebaut habe. Nach ein paar Wochen bin ich dann auf eine WD-SN770 NVME (immerhin TLC und auch ext4) umgestiegen.
Ergebnis war dann dass der PBS mit der NVME langsamer war, als mit der SSD. Die 870pro hat zwar nur 1G DRAM-Cache aber davon profitiert das System scheinbar (bei Backups) viel mehr, als von den "schnellen" Schreibvorgängen in den SLC-Cache.
Also hab ich wieder die SSD eingebaut ....
 
Last edited:
  • Like
Reactions: news and magicpeter
Das ist aber nur die Schnittstelle. Wenn da dann zB. eine QLC-NVME mit SLC-Cache dranhängt, schaut die reale Geschwindigkeit gaaaanz anderes aus.

Ja, aber die Schnittstellenleistung spiegel sich doch auch in der Datenübertragung auf dem Server / Proxmox wieder und wenn da nur M.2 NVME dranhängen dann fliegt da doch die Kuh oder?
Edit:
Ich hab hier einen PBS am laufen, den ich ursprünglich mit einer Samsung 870pro SSD (ext4) gebaut habe. Nach ein paar Wochen bin ich dann auf eine WD-SN770 NVME (immerhin TLC und auch ext4) umgestiegen.
Ergebnis war dann dass der PBS mit der NVME langsamer war, als mit der SSD. Die 870pro hat zwar nur 1G DRAM-Cache aber davon profitiert das System scheinbar (bei Backups) viel mehr, als von den "schnellen" Schreibvorgängen in den SLC-Cache.
Also hab ich wieder die SSD eingebaut ....
:) Ja, so kann es gehen.
 
Last edited: