Guten Tag,
ich lese mich seit einigen Tagen in ZFS ein, allerdings gibt es da einige Themen bei denen ich noch keine Antwort gefunden habe.
Meine geplante Konfiguration:
FreeBSD + ZFS + Samba
1 Intel X540
6 18TB HDDs als Z2 Raid
3 SSD als Mirror fürs Special VDev
1 EMC NV-1616 als SLOG Device (im Vollausbau erzielte Geschwindigkeit 2GB/s ---> 5 sek sind 10GB benötigte Speicherkapazität)
Aktive LZ4 Verschlüsselung
In Zukunft soll das Storage evlt um einen weiteren 6x18 Z2 Pool erweitert werden.
Evlt (je nach Antworten hier) kommt ein SSD Z2 Pool hinzu.
1. Was passiert exakt wenn das Slog device ausfällt.
Hier habe ich 2 Informationen gefunden.
1.1 Die letzten 5 Sekunden an Daten sind verloren ( sofern das Slog device gleichzeitig mit dem Strom ausfällt)
1.2 Die kompletten Daten des Storages sind verloren. (Halte ich für unwahrscheinlich)
Wenn das Slog ohne Systemcrash ausfällt, passiert garnichts außer der Rechner wird langsamer (Logging findet dann auf dem ZIL des Datenpools statt). Mit Systemcrash sind die letzten bestätigten Schreibvorgänge verloren. Da der Ramcache in Open-ZFS per default 10% RAM, max 4GB umfasst, sind bis zu diesen Daten verloren. Die 5s betrifft nur Oracle Solaris.
2. Special VDevs
2,1 Kann ich Special VDevs verschiedene Aufgaben zuweisen? eigentlich will ich ein Special VDev für die Metadaten haben und eins für special_small_blocks. Kann man dies Konfigurieren? Leider habe ich nichts dazu gefunden.
2.2 Wie viel Bandbreite/IO brauche ich auf dem Special VDev wenn es nur Metadaten abspeichert?
2.3 Nach allem was ich gelesen habe braucht man etwa 0.3 % des gesamten storage Platzes. Wenn ich sicherheitshalber mit 0.6% rechne brauche ich etwa 864GB um auch bei einer Verdoppelung der Speicherkapazität ausreichend Platz zu haben. Sehe ich dies Richtig?
2.4 Sehe ich das richtig, dass wenn man ein Special VDev man einiges an RAM einspaaren kann, da man die Metadaten auf der SSD liegen haben kann anstatt im RAM?
2.5 Eventuell werde ich für einige Datasetz deduplication aktivieren. Sehe ich das richtig, dass sollte ich ein Special VDev haben ich die 5GB Ram/ TB nicht brauche?
2.6 Wie viel wird auf Special VDevs rum geschrieben? Ist hier eine SSD welche vorwiegend auf Lesen ausgelegt ist ausreichend oder braucht man eine SSD welche mehrere Petabyte schreiben kann ohne zu sterben?
Special vdev kann für Metadaten/small io oder dedup eingesetzt werden. Der Schwellwert für small io kann per Dateisystem gesetzt werden. Damit kann man auch komplette Dateisysteme auf das special vdev zwingen (recsize < small io).
Matadatenzugriffe finden für jedes io statt. Je schneller desto besser.
Mit 0,6% Poolsize ist man auf der sicheren Seite
Metadaten liegen im RAM Lesecache aber nur für aktive Daten. Für andere Daten ist das special vdev viel schneller als der Pool. Special vdev ersetzt dabei nicht den RAM Lesecache sondern beschleunigt Zugriffe auf noch nicht gelesene Daten. Lediglich bei sehr wenig RAM sind nur wenige Metadaten im Cache.
Für Dedup brauchts ein eigenen Special Mirror. 5 GB ist worst Case für deduplizierte Daten der Dateisysteme (nicht Poolsize).
Mit special vdev belegt die Dedup Tabelle keinen RAM sondern liegt auf SSD.
Special vdev kann sehr viel Schreiblast abbekommen, hängt aber von den Umständen ab. Billige Desktop SSD oder ohne PLP würde ich meiden. Bei Verlust des special vdev ist der Pool verloren.
3. CPU Performance
3.1 Wie viel CPU Performance brauche ich für 2GB/s? Alzo mit LZ4 Verschlüsselung, 2 Z2 und evlt AES? Ist diese eher zu vernachlässigen oder ist diese relevant?
Hängt wie oft von vielen Faktoren ab (SSD, RAM, CPU, Usecase). 2 GB/s Pool Performance ist mit guten SSD einfach. 2GB/s per SMB ist sehr gut. 2 GB/s mit Verschlüssellung ist High End und mit sync nicht erreichbar,
Sprich reicht alter kleiner XEON oder braucht man einen fetten EPYC.
3.1 Wie viel CPU Performance braucht dedublication?
Wenig, braucht vor allem schnellen Zugriff auf die Deduptabellen
4. Ram
4.1 Ich habe gesehen, dass der RAM für mehrere Dinge genutzt wird. Als Lesecache, als Index für das LARC2 Device (sofern vorhanden),als Schreibcache, um die Metadaten zu hinterlegen und für die Dedub Tabelle. Sehe ich dies richtig oder habe ich etwas vergessen?
4.2 Stimmt die Faustregel 1GB / TB auch bei großen Storages oder ist dies inzwischen überholt.
war immer schon ein Mythos eines speziellen Forums.
4.2.1 Sehe ich das richtig, das hier nur ein Teil des GBs für Metadaten genutzt wird und der restliche teil als Cache?
Kann man kaum trennen. OS braucht RAM (min 2GB bei Solaris, egal wie groß der Pool), dazu für Dienste wie iSCSI/S3/NFS/SMB. Ca 70% des Ram nutzt man meist als Schreib/Lesecache.
4.4 Wie in 2 schon gefragt sollte ich ein Special VDev haben, Kann ich die 4 GB/TB Regel für DeDub ignorieren und diesen RAM anders nutzen?
ignorieren
4.5 Sehe ich das Richtig, dass ich in meinem Fall bis zu 10GB als Schreibcache brauche und der Rest vor allem Lesecache ist?
4.6 Ich hatte aktuell 64GB Ram angedacht. Ist dies Kritisch? (wären im Endausbau etwa 0.48GB/TB)
Schreibcache ist 10% RAM, max 4 GB. Ist der Cache halb voll wird er geschrieben, der Rest macht dann Caching. Da der Cache primär dazu dient keine kleinen Datenblöcke zu schreiben, bringt ein größerer Schreibcache nichts. (Poolgröße egal)
4. SSD Z3
4.1 Kann ich einem ZFS Dataset sagen, lege deine Daten nur auf dieses VDev oder kann ich ein VDev für bestimmte Datasets blocken?
ja z.B. via special vdev und Einstellung special_small_blocks=128K pool/fs1. Setzt man recsize für dieses Dateisystem auf 64K landet alles auf dem special vdev
Der Hintergrund ist der, ich möchte gegebenenfalls Virtuelle Maschinen / MP3s und anderes Kleinzeug auf den SSDs liegen haben... Und die SSDs nicht mit großem Zeug wie backups vom Notebook voll laufen lassen....
4.2 Sollte 4.1 nicht möglich sein, kann ich das SLOG und Special VDEV zwei ZPools zuweisen? (ich vermute nicht)
nein
So genug der Fragerrei, hier noch ein paar Infos was ich mit dem Storage machen will:
Backup:
Ich möchte Backups von Notebooks und lokalen PCs darauf ablegen.
Storage:
Filme/Musik/Spiele
Sync:
Als Speicher für dinge, welche zwischen verschiedenen Geräten synchronisiert werden sollen, config Dateien, Musik, etc
Virtuelle Maschinen:
Evlt möchte ich meine Virtuellen Maschinen dort ablegen, dies steht allerdings noch nicht fest
Vielen Dank