Ja, Sie können sie unterscheiden, indem Sie die verwendete, referenzierte oder logische Größe des Datasets, den von Snapshots belegten Speicherplatz und den freien Speicherplatz im Pool anhand desselben Zeitstempels vergleichen.
Die Entscheidung ist wichtig, wenn ein NAS deutlich weniger freien Speicherplatz meldet, als die sichtbaren Ordner scheinbar enthalten. Die beiden konkurrierenden Zustände sind die Belegung des aktiven Datasets und Blöcke, die nur durch Snapshots erhalten bleiben. Beginnen Sie mit einer gespeicherten Konfiguration und entbehrlichen Daten, untersuchen Sie jeweils nur einen Zweig und brechen Sie ab, wenn der Test das Risiko von Datenverlust, Berechtigungsproblemen oder eingeschränkter Verfügbarkeit erhöht.
Definieren Sie die Bedingungen hinter der Entscheidung zwischen Snapshot- und Live-Dateispeicher
Dokumentieren Sie die Umgebung, bevor Sie etwas ändern: Software- und Firmwareversionen, Geräteidentitäten, Einhänge- oder Netzwerkpfad, freien Speicherplatz, Berechtigungen und das beobachtbare Symptom. Die Ausgangsbasis muss genügend Details bewahren, um den Zustand, dass ein NAS deutlich weniger freien Speicherplatz meldet, als die sichtbaren Ordner scheinbar enthalten, reproduzieren zu können.
Der erste mögliche Grund ist die Belegung des aktiven Datasets. Der zweite sind Blöcke, die nur durch Snapshots erhalten bleiben. Die aktuellen OpenZFS-Speichereigenschaften definieren den Mechanismus oder die Befehlsgrenze, die im Test verwendet wird; sie ersetzen nicht die Beobachtung dieses konkreten Heimservers.
Formulieren Sie die Akzeptanz- und Abbruchbedingung, bevor Sie den Unterscheidungstest ausführen. Ein erfolgreicher Test muss die von einem Zweig vorhergesagten Belege ändern, während nicht verwandte Dienste unverändert bleiben; bei einem Fehlschlag muss das System in den gespeicherten Zustand zurückgeführt werden, anstatt eine Kette spekulativer Fehlerbehebungen auszulösen.
Testen Sie die Aussage, ohne die ursprüngliche Anforderung zu senken
Verwenden Sie diesen Unterscheidungstest: Erfassen Sie die Pool- und Dataset-Abrechnung, löschen Sie eine einzelne große, entbehrliche Datei und vergleichen Sie anschließend die Werte, ohne Snapshots zu zerstören. Halten Sie Arbeitslast, Client, Pfad, Dateisatz und Zeitpunkt konstant, damit das Ergebnis der geänderten Variable zugeschrieben werden kann.
Verwenden Sie die ZFS-Belegungsabrechnung, um das Feld auszuwählen, das die beiden Zweige tatsächlich unterscheiden kann. Erfassen Sie anschließend Zeitstempel, Exit-Status, Fehlermeldung, Geräte- oder Snapshot-Identität, Latenz, übertragene Bytes, Berechtigungen und Wiederherstellungsstatus. Ein sauberer Befehlsabschluss reicht nicht aus, wenn Identität, Dauerhaftigkeit oder Anwendungsstatus die zu testende Aussage betrifft.
Wiederholen Sie den Test nach einem Neustart, einer erneuten Verbindung, dem erneuten Einhängen oder einem Leeren des Caches, wenn dieses Ereignis Teil der ursprünglichen Bedingung ist. Wenn der erste Durchlauf destruktiv ist oder die Umgebung nicht wiederhergestellt werden kann, brechen Sie ab und reproduzieren Sie den Test stattdessen mit einer entbehrlichen Kopie.
zfs list -o name,used,refer,usedbysnapshots,usedbydataset,usedbychildren
Ergebnisse als erfolgreich, fehlgeschlagen oder Ausnahmefall interpretieren
ERFOLG: Der referenzierte Live-Speicherplatz sinkt, während der verwendete Speicherplatz unverändert bleibt, weil ein Snapshot weiterhin auf die Blöcke verweist. Dokumentieren Sie die genaue Version, Identität und Arbeitslast, mit denen der Test erfolgreich war, damit die Schlussfolgerung bedingt bleibt und nicht zu einer allgemeinen Aussage wird.
FEHLSCHLAG: Sowohl der referenzierte als auch der verwendete Speicherplatz bleiben hoch, oder ein anderes Dataset, ein Klon, eine Reservierung oder eine Metadatenbelegung besitzt den Speicherplatz. Ein Fehlschlag beweist nicht automatisch den gegenteiligen Zweig, wenn Netzwerk, Arbeitsspeicher, Berechtigungen oder Quellkonsistenz beide beeinflussen können; isolieren Sie diese gemeinsamen Abhängigkeiten, bevor Sie die Untersuchung ausweiten.
AUSNAHME ODER UNEINDEUTIGES ERGEBNIS: Brechen Sie Löschvorgänge ab und erfassen Sie jedes Dataset, jeden Snapshot, jeden Klon und jede Reservierung, bevor Sie Bereinigungen durchführen. Bewahren Sie die Protokolle auf und führen Sie keine Reparatur-, Bereinigungs-, Lösch-, Partitionierungs- oder rekursiven Besitzänderungsbefehle aus, bis eine wiederherstellbare Kopie vorhanden ist.
Bestätigen Sie die Entscheidung unter der ursprünglichen Arbeitslast
Wenden Sie die zum beobachteten Zweig passende Maßnahme an und wiederholen Sie anschließend die ursprüngliche Bedingung statt eines reduzierten Ersatztests. Die Entscheidung gilt nur, wenn der referenzierte Live-Speicherplatz sinkt, während der verwendete Speicherplatz unverändert bleibt, weil ein Snapshot weiterhin auf die Blöcke verweist - und zwar über zwei Zyklen oder den relevanten Neustart, Ruhezustand, Abbruch oder Lastwechsel hinweg.
Verwenden Sie die unveränderlichen Backup-Fenster, um den nächstgelegenen abhängigen Arbeitsablauf zu überprüfen, aber lassen Sie den ursprünglichen Auslöser unverändert. Nicht verwandte Datasets, Freigaben, Container, Benutzer und Wiederherstellungspunkte müssen ihren bisherigen Zugriff und ihr bisheriges Zeitverhalten beibehalten.
Die Abbruchgrenze ist eindeutig: Wenn sowohl der referenzierte als auch der verwendete Speicherplatz hoch bleiben oder ein anderes Dataset, ein Klon, eine Reservierung oder eine Metadatenbelegung den Speicherplatz besitzt, kehren Sie zur letzten verifizierten Konfiguration zurück, bewahren Sie die Belege auf und führen Sie nur dann einen tiefergehenden Plattform- oder Hardwaretest durch, wenn der Zweig reproduzierbar ist.
Nachdem das Zielergebnis erreicht wurde, vergleichen Sie es mit der Taktung der Backup-Überprüfung, damit die Behebung das Risiko nicht in einen benachbarten Dienst verlagert. Ein erfolgreicher Zieltest mit einem neuen Backup-, Identitäts-, Timeout- oder Verfügbarkeitsfehler ist weiterhin eine fehlgeschlagene Änderung.
FAQ
Bei Snapshot- und Live-Dateispeicher betreffen die verbleibenden Fragen meist, warum das Löschen einer Datei keinen Speicherplatz im Pool freigibt, ob logicalused dasselbe wie physischer Speicherplatz ist und ob sich der von Snapshots belegte Speicherplatz vor dem Löschen vorhersagen lässt. Die folgenden Antworten halten diese Sonderfälle von der primären Entscheidung getrennt.
Die Akzeptanzgrenze bleibt unverändert: Der referenzierte Live-Speicherplatz sinkt, während der verwendete Speicherplatz unverändert bleibt, weil ein Snapshot weiterhin auf die Blöcke verweist. Wenn eine nachfolgende Bedingung das Dateisystem, die Identität, den Netzwerkpfad oder die Anwendungsversion ändert, wiederholen Sie nur den von dieser Änderung betroffenen Unterscheidungstest.
Beenden Sie die Ausweitung des Experiments, wenn sowohl der referenzierte als auch der verwendete Speicherplatz hoch bleiben oder ein anderes Dataset, ein Klon, eine Reservierung oder eine Metadatenbelegung den Speicherplatz besitzt. Brechen Sie zu diesem Zeitpunkt Löschvorgänge ab und erfassen Sie jedes Dataset, jeden Snapshot, jeden Klon und jede Reservierung, bevor Sie bereinigen; bewahren Sie die Belege auf, bevor Sie den Plattform-, Speicher- oder Hardwareverantwortlichen hinzuziehen.
Warum gibt das Löschen einer Datei keinen Speicherplatz im Pool frei?
Ein Snapshot kann weiterhin auf die Blöcke verweisen, oder ein Klon, eine Reservierung oder ein anderes Dataset kann die Belegung besitzen.
Ist logicalused dasselbe wie physischer Speicherplatz?
Nein. Komprimierung, Kopien, Metadaten und gemeinsam genutzte Blöcke führen dazu, dass sich logische und belegte Werte unterscheiden.
Lässt sich der von Snapshots belegte Speicherplatz vor dem Löschen vorhersagen?
Die Eigenschaften für referenzierte und eindeutige Blöcke sind hilfreich, aber gemeinsam genutzte Blöcke bedeuten, dass der zurückgewinnbare Speicherplatz von der vollständigen Snapshot-Kette abhängt.
Bei Snapshot- und Live-Dateispeicher bleibt die praktische Antwort bedingt: Der referenzierte Live-Speicherplatz sinkt, während der verwendete Speicherplatz unverändert bleibt, weil ein Snapshot weiterhin auf die Blöcke verweist. Wenn sowohl der referenzierte als auch der verwendete Speicherplatz hoch bleiben oder ein anderes Dataset, ein Klon, eine Reservierung oder eine Metadatenbelegung den Speicherplatz besitzt, brechen Sie Löschvorgänge ab und erfassen Sie jedes Dataset, jeden Snapshot, jeden Klon und jede Reservierung, bevor Sie bereinigen; ein Teilerfolg, der die ursprüngliche Arbeitslast nicht übersteht, ist keine Kompatibilität.
Support & Tipps
Mehr zum Lesen

Migrationsleitfaden für Borg Backup zum Verschieben eines Repositorys auf einen neuen Speicher
Verschieben Sie ein Borg-Repository als einheitliches Objekt: Stoppen Sie Schreibvorgänge, bewahren Sie Schlüssel und Identität, überprüfen Sie Wiederherstellungen und aktualisieren Sie anschließend die Clients,...

Restic-Repository-Wartungsworkflow: Prüfen, Bereinigen, Komprimieren und Wiederherstellung testen
Restic verfügt über keinen separaten Befehl zum Kompaktieren: prune führt das Umpacken durch. Schütze die Sperren und den freien Speicherplatz, überprüfe anschließend erneut und...

Time-Machine-NAS-Wiederherstellungsleitfaden für beschädigte oder aufgegebene Backup-Verläufe
Behalte das alte Bundle bei. Trenne NAS-Zugriff, Zielidentität, Bildschäden und verwaiste Historie, bevor du dich für eine Reparatur oder eine neue Chain entscheidest.

