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
-
Wechsel des Backends: Alle produktiven ZFS Storage Pools werden durch LVM Thin-Pools (
lvm-thin) als LINSTOR Storage Backend ersetzt. -
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).