Performance Probleme

HW-raid Konfig "In zfs Logik" erklärt - 2 raidsets auf den gleichen Platten !!! Mannomann, wer hat hier alles ein Brett vorm Kopf ... !!
 
HW-raid Konfig "In zfs Logik" erklärt - 2 raidsets auf den gleichen Platten !!! Mannomann, wer hat hier alles ein Brett vorm Kopf ... !!
Hardware RAID funktioniert aber anders. Bei HDDs hätte das noch Performance Impact gehabt, aber so sind die Daten sauber logisch getrennt.
Ich mache auch gern für das OS ein kleines Raid10 und den Rest als Raid6, was auch unterschiedlich schnelle Rebuildzeiten hat.
Auch wenn du mehrere Partitionen in verschiedenen Pools aufteilst, hast du immer noch eine logische Verknüpfung durch die gemeinsame Partitionstabelle.
 
Also wir haben einen PBS mit 8x NVMe
Zwar trotzdem 24 Slot aber nur die ersten 8 Slots belegt. Hier dürfte dann ja kein PCI Switch genutzt werden. Der ist genauso langsam.

Was habt ihr für ein Setup bei dem es richtig schnell läuft und wie schnell ist das bei euch in Gbit/s?

Vielleicht komme ich so der Lösung näher.
 
Ich habe den Datastore auf dem PBS mit ext4 formatiert. Was nutzt du? Oder wäre xfs besser gewesen?

Sollte man bei ext4 noch noatime setzen oder beeinträchtigt das die Funktion von PBS?
Ich nutze lieber XFS, gerade bei größeren Mengen.
Noatime ist bei mir auch default, das bringt natürlich beim lesen eine Menge.
 
  • Like
Reactions: Johannes S
Also wir haben einen PBS mit 8x NVMe
Zwar trotzdem 24 Slot aber nur die ersten 8 Slots belegt. Hier dürfte dann ja kein PCI Switch genutzt werden. Der ist genauso langsam.

Was habt ihr für ein Setup bei dem es richtig schnell läuft und wie schnell ist das bei euch in Gbit/s?

Vielleicht komme ich so der Lösung näher.
Ich nutze NVMe in der Regel ohne RAID und auf den PBS mit NVMe macht beim Benchmark die CPU dicht bei Werten zwischen 20-100 GB/s je nach Modell.
Aber ich nutze auch fast nur noch AMD Server.
Solche Benchmarks sind eh synthetisch und in der Praxis langweilen sich die NVMe bei maximal 2% busy.
 
Ich nutze NVMe in der Regel ohne RAID und auf den PBS mit NVMe macht beim Benchmark die CPU dicht bei Werten zwischen 20-100 GB/s je nach Modell.
Aber ich nutze auch fast nur noch AMD Server.
Solche Benchmarks sind eh synthetisch und in der Praxis langweilen sich die NVMe bei maximal 2% busy.
Was machst dann? einen ZFS Pool mit den NVMe? Raid-z2? Läuft das stabil?
Software raid war früher eher mist unter linux

Setzt du außer noatime noch was bei dem Mountpoint?
 
Last edited:
Was machst dann? einen ZFS Pool mit den NVMe? Raid-z2? Läuft das stabil?
Software raid war früher eher mist unter linux

Setzt du außer noatime noch was bei dem Mountpoint?
Natürlich mit ZFS und ZFS RAID ging schon vor Ewigkeiten stabil mit Solaris.
Bei RaidZ nehme ich immer 2 kleine NVMe als Special Mirror. Bei kleinen Setups Mirror.

Bei XFS nehme ich alles default + noatime. Aber Ext sollte auch gehen, war bei Benchmarks nur 2-4% langsamer.
 
Habe mit ZFS keine Erfahrung. Hast da einen Best Practise Guide irgendwo? Muss ich da noch was einstellen?

z.B.
  • compression=lz4
  • atime=off
  • recordsize=1M
  • xattr=sa

Ich würde ein hardware raid-1 machen fürs OS. Und dann 8x NMVe als raid-z2
Wenn ich mirror mache reicht mir der speicherplatz nicht, weil ich dann effektiv nur 4 NVMe kapazität hätte.

Irgendwelche stolpersteine über die ich fallen kann?

Danke dir
 
Habe mit ZFS keine Erfahrung. Hast da einen Best Practise Guide irgendwo? Muss ich da noch was einstellen?

z.B.
  • compression=lz4
  • atime=off
  • recordsize=1M
  • xattr=sa

Ich würde ein hardware raid-1 machen fürs OS. Und dann 8x NMVe als raid-z2
Wenn ich mirror mache reicht mir der speicherplatz nicht, weil ich dann effektiv nur 4 NVMe kapazität hätte.

Irgendwelche stolpersteine über die ich fallen kann?

Danke dir
Wenn du keine Erfahrung hast mit ZFS, dann nutze die Proxmox defaults.
RaidZ ohne Special Device ist schon spürbar langsamer beim schreiben, aber beim Backup begrenzt da der Compression Speed der CPU mehr.
 
  • Like
Reactions: Nerion
Habe mit ZFS keine Erfahrung. Hast da einen Best Practise Guide irgendwo? Muss ich da noch was einstellen?

z.B.
  • compression=lz4
  • atime=off
  • recordsize=1M
  • xattr=sa

Ich würde ein hardware raid-1 machen fürs OS. Und dann 8x NMVe als raid-z2
Wenn ich mirror mache reicht mir der speicherplatz nicht, weil ich dann effektiv nur 4 NVMe kapazität hätte.

Irgendwelche stolpersteine über die ich fallen kann?

Danke dir
Default ist recordsize=128k, Mann und Frau gehen heute zu recordsize=64k über.
It depends, anhand der realen Daten kann man da schon viel mehr optimieren.
openzfs ist dein Handbuch, die Version findest Du über zpool version.
 
Last edited:
Noch ein Hinweis, zfs benötigt frei Blöcke, wenn die alle aufgebraucht wurden, kann man sie nicht mehr löschen.
Insbesondere, wenn man zfs-auto-snapshot o.a. Tolls verwendet, um automasch ein zfs snapshot zu erstellen,
Kann es passieren, dass der Speicher volllaufen kann.

Tipp, deshalb erstelle dir ein Dummy ZFS Dataset.
Ich mache das so:
Code:
zfs create rpool/quota
# bei reinen SSD setzte ich das Quota auf ca. 15 % des Maximus.
#
zpool list rpool
# liefert z.B. SIZE= 928G
Code:
# Rechnung 928G * 0,15 ~ 140G (Quota)
zfs set refreservation=140G pool/quota
Code:
# Kontrolle:
zfs get refreservation rpool/quota
So habe ich immer die Möglichkeit mir schnell und einfach freien Platz zu zuordnen:
Code:
zfs set refreservation=none pool/quota
danach kann ich evtl. Reste von Backupläufen, zfs snapshots oder allg. cache Dateien im ZFS Dataset rpool löschen.
Danach wird das Quota wieder eingestellt, evtl. etwas kleiner für weitere Problemfälle.
Code:
zfs set refreservation=<size> pool/quota
Bedenke eine Erweiterung des ZFS rpool ist im laufenden Betrieb, nach dem weitere Datenträger des gleichen Typs im Systen eingebunden wurden, einfach möglich.
# https://openzfs.github.io/openzfs-docs/man/master/8/zpool-add.8.html
 
Last edited:
Ich halte das gern simpler, da gibts bei Umgebungen wo es kein oder schlechtes Monitoring gibt, einfach ein Quota auf X TB auf dem Pool. Bei manchen 80% oder auch mal 95%. Ist immer Umgebungsabhängig.
 
Hallo @Falk R. das hatte ich auch mal falsch interpretiert.
Das zfs set quota= pool/dataset gilt nur auf dem einen zfs Dataset.
Weitere zfs datasets sind davon nicht betroffen und der zfs pool kann trotz allem volllaufen.
# https://openzfs.github.io/openzfs-docs/man/master/8/zfs-set.8.html

Mit der geänderten Variante bin ich für alle zfs datasets und volumes sicher.
Ich kann dir leider nicht folgen.
Wie Falk gesagt hat monitoren wir einfach auf 80% und schieben dann rechtzeitig PVE Knoten auf andere PBS. Somit läuft da nix voll.

Kannst du das näher ausführen in welches Problem man laufen kann?

Ich könnte wenn voll auch einfach Backups vom PBS löschen oder geht das nicht mehr wenn ZFS voll ist?
 
Also ich lege über die PBS Oberfläche den ZFS Pool an und reserviere dann ein paar GB wie von news geschrieben.

Dann setze ich noch noatime bzw. atime=off

was sollte man noch setzen? Was ist sinnvoll?
 
Also ich lege über die PBS Oberfläche den ZFS Pool an und reserviere dann ein paar GB wie von news geschrieben.

Dann setze ich noch noatime bzw. atime=off

was sollte man noch setzen? Was ist sinnvoll?
Noatime sollte da schon aktiv sein und ich setze die Quota einfach auf dem Pool:
zfs set quota=22T DeinPool
Vorsicht zpool list zeigt dir Brutto an ohne Paritäten und die Quota ist genutzte Kapazität. Lieber etwas niedriger setzen, kann man ja jederzeit ändern.
 
  • Like
Reactions: Johannes S