Swap auf ZFS - gute Idee?

tremolo2k

Well-Known Member
Hallo Forum,

Es handelt sich um FreeBSD 12.1 - Neuinstallation auf einem RaidZ2 zpool (6x4TB). Ich möchte keine extra swap Partition erstellen. Also im Installer die swap komplett deaktivieren und nach dem Reboot mittels

Code:
    zfs create -V 4GB zroot/swap
    zfs set org.freebsd:swap=on zroot/swap
    zfs set checksum=off zroot/swap

eine Swap erstellen.

Gründe:
Wenn ich eine 4gb Swap im Installer erstelle, hat jede Platte eine 4GB große swap Partition und swapinfo zeigt mir 24GB swap space an. Verreckt eine Platte, sind 4GB swap weg, was FreeBSD sicherlich nicht besonders mag.
Wenn ich im Installer Mirrored swap = YES wähle, hat jede Platte eine 4GB swap partition, bei 6 facher Redundanz und crash dumps werden nicht geschrieben.


Ich habe einige Sachen darüber gelesen das es zu komplett freezes kam oder das der Swap übergelaufen ist, was zu probleme geführt hat. Alles war jedoch bei FreeBSD 11 und früher - ist das mit 12.1 immer noch der Fall?
 
Alles war jedoch bei FreeBSD 11 und früher - ist das mit 12.1 immer noch der Fall?

Ja. ZFS benötigt für jede Operation RAM, da jede Operation Buffer allokiert. Wenn das System aber keinen RAM mehr frei hat und swappen will, wird ZFS den für das Schreiben der Daten in die Swap nicht allokieren können. Das ist dann ein Deadlock und das System stürzt ab.
 
Du kannst ja z.b. je 2 Platten mit 4GB mit gmirror betreiben, so kommst du auf 12GB Swap. Oder 3er-Mirror, dann hast du 8GB.

Crashdump sollte auch von einem gmirror möglich sein, allerdings musst du den prefer - Algorithmus verwenden. Später im Betrieb solltest du den aber auch zur Laufzeit ändern können. Nur halt nicht persistent speichern.
 
Zurück
Oben