Homeserver Rebuild

.. und anschliessend beschreibst Du, wie man das vermeiden kann.
Vermeiden kann man es nur, weil es "normalerweise so passiert".
Nöö. Deaktiverter SWAP oder ZRAM ist zwar besser, aber noch lange kein Grund für den Kill einer SSD.

um eine "ZFS Märchen" Aussage zu tätigen und dann zu rechtfertigen. Deine Meinung (und der "Märchenerzähler") gehört Dir.
Eigentlich haben wir hier ja eine seltsame Beweislastumkehr.
Du behauptest ohne Begründung, ZFS würde für wearout sorgen.
Nicht ich muss dir Begründen, warum das ein Märchen ist, du musst uns begründen, warum angeblich ZFS SSDs killt!
Du hast nämlich diese Behauptung in den Raum geworfen!

Ich fasse mal das typische Homeserver Szenario zusammen:
Proxmox im Standard (ext4 + LVM) hat mit Cosumer SSDs keinen erhöhten Wearout
Ohne Snapshots, ja.

Proxmox im Standard mit ZFS hat mit Cosumer SSDs einen erhöhten Wearout
Nööö. Oder präziser ausgedrückt "der zusätzliche wearout ist im so kleinen Bereich, dass er total irrelevant ist".
- wegen OPNSense (stetige kleine writes) -> 8K volblocksize (Standard in Proxmox ist 16K)
nicht wirklich. Ich bin zwar überhaupt kein Fan von virtueller OPNsene, aber OPNsense macht praktisch keine writes.
Das ist der Output der letzten 11 Tage:

Code:
zroot         sync_read    sync_write    async_read    async_write      scrub         trim         rebuild
req_size      ind    agg    ind    agg    ind    agg    ind    agg    ind    agg    ind    agg    ind    agg
----------  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----  -----
512         4.61K      0      0      0      0      0  1.80K      0      2      0      0      0      0      0
1K          20.0K      0      0      0      0      0  11.2K      0      6      0      0      0      0      0
2K          17.3K      0      0      0      0      0  20.7K      0      3      0      0      0      0      0
4K          22.1K      0  43.3K      0    219      0   916K      0     47      0      0      0      0      0
8K          9.58K     30  2.21K      0    504      7  91.3K   327K     10     27      0      0      0      0
16K         4.10K     50    422      0    604     30  63.8K   101K      2     38      0      0      0      0
32K         3.21K     49     50      0  1.56K     38   193K  33.1K      3     32      0      0      0      0
64K         2.64K     20  2.03K      0  2.41K    186   228K  19.0K      3     32      0      0      0      0
128K           64      7  8.96K      0     99     36    591  3.32K      0     22      0      0      0      0
256K            0      0      0      0      0      0      0      0      0      0      0      0      0      0
512K            0      0      0      0      0      0      0      0      0      0      0      0      0      0
1M              0      0      0      0      0      0      0      0      0      0      0      0      0      0
2M              0      0      0      0      0      0      0      0      0      0      0      0      0      0
4M              0      0      0      0      0      0      0      0      0      0      0      0      0      0
8M              0      0      0      0      0      0      0      0      0      0      0      0      0      0
16M             0      0      0      0      0      0      0      0      0      0      0      0      0      0


TLDR:
ZFS wearout ist für 99% der homlabber mit einer modernen SSD kein Ding.
Dafür müssen nur paar grundsätzlich Regeln beachtet werden. Die meisten davon sind per default schon gegeben.

- Nutze mirror, kein RAIDZ (Ausnahme du verstehst pool Geometrie und padding)
- ashift auf default lassen (4k)
- volblocksize auf default lassen (16k)
- kein QLC verwenden
- blockstorage nicht als fileserver missbrauchen

damit ist man bereits auf der sicheren Seite. Will man es noch mehr optimieren, kann man zusätzlich

- SWAP ändern oder deaktivieren
- PLP SSD als SLOG hinzufügen
- unterschiedliche volblocksizes verwenden
- eventuell Daten wie logfiles mittels virtiofs auf datasets schreiben, statt auf vzvols
 
Last edited:
  • Like
Reactions: Johannes S
PS: Nur zu sagen, "meine SSD war bei 78 % nach einem halben Jahr“, ist kein Beweis.

Als Gegenbeispiel: Ich hatte SWAP bis vor kurzem noch aktiv in allen VMs.
Trotzdem ist in meinem zfs mirror meine WD RED nach 3 Jahren bei 8 % und meine Samsung 990 Pro bei 3 % nach 200 Tagen.
Wenn ich das hochrechne, komme ich bei der WD auf weitere 37 Jahre und bei der Samsung auf 18 Jahre.
Das reicht mir persönlich an Lebensdauer für eine SSD ;)
 
Last edited:
  • Like
Reactions: Johannes S
Jede VM richtet (normalerweise) ein SWAP ein, das liegt dann auf ZFS im zvol der VM im zpool rpool, was man vermeiden möchte.
Das stimmt. Debian/Ubuntu erwähnen darum in ihrer SWAP Doku beide Alternativen wie zswap, zcache, zram. Oder halt einfach deaktivieren beim installieren.

Oder man verwendet (was man unter Hypervisoren eh tun sollte) die Cloudimages von Debian,Ubuntu, RockyLinux,ALma und co, da gibt es keinen swap installiert. Erste Amshandlung nach den ersten Booten ist dann ein apt install zram-tools...


... und anschliessend beschreibst Du, wie man das vermeiden kann.
Vermeiden kann man es nur, weil es "normalerweise so passiert".


Proxmox (auf ext4 installiert) verwendet LVM Snapshots auf Blockdevice Ebene für die VMs, nicht QCOW auf Fileebene.

Nicht ganz, damit das mit dem LVM-Snapshots bei LVM-Thick funktioniert, werden die VM-Images im qcow-Format abgelegt. Das geht halt erst seit PVE9.
 
Last edited:
  • Like
Reactions: IsThisThingOn