[Sammelthread] ZFS Stammtisch

Im Moment ist mir die Ursache nicht klar.
Ich setze das mal auf Beobachten.

Dass rpool nicht angezeigt wird sofern kein eigenes Dateisystem darunterliegt ist eigentlich Absicht,
Also alles wie es sein soll, bis auf das die verschobene Tabelle.

Hi @gea

Ich habe die latest stable von omnios mal neu installiert, napp-it installiert, auf 24.01d aufgerüstet, pools importiert und mein napp-it backup wieder eingespielt. Jetzt läuft alles fehlerfrei.

Die Instanz die ich laufen hatte, hatte ich über mehrere major-releases immer wieder upgedated. Ich hatte nach einem cold-start immer das Problem, dass ich napp-it auf der console restarten musste, da ich sonst nicht über 443 auf die Web-Gui kam. Wie gesagt, jetzt läuft alles, wie es soll.

Nach der Übung habe ich das Gefühl, dass eine Neuinstallation schneller geht, als das Upgrade 😊 ... war eine schöne Übung für ein Recovery.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: gea
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
So liebes Forum. Ich komm mit meiner Schnapsidee für meinen Filer langsam weiter.

Ich hab mir jetzt eine 1 TB WD red SN700 gekauft, welche gemütliche 2 PBW schafft und für PCIe 3.0 brauchbare IOPS / R/W Werte hat. Hab sie leider nicht gebencht, Mischung aus zu faul und vergessen, steckt jetzt im PCIe Slot per IcyBox Adapter (welcher recht hochwertig ist für seine 10€).

Momentan hab ich 3 Pools.
1x 1 TB M.2 mit PLP für "Apps" und VMs
1x 4 TB SATA SSD als schnelles Netzlaufwerk, momentan nur Testlaufwerk und Temp
4x 20 TB SATA HDD als Z1
... und jetzt eben diese 1 TB SSD.
In Zukunft wird noch bissl was dazu kommen, aber das muss ich mir erst genauer überlegen, wie ich das alles anstelle.

Man lernt nie aus, während der ARC für alle Pools irgendwie geshared ist, wird der L2ARC dem Pool zugewiesen, wusste ich nicht. :d

=> Naja, folgende Schnapsidee wurde geboren:
Ich mach auf der SSD mehrere Partitionen (Größen mal über den Daumen gepeilt, mehr brauch ich wohl nicht, so bleibt mir noch Luft für später bzw. etwas Over-Provisioning schadet ja nicht).
Erstmal 3x 64gb als L2ARC (mit secondarycache=metadata, persistent wenn ich das hinbekomme) und 3x 32gb als ZIL...

Funktionieren könnte das ja soweit, wenn ich nachlese:

I/O mäßig sollte die SN700 dem HDD-Pool, der SATA SSD und der Micron 7400 pro deutlich überlegen sein.
Auch wenn L2ARC und ZIL auf einem Gerät am ersten Blick nicht schlau erscheinen denke ich, dass das in meinem Fall ganz gut laufen sollte, das NAS wird so ziemlich von mir allein genutzt, plus bissl was von anderen, paar andere Geräte, bissl Apps und VM...
Ich dachte, wenn ich schon herummurksen muss, um mehrere L2ARC zu machen, kann man das ZIL auch gleich einrichten. Wenn keine Syncs verwendet werden, schadet es wohl nicht, wenn doch, wirds immer noch besser sein als ohne, so meine laienhafte Schätzung.

Nochwas, in den Links wird das erwähnt:
I'd recommend not using nvd0p1 as the device name to add to the pool but gptid/<rawuuid-of-nvd0p1> instead. You can get this with gpart list nvd0.
Ist das, da mit das Device eindeutig erkannt werden kann, auch wenns auf einem anderen Steckplatz steckt etc.? Ich nehme an, die rawuuid ist mehr oder weniger vergleichbar mit einer MAC Adresse, wenn ich das richtig verstehe, oder?


... also... kann man das so machen? Oder Finger weg weil... weil warum?
Lasst mich was dazu lernen, liebes Forum!
 
Kann man alles machen. ZFS schluckt alles was ansatzweise nach Platte riecht.,
Würd ich aber vermeiden weil Komplexität ein Gift für die Datensicherheit ist.

ZFS hat mit special vdev einen wunderbaren Ansatz um einen Hybrid Pool mit schnellen SSD/NVMe und langsamen Platten zu kombinieren.

Was man braucht neben dem Plattenpool
- ein oder mehrere n-way Mirror aus SSD/NVMe als special vdev (Mirror weil das special vdev kein Cache ist sondern Speicherort für Daten)

Man kann dann per ZFS Dateisystem mit recsize und small block size festlegen was auf dem Plattenpool landet und was auf den SSD/NVMe.

z.B.
mit recsitze=256K und SBS=128K: alle Dateien des Dateisstems komprimiert <= 128K landen auf Flash, alle größeren auf Platte
mit recsitze=128K und SBS=128K: alle Dateien des Dateisystem landen auf Flash
 
Würd ich aber vermeiden weil Komplexität ein Gift für die Datensicherheit ist.
Natürlich, würde ich auch sagen. Ist nur blöd, weil ich schwer drum rum komm.
Kann man sich mit L2arc und ZIL Probleme einfangen?

ZFS hat mit special vdev einen wunderbaren Ansatz um einen Hybrid Pool mit schnellen SSD/NVMe und langsamen Platten zu kombinieren.
DAS gefällt mir wiederum nicht, obwohl sicher eine super Lösung.
Ich hätt ganz gern die "soft-Variante" mitm L2arc metadata probiert...
 
Versuch macht klug.
L2Arc und Slog sind ansonst unkritisch. Die dürfen auch ausfallen.
 
Uhm... ich hab jetzt mal mit fdisk meine Partitionen erstellt.
Dann hab ich mir mit blkid /dev/nvme0n1p... die gptid ausgeben lassen
/dev/nvme0n1p1: PARTUUID="00bd58e3-7efa-a....

Jetzt wäre es dann wohl Zeit für
zpool add apps cache gptid/00bd58e3-7efa-a...

So geht das aber wohl nicht. Ich bin mit der Verwendung von gptid nicht vertraut :)... Tips für mich?
 
Es gibt ja die UUID und die PARTUUID wenn ZFS ein ganzes Device erwartet (weiss ich jetzt nicht :d ) müsste man ja die UUID nehmen oder?

Wenn Du eine Partition statt eines ganzes devices nehmen willst kommt das halt auch auf die /dev/ Struktur bei Dir an (z.B. hier Linux) - bei mir z.B. ist die so denke dann müsste man "disk/by-partuuid/[xy]" nehmen als device, "/dev/" wird (in Linux/FreeBSD) meines Wissens automatisch ergänzt.

Die /dev/ Struktur sieht je nach Kernel etc auch mal etwas anders aus - also nicht ganz anders aber schon ein bisserl.

1719476893795.png
 
Zuletzt bearbeitet:
Also ich hab die SSD mit fdisk partitioniert, und möchte die Partitionen (nicht das ganze Device) jetzt eben zuweisen.

Wenn ich blkid /dev/nvme0n1p1 bis blkid /dev/nvme0n1p6 schreibe, bekomm ich entsprechende Ergebnisse in der Form von /dev/nvme0n1p1: PARTUUID="00bd58e3-7efa-a....

Diese möchte ich nun zuweisen per zpool add apps cache ??/?? (apps heisst das pool) ich weiss allerdings nicht, wie / in welcher Form ich diese ID anstelle meiner blauen Fragezeichen eintragen muss...
 
ja daan schau doch mal bei dir unter /dev/ nach wo in welchem Pfad die partuuids zu finden sind - bei mir an dem kurz getesten System z.b. unter /dev/disk/by-partuuid/

das musste halt erstmal rausfinden wo das bei Dir ist :) und den Pfad kannste dann nehmen (ohne /dev/) man kann nur raten wo das bei dir ist - aber nachschauen musste das selber. Ich glaube ich hatte auch mal einen Kernel in dem die Partuuid gar nicht automatisch eingebunden wurden, weiss aber nicht war das Linux oder FreeBSD....

der blaue Pfad ist der Pfad in Deinem System wo Dein System die Partuuids als devices hinterlegt ohne /dev/

ganz zur Not kannste ja auch (linux, freebsd) einfach ein
Code:
find /dev/ -name "00bd58e3-7efa*"
ODER sozusagen dann so wie es glaub fertig sein sollte (also /dev/ abgeschnitten)
find /dev/ -name "00bd58e3-7efa*" | sed 's/\/dev\///1'
(als root) machen damit Du den Pfad bekommst xD
 
Zuletzt bearbeitet:
Jo kannst ja mal dann evtl die Ausgabe einstellen vom find - allerdings einen cache habe ich noch nie hinzugefügt aber Dir geht es ja erstmal denke ich vor allem um den "Device Pfad"

Wegen Alignment ist es eigentlich auch nicht ganz verkehrt das ganze Device zu nehmen - glaube aber so wichtig wie früher ist das nicht mehr weil ZFS das teiweise selber inzwischen macht.
 
Angenommen ich mach es einfach mit /dev/nvme0n1p1 statt der ID, was ist das Problem/Risiko warum davon abgeraten wird?
Ich nehme an, wenn ich die SSD in einen anderen Slot einbaue, könnte es passieren, dass sie dann nicht mehr erkannt wird, oder?
 
Es reicht schon eine andere Platte zu entfernen damit sich die ID ändern kann. Ist aber unkritisch. Worst case ist ein nötiges Pool Export + Import.
 
ja das bei zfs echt super - das nutzt eigene Kennungen im ZFS selber wenn das zfs mal läuft dann bekommt man das mit umstöpseln an andere controller andere Rechner von sata auf usb etc eigentlich nicht mehr kaputt,
 
Also meinst du, dass ich wenn ich über /dev/nvme0n1p1 einbinde, sich das ZFS dann bei dem Vorgang "eine eigenen Kennung hineinschreibt" und es dann "wiederfindet"?
 
Genau das wird so sein man kann auch von sata auf usb gehen von controller x auf y von rechner a auf b - alles egal.

Ich meine wenn eine hdd ausfällt sagt zfs auch nicht ja da fehlt /dev/UUID21345 sondern das sagt da fehlt "irgendwas" mit der ZFSID 675675675676 - die Zuordnung device zur festen ZFSID ist glaub dynamisch
 
Zuletzt bearbeitet:
... also wäre der Umweg über die ID gar nicht zwingend nötig, wenn ichs nicht hinbekomm?
Ich werds aber versuchen.

Ich hätte nämdlich vor, die SSDs umzustecken, falls ich mal auf Bifurication-Adapter umsteige bzw. etwas an der PCIe Konfiguration ändern muss, um NIC/HBA unterzubringen...
 
ne man hat evtl wenn man von anderen raid systemen kommt oder von anderen OS sachen nur ein besseres Gefühl mit den UUIDs xD aber glaub technisch ist es kein Vorteil bei zfs.

Meine device namen habe ich alle brav am Anfang mit gptlabel partuuids und co erstellt, aber durch rechner und systemumzug - bei Erhalt der zfs Daten - sind das inzwischen nur noch zfs ids draus geworden :ROFLMAO: das haette ich mir auch damals sparen können.

was aber gut ist denn das heisst die ZFS Daten sind unabhängig von der Hardware und dem Systemaufbau.
 
Zuletzt bearbeitet:
Es gibt ja die UUID und die PARTUUID wenn ZFS ein ganzes Device erwartet (weiss ich jetzt nicht :d ) müsste man ja die UUID nehmen oder?

Wenn Du eine Partition statt eines ganzes devices nehmen willst kommt das halt auch auf die /dev/ Struktur bei Dir an (z.B. hier Linux) - bei mir z.B. ist die so denke dann müsste man "disk/by-partuuid/[xy]" nehmen als device, "/dev/" wird (in Linux/FreeBSD) meines Wissens automatisch ergänzt.

Die /dev/ Struktur sieht je nach Kernel etc auch mal etwas anders aus - also nicht ganz anders aber schon ein bisserl.

Anhang anzeigen 1007844
admin@XXX[~]$ ls /dev/disk/by-partuuid -l
total 0
lrwxrwxrwx 1 root root 15 Jun 26 23:58 00bd58e3-7efa-.... -> ../../nvme0n1p1

edit... habs jetzt aber einfach mit nvme0n1p1 gemacht und hoff mal, dass ZFS das schon tut... :d

Alle Pools sehen bei zpool status nun so aus:
1719519277063.png

Natürlich mit entsprechenden Partitionen... usw.
1719519341350.png


GUI zeigt nicht ganz richtig an:
Alle so, außer das letzte Z1:
1719519425318.png

1719519517180.png

Soll aber wohl kosmetischer Natur sein, was ich so gelesen hab.

Weiter dann mit der L2arc Konfiguration als Metadata Only, mal sehn.
 
Zuletzt bearbeitet:
ist ja eh nur ein symbolic link in /dev/ passt also

zpool status denke ich ist das einzige das ausschlaggebend ist, der Rest ist ja "nur" Oberfläche die das versucht sinnvoll zu interpretieren.
 
Ein sinnvoller Weg zu überprüfen, ob das mit den gesplitteten l2arcs so geht?
 
Hallo in die ZFS Runde :d
Ich benoetige (mal wieder) eure Schwarmintelligenz.

Habe mir vor ca. 3-4 Jahren meinen ZFS Filer gebaut. Besteht aus 4 qlc SSDs und gestartet habe ich mit TrueNas core (bsd).
Lief auch immer alles wunderbar inkl. Snapshots etc. Performance war auch immer super.

Mittlerweile alles umgezogen und den Pool auf ein Truenas Scale (debian/ubuntu?!) umgezogen.

Seither sind Dateioperationen bei kleinen Dateinen wirklich lahm geworden.

Der Pool ist zu ca 80% voll. Slog und Arc gibts nicht. Einfach nur die 4SSDs.

Wollte das Ding jetzt nicht komplett abreissen und neu machen. Kann man das irgendwie ‚debuggen‘ oder Hilft hier nur die Brechstange?
Backup ist vollstaendig vorhanden. Wuerde nur ewig dauern.
 
naja ein start ist ein zpool list %poolname% dann sollte das so aussehen.

Frag ist z.B. interessant und sollte idealerweise 0% sein sobald FRAG steigt wird es Zeit aufzuräumen oder zu erweitern.


1719524862340.png
 
Zuletzt bearbeitet:
Viel zu „retten“ ist da leider nicht.
Problem 1: QLC SSDs haben einen dynamischen Pseudo-SLC Cache. Je voller die SSD ist desto kleiner wird der und die Schreibraten sinken massiv. Und dazu kommt Problem 2: ZFS (und auch alle anderen CoW Systeme) mögen Füllstände über 80% überhaupt nicht. Da ist nicht viel zu „tunen“ oder retten, da müssen größere SSDs her falls RaidZ oder zusätzliche vdevs falls Mirror. Pool muss größer werden, idealerweise unter 50% Füllstand.
 
@mrpasc Problem 1 trifft nicht zu, da Enterprise QLCs (Micron ION 5210) ohne komischen Cache und PLP.

Aber gut zu wissen dass das mit steigendem Fuellstand ‚normal‘ ist.

Wuerde es was bringen irgendwo ne Optane reinzupacken oder eher mal Ausmisten bzw. Den Pool erweitern?
Wie wuerde das aussehen? Aktuell sind die 4 Platten an nem HBA als Z1 definiert. Da koennen noch 4 weitere dran. Dank dir!

1719526157196.png


Kritisch? :d Kann das nicht so wirklich deuten...

Platten scheinen auch i.O.
1719526896644.png


Mussten laut meiner Berechnung bisher nur ca. 300TB geschrieben haben.
 
Zuletzt bearbeitet:
Frag ist z.B. interessant und sollte idealerweise 0% sein sobald FRAG steigt wird es Zeit aufzuräumen oder zu erweitern.
Spannend.
1719526336695.png

Warum ist mein "apps" Pool so fragmentiert? Dort liegen meine VMs und eben die "Apps" (also diese TrueCharts Container Dinger etc.). Irgen dein temp. Share hab ich dort auch noch, primär zum benchen/testen.

wird es Zeit aufzuräumen
Meinst einfach per Löschen von Dateien den Füllstand senken?
 
Eine gewisse Fragmentierung ist nichts böses sondern normal für ein Copy on Write Filesystem bei dem jedwede Schreibaktion komplett neue Datenblöcke anlegen muss. Auch gibt es praktisch keine sequentiellen Writes. Neue Datenblöcke werden im Pool verteilt um möglichst konstante Performance auch bei vielen Usern/Dateien zu gewährleisten. Lediglich der gute ZFS Schreib/Lesecache sorgt dafür dass die Performance dennoch sehr gut ist. Den sollte man nie abschalten oder einschränken.

Ab 50% Füllrate sinkt die Performance mit mechanischen Platten dennoch spürbar, ab ca 80% deutlich.
 
Ab 50% Füllrate sinkt die Performance mit mechanischen Platten dennoch spürbar, ab ca 80% deutlich.
Trifft das auch bei SSDs zu?

Koenntest du eine Empfehlung abgeben was du an meiner Stelle tun wuerdest um den Pool wieder flott zu bekommen?
 
SSD haben kein Problem mit Fragmentierung dafür das Problem dass man halbvolle Blöcke nur nach read/delete/update neu beschreiben kann. Auch haben SSD Probleme bei concurrent read/write oder steady write. Auch haben sie oft keine Powerloss Protection.

Kommt also auf den use case und die SSD an.
ZFS Tuning ist immer eine Abwägung je nach use case und Geldbeutel.

Was soll erreicht werden, was hat man und was will man investieren?
 
Was soll erreicht werden, was hat man und was will man investieren?
Ich hab den Kram schon am Laufen :d
ein paar Postings weiter oben sollten die wichtigsten Infos bereitliegen.

Z1 Pool bestehend aus 4x7x68tb (micron ion 5210 //qlc ssd, plp, kein slc pseudo).
Fuellstand > 80%, wird allmaehlich langsam der Pool.
Das Ganze laeuft jetzt schon seit bald 4 Jahren stressfrei, aber es wird halt langsam...

Wie bekomm ich das wieder ans Fliegen?
Wie wuerde ne Erweiterung aussehen? Kann der bestehende Z1 Pool einfach vergoeßert werden?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh