ADR-024: Wechsel von ZFS auf LVM Thin-Pools aufgrund von Consumer-SSD Write Amplification

Kontext

Der Cluster home-tamay-cloud basiert auf Dell Optiplex Mini 3070 Nodes, die hardwarebedingt über SATA-Schnittstellen für den primären Storage verfügen. Als Speicher kommen Consumer-SSDs ohne dedizierten Power-Loss-Protection-Cache (PLP) zum Einsatz.

Die bisherige Nutzung von ZFS (festgelegt in ADR-017) führt in Verbindung mit Container-Workloads (Datenbanken, Monitoring) zu einer massiven Write Amplification (Schreibvervielfältigung). Da Consumer-SSDs ohne Cache bei den synchronen und kleinteiligen Schreibvorgängen von ZFS extrem einbrechen, führt dies zu: * Hoher Latenz (I/O Wait) im gesamten Cluster. * Vorzeitigem Verschleiß (TBW-Abnutzung) der SATA-SSDs. * Stark reduzierten IOPS auf den SATA-Kanälen.

Es wird eine performantere, ressourcenschonendere Alternative für das LINSTOR/Piraeus-Backend benötigt, die besser mit Consumer-Hardware harmoniert.

Entscheidung

  1. Wechsel des Backends: Alle produktiven ZFS Storage Pools werden durch LVM Thin-Pools (lvm-thin) als LINSTOR Storage Backend ersetzt.

  2. Metadaten-Offloading: Wo hardwaretechnisch auf den Nodes möglich (z.B. über M.2-Slots), werden die DRBD-Metadaten strikt auf NVMe-Storage ausgelagert.

Konsequenzen

  • Drastische Reduzierung der Write Amplification: LVM-Thin erzeugt im Vergleich zu ZFS deutlich weniger Metadaten-Overhead bei zufälligen Schreibzugriffen, was Consumer-SSDs schont.

  • Höherer Durchsatz auf SATA: Die SATA-Schnittstellen der Dell Optiplex Minis werden nicht mehr durch ZFS-Log-Writes (ZIL) blockiert.

  • Latenz-Optimierung durch NVMe: Durch das Auslagern der DRBD-Metadaten auf NVMe-Storage werden die kritischen Replikations-Quittierungen (Metadaten-Updates bei jedem DRBD-Schreibvorgang) massiv beschleunigt.

  • Verlust von ZFS-Features: Features wie transparente Inline-Kompression (LZ4) und native ZFS-Snapshots gehen verloren; Thin-Snapshots werden nun über LVM-Thin abgebildet.

  • Erhöhter Migrationsaufwand: Bestehende persistenten Volumes (PVs) müssen von den alten ZFS-Pools auf die neuen LVM-Thin-Pools migriert werden (z.B. via LINSTOR Live-Migration / linstor volume-definition move).