OPNsense Forum

International Forums => German - Deutsch => Topic started by: Reiter der OPNsense on April 22, 2022, 02:26:54 pm

Title: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Reiter der OPNsense on April 22, 2022, 02:26:54 pm
Hallo allerseits

Die Pro-Argumente für das ZFS-Dateisystem (u. A. hier: https://forum.opnsense.org/index.php?topic=21163.30) haben mich dazu veranlasst, eine APU2 mit 4 GB RAM und einer 16 GB SSD entsprechend zu installieren. Dabei habe ich die Standardeinstellungen des Installationsassistenten verwendet.

Das Ergebnis sieht so aus:
Code: [Select]
Memory usage: 24 % (1005/4035 MB)

SWAP usage: 0 % (0/8192 MB)

Disk usage:
15% / [zfs] (911M/6.0G)
1% /boot/efi [msdosfs] (1.8M/260M)
0% /tmp [zfs] (652K/5.1G)
0% /zroot [zfs] (96K/5.1G)
0% /var/mail [zfs] (136K/5.1G)
0% /var/audit [zfs] (96K/5.1G)
0% /usr/ports [zfs] (96K/5.1G)
5% /var/log [zfs] (291M/5.4G)
0% /var/tmp [zfs] (96K/5.1G)
0% /usr/src [zfs] (96K/5.1G)
0% /usr/home [zfs] (96K/5.1G)
0% /var/crash [zfs] (96K/5.1G)
0% /var [tmpfs] (36M/11G)
0% /tmp [tmpfs] (200K/11G)

Drei Fragen dazu:
1. Der Installer erzeugt eine relativ grosse Swap-Partition. Braucht es die spezifisch für ZFS und wenn ja, ergibt es aus technischer Sicht Sinn, wenn diese so gross ist? Randbemerkung: Wenn man unter System --> Settings --> Miscellaneous "Add a 2 GB swap file to the system" angehakt, dann wird neben der Swap-Partition eine zusätzliche Swap-Datei erstellt.

2. Ergibt es aus technischer Sicht Sinn, wenn man beim Einsatz einer so kleinen SSD für /var und /tmp eine RAM-Disk verwendet zur Erhöhung der SSD-Lebensdauer?

3. Ein Blogger meint, dass gewisse Volumes für OPNsense "nicht unbedingt zweckmäßig" seien und entfernt diese kurzerhand (https://ip6.li/de/howto/bsd/opnsense-mit-zfs). Was meinen die Experten dazu? Kosmetik? Kontraproduktiv? Feature request?

Gruss, Stefan
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Patrick M. Hausen on April 22, 2022, 02:33:19 pm
Die Swap-Partition ist in der Tat etwas groß. Die könnte man u.U. nachträglich verkleinern, auf z.B. 4G, dann die ZFS-Partition vergrößern und den Zpool anpassen.

Der Haken ist, dass ich das noch nie in einer Situation gemacht habe, wo die ZFS-Partition "vorne" größer wird. Hinten anhängen, z.B. weil man eine virtuelle Platte in einer VM vergrößert hat, müsste man ausprobieren.

Ich haue zroot/usr/src und zroot/usr/ports weg, die sind sinnlos, wenn man nicht entwickelt. Den Rest kannst Du m.E. so lassen.

Ein extra Swapfile sollte man nicht anlegen. Wenn die Swapdatei in ZFS liegt und es dann zu "memory pressure" kommt wegen des ZFS-Cache, dann kann die Kiste sich aufhängen. Eine statische Swap-Partition ist sinnvoller. Aber nicht unbedingt mit 8G, wenn man nur 16G SSD hat.
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: JeGr on April 22, 2022, 03:57:51 pm
Sind /usr/srv etc. wirklich Volumes oder sind das nicht einfach nur Dataset Einstellungen des gleichen zroots? Wird damit nicht einfach einfach nur diverse Settings um/-gesetzt? Denke da jetzt aus der TruNAS Sicht, wo ich ja auf dem gleichen Pool auch mehrere Datasets definiere um bspw. für einen Verzeichnisbaum/Share inline compression anzumachen während das auf anderen Shares in anderen Datasets keinen Sinn macht (oder Dedup, Filecopies etc.)?

Cheers
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Reiter der OPNsense on April 22, 2022, 06:01:10 pm
Ah ja, danke, ich lese gerade, dass Swap-Dateien generell nicht von ZFS unterstützt werden. Somit sollte man sich bei der Installation entscheiden, ob man eine Swap-Partition anlegen will oder nicht.

Ich bin gerade mit dem Installer am rumprobieren. Wenn man "Other Modes / Extendet Installation" --> "Auto (ZFS) / Guided Root-on-ZFS" wählt, dann wird standardmässig eine 2 GB Swap-Partition vorgeschlagen. Wenn man dort 0 GB eingibt, wird wiederum eine Swap-Partition mit 8 GB angelegt.
Um eine ZFS-Installation ohne Swap-Partition zu bekommen, könnte man wohl via "Manual / Manual Disk Setup (experts)" zum Ziel kommen. Das ist mir aber zu zeitaufwändig. Falls jemand eine Anleitung zur Hand hat, gerne her damit.

In all den Jahren, in denen ich mit diesen APU2-Boxen mit 4 GB RAM arbeite, bin ich mit meinen bescheidenen Settings noch nie in Verlegenheit gekommen, eine Swap-Datei anlegen zu müssen.

Lange Rede, kurzer feature request: Bei der voll- und halbautomatischen ZFS-Installation wäre eine Option "Create a Swap-Partiton": yes/no und ggf. Size nett. Oder zumindest bei der vollautomatischen Variante die Grösse für die Swap-Partiton ebenfalls auf einen sinnvollen Wert festlegen, je nach Speicherkapazität des Datenträgers und/oder installierten RAM.
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Patrick M. Hausen on April 22, 2022, 06:37:11 pm
Hallo Jens,

Sind /usr/srv etc. wirklich Volumes oder sind das nicht einfach nur Dataset Einstellungen des gleichen zroots?
Was meinst du mit Volumes? /usr/src und /usr/ports sind eigene Datasets im selben Pool "zroot".

Da die von traditionellen Tools aber als "Filesysteme" interpretiert werden, tauchen die mit einem eigenen Eintrag im Dashboard Widget oder z.B. per SNMP im Observium auf, werden aber innerhalb von OPNsense nicht gebraucht. Deshalb haue ich die weg.

Der OPNsense-Installer legt einfach den FreeBSD-Standard an.

Code: [Select]
root@opnsense:~ # zfs list
NAME              USED  AVAIL     REFER  MOUNTPOINT
zroot            5.00G   233G       88K  /zroot
zroot/ROOT       4.77G   233G       88K  none
zroot/ROOT/22.1  4.77G   233G     1.25G  /
zroot/tmp         276K   233G      276K  /tmp
zroot/usr         176K   233G       88K  /usr
zroot/usr/home     88K   233G       88K  /usr/home
zroot/var         206M   233G       88K  /var
zroot/var/audit    88K   233G       88K  /var/audit
zroot/var/crash    88K   233G       88K  /var/crash
zroot/var/log     206M   233G      206M  /var/log
zroot/var/mail    120K   233G      120K  /var/mail
zroot/var/tmp      88K   233G       88K  /var/tmp
Dazu dann eben noch /usr/src und /usr/ports, die ich bei mir nicht mehr habe. Das "zroot/ROOT/22.1" ist ein Boot Environment, das ich mit bectl angelegt habe, siehe meinen Beitrag dazu:
https://forum.opnsense.org/index.php?topic=25540

Gruß
Patrick
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Patrick M. Hausen on April 22, 2022, 06:38:46 pm
Ah ja, danke, ich lese gerade, dass Swap-Dateien generell nicht von ZFS unterstützt werden. Somit sollte man sich bei der Installation entscheiden, ob man eine Swap-Partition anlegen will oder nicht.
Du verwechselst da was. Eine Swap-Datei innerhalb des ZFS sollte man nicht verwenden. Eine Swap-Partition außerhalb von ZFS dagegen sehr wohl. Ich würde eine von 2-4 GB Größe anlegen.

Gruß
Patrick
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Reiter der OPNsense on April 22, 2022, 07:00:55 pm
Ah ja, danke, ich lese gerade, dass Swap-Dateien generell nicht von ZFS unterstützt werden. Somit sollte man sich bei der Installation entscheiden, ob man eine Swap-Partition anlegen will oder nicht.
Du verwechselst da was. Eine Swap-Datei innerhalb des ZFS sollte man nicht verwenden. Eine Swap-Partition außerhalb von ZFS dagegen sehr wohl. Ich würde eine von 2-4 GB Größe anlegen.

Ähm, genau so meine ich das ja auch.
Eine Swap-Datei kann man ja jederzeit ohne Aufwand via GUI erstellen und einhängen, ohne etwas an den Partitionen ändern zu müssen. Aber dies sollte man beim Einsatz des ZFS-Dateisystems nicht machen, wie Du korrekt erwähnst. Das wäre auch noch ein feature request: Die Option Swap-Datei erstellen beim Einsatz von ZFS im GUI ausblenden.
Eine Swap-Partition hingegen erstellt man am besten gleich bei der Installation, wenn man nicht nachträglich "rumbasteln" will. Und hierbei wäre eine Auswahlmöglichkeit nett, ob man diese überhaupt will und wie gross sie sein soll.
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: JeGr on April 27, 2022, 10:13:11 am
Hallo Jens,

Sind /usr/srv etc. wirklich Volumes oder sind das nicht einfach nur Dataset Einstellungen des gleichen zroots?
Was meinst du mit Volumes? /usr/src und /usr/ports sind eigene Datasets im selben Pool "zroot".

Da die von traditionellen Tools aber als "Filesysteme" interpretiert werden, tauchen die mit einem eigenen Eintrag im Dashboard Widget oder z.B. per SNMP im Observium auf, werden aber innerhalb von OPNsense nicht gebraucht. Deshalb haue ich die weg.

Der OPNsense-Installer legt einfach den FreeBSD-Standard an.

Code: [Select]
root@opnsense:~ # zfs list
NAME              USED  AVAIL     REFER  MOUNTPOINT
zroot            5.00G   233G       88K  /zroot
zroot/ROOT       4.77G   233G       88K  none
zroot/ROOT/22.1  4.77G   233G     1.25G  /
zroot/tmp         276K   233G      276K  /tmp
zroot/usr         176K   233G       88K  /usr
zroot/usr/home     88K   233G       88K  /usr/home
zroot/var         206M   233G       88K  /var
zroot/var/audit    88K   233G       88K  /var/audit
zroot/var/crash    88K   233G       88K  /var/crash
zroot/var/log     206M   233G      206M  /var/log
zroot/var/mail    120K   233G      120K  /var/mail
zroot/var/tmp      88K   233G       88K  /var/tmp
Dazu dann eben noch /usr/src und /usr/ports, die ich bei mir nicht mehr habe. Das "zroot/ROOT/22.1" ist ein Boot Environment, das ich mit bectl angelegt habe, siehe meinen Beitrag dazu:
https://forum.opnsense.org/index.php?topic=25540

Gruß
Patrick

Genau das meinte ich und hatte ich im Kopf :) Ist es dann aber nicht eh egal, ob die Datasets vorhanden sind oder nicht? Fressen ja kein Brot oder Partitionen o.ä. sondern sind einfach nur "vorkonfiguriert". OK übersichtshalber ists vielleicht angenehmer, wenn man nicht Dutzende Datasets in den Werkzeugen als Mounts angezeigt bekommt ;) Da hast du recht. Aber ansonsten nehmen Datasets ja keinen Platz ein den man aufräumen müsste, daher die Frage :) Wenn das echte Volumes im Sinne von reserviertem Platz aus dem ZPool wären der "verschwendet" würde, dann doof - ist ja aber nicht der Fall, deshalb war ich neugierig warum du die weghaust :)
Title: Re: Fragen zu ZFS-Dateisystem auf kleiner SSD
Post by: Patrick M. Hausen on April 29, 2022, 09:21:52 am
Natürlich ist das völlig egal, ob da irgendwo ein leeres Dataset mehr rumliegt. Sowas nervt mich aber im Monitoring, und wenn Löschen einfacher ist als Ausblenden ...