[Sammelthread] ZFS Stammtisch

Danke für die ausführliche Erklärung!
Wie spielt jetzt L2ARC und Schreibcache auf einer SSD da rein?
Sollte man L2ARC erst nehmen wenn man nicht mehr RAM ins System bekommt?

Wie ludwinator schreibt, L2Arc bring bei ausreichend RAM keine Extra Performance bzw bei zu wenig RAM macht ein RAM Ausbau mehr Sinn

Die Situation dass man RAM nicht mehr ausreichend erweitern kann, wird es wohl kaum noch geben.
Bei einem Heimserver mit relativ wenig Dateien und Nutzern sind 16-32GB RAM ausreichend, bei einem professionelleren Filer 32-64GB so dass mehr RAM wenig bringt - es sei denn man hat sehr viele User, sehr viele Dateien oder eine hohe Volatilität mit vielen Änderungen. Dann bedeutet mehr RAM dass mehr Metadaten oder häufiger letzte Datenblöcke im Cache liegen (schnellerer Zugriff)

Aber
L2Arc SSD Lesecache ist persistent. Das bedeutet dass der Inhalt bei Reboot erhalten bleibt.
Arc RAM Cache wird gelöscht und muss erst wieder angelernt werden.

Auf einem L2Arc kann man read ahead (vorausschauendes Lesen) aktivieren.
Das kann manchmal etwas Performance bringen.

Schreibcache auf SSD
Das gibts bei ZFS nicht. Schreibcache ist ausschließlich schnelles RAM.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich weiß nicht ob das ein Bug ist oder gewollt.
Ich habe mal Testweise ein Ubuntu Server 22.04.1 eingerichtet mit ZFS für das Mirror.

Dort wird unter "zpool list" wie auch "iostat" nur belegter Speicher des Pools angezeigt, wenn die Daten in einem Dataset liegen.
Liegen diese direkt im Pool, werden sie nicht mitgerechnet.
 
Ich vermeide Linux bei ZFS aber wie sieht denn die Ausgabe von
zfs list -t filesystem aus?

Mit zfs list kann man die dataset Typen filesystem, snapshot oder volume gezielt auflisten mit used und avail

ps
Ein Pool ist auch ein ZFS Dateisystem, quasi der Parent der darin enthaltenen Dateisysteme, gut um mit Vererbung von Eigenschaften zu arbeiten.
 
Ich habe mal wieder eine Frage: Kann man irgendwie anzeigen lassen, mit welcher Record Size eine Datei gespeichert ist? Und eventuell sogar nur Dateien, die mit einer bestimmten Record Size gespeichert wurden?

Danke im Voraus!
 
Geht nicht, dann bekomme ich diese Rückmeldung:
Code:
invalid option 't'
usage:
        list [-gHLpPv] [-o property[,...]] [-T d|u] [pool] ...
            [interval [count]]

the following properties are supported:

        PROPERTY             EDIT   VALUES

        allocated              NO   <size>
        capacity               NO   <size>
        checkpoint             NO   <size>
        dedupratio             NO   <1.00x or higher if deduped>
        expandsize             NO   <size>
        fragmentation          NO   <percent>
        free                   NO   <size>
        freeing                NO   <size>
        guid                   NO   <guid>
        health                 NO   <state>
        leaked                 NO   <size>
        load_guid              NO   <load_guid>
        size                   NO   <size>
        altroot               YES   <path>
        ashift                YES   <ashift, 9-16, or 0=default>
        autoexpand            YES   on | off
        autoreplace           YES   on | off
        autotrim              YES   on | off
        bootfs                YES   <filesystem>
        cachefile             YES   <file> | none
        comment               YES   <comment-string>
        compatibility         YES   <file[,file...]> | off | legacy
        delegation            YES   on | off
        failmode              YES   wait | continue | panic
        listsnapshots         YES   on | off
        multihost             YES   on | off
        readonly              YES   on | off
        version               YES   <version>
        feature@...           YES   disabled | enabled | active

The feature@ properties must be appended with a feature name.
See zpool-features(7).

zfs list (ohne -t geht)
Code:
NAME       SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
datapool   464G  96.0G   368G        -         -     0%    20%  1.00x    ONLINE  -

Hier werden wie erwähnt aber nur Daten mitgezählt, die in einem Dataset liegen.
Stört mich im Gunde nicht, da ich soweiso versch. Datasets machen möchte. Finde es nur seltsam.

Und der Pool ist auch i.O.:
Code:
  pool: datapool
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        datapool    ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            drive0  ONLINE       0     0     0
            drive1  ONLINE       0     0     0

errors: No known data errors
 
@toscdesign
Der Befehl lautet (benötigt. Angabe des Types filesystem)
zfs list -t filesystem

Dass der Inhalt der Dateisysteme gezeigt wird ist klar. ZFS arbeitet ja nicht wie alte Dateisysteme mit Partitionen die fest in der Größe sind sondern als "Pool". Die Größe des Pools kann dynamisch wachsen indem neue vdevs angefügt werden. Das Pool Dateisystem (/datapool) selber kann man mit Daten füllen, macht man aber normalerweise nicht, sondern legt darunter Dateisysteme anz.B. datapool/data die dann die Daten enthalten. Datapool nutzt man nur um Default Vorgaben z.B. recsice oder Compress für die darunter liegenden Dateisysteme zu setzen.

Zudem
Wenn man per zfs send ein Dateisystem kopiert, landet es unterhalb eines Zieldateisystems. Ein pool Dateisystem selber kann man damit nicht auf oberste Ebene eines anderen Pools kopieren, Tochterdateisysteme schon.

Nochmal zur Größe.
Ein zfs list datapool zeigt damit mit used die Daten die auf datapool und enthaltenen Dateisystemen gespeichert sind
Egal ob auf Pool Ebene oder einem enthaltenen Dateisystem zeigt avail den verfügbaren Platz des gesamten Pools

Dateisystem-Virtualisierung
Will man den Platz verringern den ein Dateisystem max beanspruchen kann, setzt man eine Quota
Will man für ein Dateisystem Platz garantieren, setzt man eine Reservierung. Avail für alle anderen Dateisysteme reduziert sich dann entsprechend.
Fügt man dem Pool ein vdev hinzu, steigt avail für alle entsprechend


@Multiverse
Mir ist kein Tool bekannt um das auszulesen. Wäre auch sehr resourcenintensiv.
Vorgehensweise ist eher:

Man definiert den Use Case eines Dateisystems, setzt dafür ein recsize und alle folgenden Schreibaktionen
(zur Not ein Copy für alte Daten) nutzen dann die dafür optimierte recsize

z.B.
tank/media 1M
tank/vm 64k
tank/mysql 16k

Kleine recsize sind für allgemeine Anwendungen kontraproduktiv. 128k Default ist ein guter Mittelweg für beliebige Daten.

Recsize definiert dabei die maximale Größe des ZFS Blocks. Die tatsächliche kann dynamisch kleiner sein wenn man kleine Daten schreibt oder durch compress geringer sein.
 
Der Befehl lautet (benötigt. Angabe des Types filesystem)
zfs list -t filesystem
Die Ausgabe lautet:
Code:
NAME            USED  AVAIL     REFER  MOUNTPOINT
datapool       96.0G   354G       24K  /datapool
datapool/set1  96.0G   354G     96.0G  /datapool/set1

Danke für dei ausfühliche Erklärung (y)
Dann passt das ja mit dem Vorgehen, einzelne Datasets zu erzeugen.

EDIT:
Wobei Performance Tests gezeigt haben das in meinem Szenario btrfs "the way to go" ist.
Aber trotzdem danke für die Hilfe (y)
 
Zuletzt bearbeitet:
@gea : Danke für die Antwort, ich werde dann wohl zur Lösung des Problems einfach alles auf dem gleichen Storage von einem Ordner in den anderen kopieren (nicht verschieben!). Das sollte es dann endgültig in Ordnung bringen!
 
Ich wollte gerne zusätzliche drei HDDs zu einem zfs3 Pool hinzufügen, um die Kapazität zu erweitern. ist dies nicht möglich?
 
zfs soll doch so flexibel sein und dann kann mein kein Platten direkt zum Pool hinzufügen. :poop:
Beitrag automatisch zusammengeführt:

Das Freature ist 2021 geplatn gewesen (zpool attach):
 
Zuletzt bearbeitet:
Meines Wissens noch immer nicht Teil von OpenZFS (und erst recht nicht von illumos-ZFS), auch wenn es schon weitgehend fertig sein soll.
Danke. Wie lange dauert in der regel eine Übernahme der Features von OpenZFS nach illumos-ZFS?

EDIT:
Bzw. sind die ZFS unteinenader Kompatibel? Also sobald OpenZFS es unterstützt ein BS auf einem Datenträger installieren, die HDDs zum Pool hinzufügen und dann wieder in TrueNAS importieren?

Dort wird 2022 Q3 als Abschluss der Feinarbeiten genannt, gibt es aktuelle Infos?
 
Zuletzt bearbeitet:
Danke. Wie lange dauert in der regel eine Übernahme der Features von OpenZFS nach illumos-ZFS?

Illumos ist featureweise ziemlich in sync mit OpenZFS (=ZFS codebasis on Linux/BSD). Wichtige Features durchlaufen vor Übernahme den normalen Illumos Freigabeprozess, vor Übernahme in OmniOS stable nochmal eine weitere Überprüfung. Erweiterbare Z1-Z3 vdevs ist jetzt zwar eher ein Home als ein Enterprise Feature, ich denke aber dass die Illumos Entwickler das dennoch als wichtiges Feature für eine baldige Übernahme ansehen. Das Gegenteil, vdev entfernen oder ZFS Verschlüssellung wurde auch sehr schnell übernommen.

Es gibt auch durchaus Überlegungen, OpenZFS als Upstream direkt zu verwenden. Es gibt aber Solaris eigene Extras die es in OpenZFS nicht gibt, z.B. den kernelbasierten SMB Server mit Windows SID statt Unix uid/gid als ACL Referenz und gespeichert in ZFS. Da sind immer Anpassungen nötig. Reine ZFS Sachen werden aber meist rasch übernommen. Der ZFS Code war ja bis vor ca 2 Jahren noch komplett Illumos. Luux Entwickler steuern aber aktuell mehr zum freien ZFS bei als Illumos Entwickler (gibt einfach mehr davon).

Verfolgen kann man die Illumos/OmniOS Entwicklung hier
 
Slog ist kein schreibcache. (Bitte 10x wiederholen)

Slog verringert (verteilt) nur die massive Verlangsamung / Schreiblast von "sync" writes.

Async writes werden immer schneller sein als sync writes - auch mit dem schnellsten slog. Async writes werden durch ein slog nicht verändert.*

Write cache gibt es nur im RAM.

* Wenn du gleichzeitig async und sync writes auf den gleichen Pool hast, verringert ein slog natürlich die "Verstopfung" des Pools etwas und die async writes werden nicht durch die sync writes runtergezogen.
 
So isses.
Schreibcache ist RAM. Stürzt der Rechner ab, ist der Inhalt des Schreibcaches verloren. ZFS ist das wegen Copy on Write egal und es bleibt heil. Liegt auf ZFS aber z.B. eine VM mit einem anderen Dateisystem so ist das eventuel kaputt. Man muss daher dafür sorgen können dass bestätigte Writes tatsächlich auf dem Pool sind. Und dafür ist das Slog da (Slog wie separates Logging Device). Es protokolliert alle bestätigten writes auf diesem schnellen Device. Stürzt der Rechner ab, werden fehlende Writes beim Reboot nachgeholt. Sonst wird das Slog nie gelesen, ergo kein Cache. Hat also die gleiche Funktion wie Cache + Batterie bei Hardwareraid. Ohne Slog findet das Logging bei aktiviertem Sync auf dem Pool selber statt (langsam).

Slog muss daher nur ca doppelt so groß sein wie der Writecache. Hausnummer 10 GB dafür aber ultraschnell (viel write iops, niedrige Latenz, Powerloss Protection, z.B. Intel Optane)
 
Zuletzt bearbeitet:
Hi gea,

mir war aufgefallen, dass nach einem update auf napp-it 23.01a der apache nach reboot, respektive napp-it restart wieder nicht aktiv war.

OS: Solaris 11.4 CBE

Beim 1. System war es ein Upgrade von 22.06a auf 23.01a.

Hier gab es danach wieder das Problem mit der Anlage des cgi socket file
Code:
[Sat Feb 18 10:05:33.592510 2023] [ssl:warn] [pid 1490:tid 1] AH01906: 127.0.0.1:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sat Feb 18 10:05:33.592643 2023] [ssl:warn] [pid 1490:tid 1] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Sat Feb 18 10:05:33.616875 2023] [ssl:warn] [pid 1491:tid 1] AH01906: 127.0.0.1:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sat Feb 18 10:05:33.616961 2023] [ssl:warn] [pid 1491:tid 1] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Sat Feb 18 10:05:33.618370 2023] [core:warn] [pid 1491:tid 1] AH00098: pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat Feb 18 10:05:33.619213 2023] [cgid:error] [pid 1492:tid 1] (2)No such file or directory: AH01243: Couldn't bind unix domain socket /var/run/apache2/2.4/cgisock.1491
[Sat Feb 18 10:05:33.621184 2023] [mpm_event:notice] [pid 1491:tid 1] AH00489: Apache/2.4.51 (Unix) OpenSSL/1.0.2za configured -- resuming normal operations
[Sat Feb 18 10:05:33.621385 2023] [core:notice] [pid 1491:tid 1] AH00094: Command line: '/usr/apache2/2.4/bin/httpd -f /var/web-gui/data/tools/httpd/apache24/solaris/config/httpd.conf'
[Sat Feb 18 10:05:34.621634 2023] [cgid:crit] [pid 1491:tid 1] AH01238: cgid daemon failed to initialize
[Sat Feb 18 10:06:18.287109 2023] [cgid:error] [pid 1493:tid 3] (2)No such file or directory: [client 192.168.1.10:57629] AH01257: unable to connect to cgi daemon after multiple tries: /var/web-gui/data/wwwroot/cgi-bin/admin.pl


Beim 2. System lief bis dato noch gar keine napp-it Version mit Apache, hier was es in Upgrade von 22.03b auf 23.01a
Code:
[Sat Feb 18 10:34:10.910887 2023] [ssl:warn] [pid 6256:tid 1] AH01906: 127.0.0.1:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sat Feb 18 10:34:10.910995 2023] [ssl:warn] [pid 6256:tid 1] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Sat Feb 18 10:34:10.948754 2023] [ssl:warn] [pid 6259:tid 1] AH01906: 127.0.0.1:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sat Feb 18 10:34:10.948840 2023] [ssl:warn] [pid 6259:tid 1] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Sat Feb 18 10:34:10.952226 2023] [cgid:error] [pid 6263:tid 1] (2)No such file or directory: AH01243: Couldn't bind unix domain socket /var/run/apache2/2.4/cgisock.6259
[Sat Feb 18 10:34:10.955437 2023] [core:error] [pid 6259:tid 1] (2)No such file or directory: AH00099: could not create /var/run/apache2/2.4/httpd.pid.EFwGda
[Sat Feb 18 10:34:10.955544 2023] [core:error] [pid 6259:tid 1] AH00100: httpd: could not log pid to file /var/run/apache2/2.4/httpd.pid

Hier traten dann sowohl das PID file Problem, als auch das cgi socket Problem auf. Vergleich auch #12.380
Ich hatte irgendwie im Hinterkopf, dass du was zur Korrektur eingebaut hattest, Upgrade erfolgte ganz normal
über die GUI und die Funktion "download 23.01" Punkt.

Hätte dann doch eigentlich out of the box die Umstellung funktionieren sollen oder übersehe ich da irgendwas?
 
Ich hatte ich das geändert, nutze aber Solaris nur für einzelne Tests:

prinzipiell sollte es so funktionieren
Startscript: /etc/init.d/napp-it

Da nutzt man als config /var/web-gui/data/tools/httpd/apache24/solaris/config/httpd.conf oder für
eigene Apache Anpassungen /var/web-gui/_my/tools/apache/httpd.conf (Ist Update sicher)

Code:
apachecmd () {
     if [ ! -f /var/web-gui/_my/tools/apache/no.apache ];
     then

        echo 'start Apache'
         # start my Apache on port 80/443

         if [ -f /var/web-gui/_my/tools/apache/httpd.conf ];
         then
            # OmniOS
            if [ -d /opt/ooce/apache-2.4 ];
            then
             # my Apache
             /opt/ooce/apache-2.4/bin/apachectl -k start -f /var/web-gui/_my/tools/apache/httpd.conf
            else
             # my Solaris
             /usr/apache2/2.4/bin/apachectl -k start -f /var/web-gui/_my/tools/apache/httpd.conf
            fi
         else
            #default Apache
            if [ -d /opt/ooce/apache-2.4 ];
            then
              # default OmniOS
               /opt/ooce/apache-2.4/bin/apachectl -k start -f /var/web-gui/data/tools/httpd/apache24/omnios/config/httpd.conf
            else
               # default Solaris
               /usr/apache2/2.4/bin/apachectl -k start -f /var/web-gui/data/tools/httpd/apache24/solaris/config/httpd.conf
            fi
         fi
     fi

}
 
Zuletzt bearbeitet:
Jeder der ZFS AiO benutzt (ESXi + NFS Storage) sollte sich das mal anschauen.

 
Zuletzt bearbeitet:
Moin, gibts ne Möglichkeit, die Host-ID eines zpools nachträglich an eine neue Host-ID anzupassen ?
Hintergrund: alte Solaris VM startet auf neuem Host nicht mehr, -> Solaris neu installiert, -> Vergessen den Pool zu exportieren, -> jetzt versucht zu importieren:
1677350024831.png

Andernfalls muss ich das auf dem alten Host nochmal zum Laufen bekommen...
 
Da bin ich gespannt @sch4kal. Ich hätte gedacht, dass sowas keine Rolle spielt. Ich habe einen Pool schon durch verschiedeneste VMs genommen. Mal OmniOS, mal TrueNas. Und derlei Probleme habe ich nicht gehabt. Pools einfach importiert, nicht immer sauber exportiert. Glück gehabt?
 
Da bin ich gespannt @sch4kal. Ich hätte gedacht, dass sowas keine Rolle spielt. Ich habe einen Pool schon durch verschiedeneste VMs genommen. Mal OmniOS, mal TrueNas. Und derlei Probleme habe ich nicht gehabt. Pools einfach importiert, nicht immer sauber exportiert. Glück gehabt?
Danke, konnte das alte Solaris doch wieder starten und den Pool exportieren, jetzt funktioniert es.
Hätte da noch eine kleine Frage an @gea: gibt es von napp-it irgendwo eine Sicherungsdatei auf dem Filesystem ? Ging mir da besonders um bereits angelegte Jobs für Snapshots, Scrubs, smartchecks usw.
 
  • Danke
Reaktionen: you
Bei mir macht napp-it automatisch Sicherungen (dataset "backup") auf den Daten -Pool - keine Ahnung, ob ich das vor X Jahren eingestellt habe oder das automatisch gemacht wird?
 
Hätte da noch eine kleine Frage an @gea: gibt es von napp-it irgendwo eine Sicherungsdatei auf dem Filesystem ? Ging mir da besonders um bereits angelegte Jobs für Snapshots, Scrubs, smartchecks usw.

Job > Backup > create backup job
bzw. Comstar > Full Save/Restore > Backup (inkl. iSCSI Config)

Daten landen auf dem /datenpool/backup_appliance
 
Zuletzt bearbeitet:
Moin,
ich nutze ZFS nun seit ca. 9 Jahren auf meinen Ubuntu Servern.
Bei meinem kleinen NAS würde ich gern etwas den Stromverbrauch reduzieren und die HDDs bei nicht Zugriff nach ca. 1h in den Sleep Modus versetzen. Das war früher nicht möglich, da ZFS immermal wieder routinemäßig auf die HDDs zugreift. Hat sich daran etwas geändert? Ich denke mal nicht. Falls nicht, welches Dateisystem könnt ihr alternativ für diesen Zweck empfehlen? Ich habe BTRFS im Blick, wobei das ja angeblich noch nicht 100% stabil läuft. Stimmt das?
 
Ich wüsste von keinem ZFS Mechanismus bei irgendeiner aktuellen ZFS Plattform der regelmäßig auf die Platten zugreift,
Ein Wechsel des Dateisystems wird also nichts bringen. Btrfs dürfte zumindest im Raid-1 stabil sein, hat aber nicht so viele Features wie ZFS.

Es gibt aber Betriebssystem Dienste die regelmäßig auf die Platten zugreifen können z.B,
-Fehlermanager wie z.B. der fmd bei Solaris. Wenn der ein ernstes Problem entdeckt nimmt er das entsprechende Device offline um Schaden zu begrenzen,
-Tools wie smartmonttools könnten regelmäßig Platten prüfen
-Mailalert oder Monitoring Tools prüfen regelmäßig Platten

Will man die Platten schlafen legen, müssen derlei Dienste deaktiviert werden.
Gibt dann halt keine Warnungen mehr.

ps
Ein Aufwachen kann bis zu 1 min Verzögerung beim Zugriff bedeuten.
Manche Programme warten nicht so lange sondern quittieren das mit einem Fehler
 
Ja das mit der Latenzzeit hab ich mir auch schon gedacht. Ich werde erstmal versuchen die Gesamtlaufzeit durch automatisches starten/runterfahren des NAS zu reduzieren. Dann kann ich ihn leider nicht mehr als Router verwenden, aber das kann ich verkraften.
 
Ein Router auf dem NAS?

Würde ich vermeiden.
Die zwei IT Basisdienste VM Server und Storage würde ich immer getrennt und so minimalistisch wie möglich auslegen. Die sollten praktisch immer laufen. Ein Extra Dienst der auch Pflege braucht und mal rumzicken kann stört da gerne.
 
Die Latenzzeit hat bei mir regelmäßig dafür gesorgt, dass meine Veeam Agent backups abbrechen/nicht starten. Ich bin deshalb vor mehreren Jahren komplett auf SSD umgestiegen. (HDD nur noch für Backup vom NAS)
 
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