Nun ZFS ist ein Baukasten, den man mit unterschiedlichen Datenträgern verwenden kann.
Mit 4x HDDs und 2x SSDs ist, nach Analyse der Anforderungen, meiner Erfahrung und für meine Anwendung, das beste Setup:
3x VDEV
1) 2x VDEV ZFS 2-fach Mirror HDDs und
2) 1x VDEV ZFS Mirror SSD als ZFS Special Device.
Der Baukasten ZFS hat dann noch die unterschiedlichsten Parameter, die man setzen "kann/soll".
Siehe OpenZFS.
Ein ZFS Dataset basierend auf HDDs und sollte zu maximal ca. 80 % gefüllt werden.
Code:
zfs get quota <zfs-pool>
zfs set quota=<80%-Poolsize> <zfs-pool>
Man kann z.B.
zfs set quota=460T <zfs-pool>
schreiben.
Dann ist
außer für das ZFS
Dataset des Backupservers, ein
zfs set atime=off <zfs-pool>
sinnvoll.
Das sind alles Metadaten, die dann auch auf dem VDEV2 ZFS Mirror 2x SSD gespeichert würden.
Da ZFS ein Copy on Write System ist, werden neue Daten verkettet irgendwo auf den HDDs verteilt gespeichert.
Danach erst der Datensatz verlinkt.
D.h. die R/W Köpfe einer/ aller HDD sind laufend am arbeiten, das dauert.
Würden nun noch zusätzlich die Metadaten, also da wo ist der 128k Block, dort gespeichert sinkt über die Zeit der Gesamtdurchsatz weiter ab.
Ein ZFS Pool mit 4x HDDs, wie oben beschrieben, hat den ca. 4-fachen IOPs in Read und den ca. 2-fachen IOPs Write Fall, bezogen auf nur eine HDDs IOPs mit 4k Blocksize.
# Seagate IronWolf Pro NAS-Festplatten, 4 TB, CMR ca. 125 - 150 IOP/s
Dann habe wir da noch die weiteren ZFS Parameter, wie z.B.
zfs get recordsize <zfs-datastore> # default 128k
, es werden also 32x 4k Blöcke am "Stück" benötigt, auch wenn die Datei nur 1k klein sollte.
Auf basis der Datesets kann man also die unterschiedlichsten Parameter auf die beste Durchsatz anpassen.
Die ZFS Kompression "on the fly" sorgt gleichzeitig für eine hören Lesedurchsatz. Bei Schreiben der Daten erledigt das heute die CPU ohne weitere Last.
Wunder sollte man mit dem o.g. HDD Setup nicht erwarten, 2,5 GBit/s sollte auszulasen sein.