Wie viel freier Speicherplatz sollte ZFS vorhalten, bevor sich die Snapshot-Leistung verschlechtert?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Halten Sie als praktischen Ausgangspunkt ungefähr 20 % eines ZFS-Pools frei. Die bekannte Regel von 80 % Auslastung ist eine Sicherheitsgrenze, kein Abgrund: Arbeitslast, vdev-Layout, Datensatzgröße, Fragmentierung und durch Snapshots zurückgehaltene Blöcke bestimmen, wann die Leistung tatsächlich nachlässt.

Snapshots sind wichtig, weil überschriebene oder gelöschte Blöcke nicht wieder als freier Speicher verfügbar werden können, solange ein Snapshot auf sie verweist. Ein Pool kann daher stabil wirken, bis eine umfangreiche Neuschreibung, ein Replikationsempfang oder das Löschen alter Snapshots zeigt, wie wenig nutzbarer Speicher tatsächlich verbleibt. Diese Unterscheidung legt die Messmethode, den Sicherheitsspielraum und die Abbruchbedingung fest. Diese Unterscheidung legt die Messmethode, den Sicherheitsspielraum und die Abbruchbedingung fest.

Betrachten Sie eine Auslastung von 80 % als Schwelle für frühzeitiges Handeln

Bei geringer Auslastung hat ZFS mehr Möglichkeiten, neue Blöcke zuzuweisen. Je voller der Pool wird, desto schwieriger sind freie Bereiche zu finden, und Copy-on-Write-Aktualisierungen können mehr Arbeit für den Allocator erfordern, insbesondere bei fragmentierten HDD-Pools.

Beginnen Sie bei knapp 80 % Auslastung mit Maßnahmen zur Kapazitätserweiterung, statt auf ein Ereignis wegen fehlenden Speicherplatzes zu warten. Schreibintensive VM-Speicher, Datenbanken und kleine zufällige I/O-Vorgänge benötigen mehr Reserve als ein Archiv mit überwiegend sequenziellen Zugriffen.

Messen Sie sowohl auf Pool- als auch auf Datensatzebene. Quotas und Reservierungen können dazu führen, dass ein Datensatz fehlschlägt, obwohl der Pool freien Speicher meldet, während Snapshots Speicher belegen können, den gewöhnliche Verzeichniswerkzeuge nicht anzeigen.

Beobachten Sie die Signale, die echten Druck erkennen lassen

Verfolgen Sie Pool-Kapazität, Fragmentierung, Schreiblatenz, den Trend des freien Speichers, den von Snapshots belegten Speicher sowie die Größe ausstehender Replikations- oder Backup-Aufträge. Eine einzelne Prozentzahl kann nicht alle diese Einschränkungen beschreiben.

Vergleichen Sie die Latenz während der normalen Arbeitslast bei 70 %, 80 % und höherer Auslastung, sofern dies sicher möglich ist. Der aussagekräftige Warnhinweis ist ein wiederholbarer Anstieg der Latenz oder ein Rückgang des Durchsatzes bei gleicher Last.

Verwenden Sie die folgende Entscheidungstabelle, um Auslastung und Verhalten in konkrete Maßnahmen zu übersetzen.

Beobachteter Zustand Bewertung Nächste Maßnahme
Unter 70 % Auslastung; stabile Latenz Gesunder Spielraum Trendüberwachung fortsetzen
Etwa 80 % Auslastung oder steigende Latenz Handlungsschwelle Sicher bereinigen, Daten verschieben oder erweitern
Über 90 % Auslastung; fehlgeschlagene Zuweisungen Kritisch Nicht essenzielle Schreibvorgänge stoppen und Speicher freigeben

Schaffen Sie wieder Spielraum, ohne einen zweiten Vorfall zu verursachen

Löschen Sie nur Snapshots außerhalb des genehmigten Aufbewahrungszeitraums und bestätigen Sie, dass sie nicht als Replikationsbasen benötigt werden. Das Entfernen eines aktuellen gemeinsamen Snapshots kann eine vollständige erneute Übertragung erzwingen, die noch mehr Speicherplatz benötigt.

Verschieben Sie selten verwendete Daten, erweitern Sie den Pool mit einer unterstützten Topologie oder reduzieren Sie eingehende Schreibvorgänge, bevor Sie umfangreiche Wartungsarbeiten ausführen. Starten Sie bei einem nahezu vollen Pool nicht gleichzeitig einen Scrub, ein Resilver, einen Replikationsempfang und eine massenhafte Löschung.

Die Diagnose zur Snapshot-Speichernutzung von ZimaSpace unterscheidet Snapshots von Papierkörben und aktiven Dateien.

Die Analyse von OpenZFS-Snapshots von Klara Systems stellt den Zusammenhang zwischen Pool-Auslastung, Snapshot-Nutzung und praktischer Kapazitätsplanung her.

-15% OFF

Testen Sie die ursprüngliche Arbeitslast nach der Bereinigung erneut

Wiederholen Sie nach dem Freigeben von Speicherplatz dieselbe Arbeitslast mit Schreibvorgängen, Snapshots und dem Durchsuchen von Verzeichnissen. Vergleichen Sie Latenz, Durchsatz und Allocator-Auslastung, statt anzunehmen, dass ein niedrigerer Prozentsatz das Problem gelöst hat.

Bestätigen Sie, dass der nächste geplante Snapshot- und Replikationszyklus abgeschlossen wird und der Pool nicht sofort wieder die Warnschwelle erreicht. Richten Sie Warnmeldungen früh genug ein, um das normale Wachstum sowie den größten erwarteten temporären Auftrag abzudecken.

Halten Sie die Schwelle von 20 % freiem Speicher ein, wenn keine Messwerte verfügbar sind. Erhöhen Sie sie, wenn die Schreiblatenz steigt, die Fragmentierung hoch ist oder eine starke Snapshot-Abweichung regelmäßig auftritt; stoppen Sie neue Schreibvorgänge, wenn sich der Pool der Erschöpfung nähert oder Zuweisungen fehlschlagen.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.