Checkliste zur Überprüfung des Btrfs-Sende-Elternteils vor der Bereinigung von Snapshots

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.

Löschen Sie ein Btrfs-Sende-Eltern-Snapshot nicht, nur weil es alt aussieht. Weisen Sie zunächst nach, dass auf beiden Seiten ein neueres schreibgeschütztes Snapshot vorhanden ist und den nächsten inkrementellen Zyklus unterstützen kann.

Auf einem Heim-NAS haben Quell- und Ziel-Snapshots oft ähnliche Namen, obwohl sie unterschiedliche Replikationsrollen erfüllen. Die Bereinigung wird riskant, wenn ein Rotationsjob nur das Alter berücksichtigt und nicht weiß, welches Paar den nächsten Sendevorgang verankert. Beginnen Sie mit einer schreibgeschützten Bestandsaufnahme, ermitteln Sie das letzte erfolgreich replizierte Quell-Ziel-Paar, testen Sie ein neueres untergeordnetes Snapshot dagegen und bewahren Sie das vorherige Ziel-Snapshot auf, bis ein weiterer inkrementeller Empfang abgeschlossen ist.

Bestandsaufnahme des aktuellen Elternpaars auf beiden Systemen

Listen Sie das Quell-Subvolume, alle schreibgeschützten Sende-Snapshots und alle empfangenen Ziel-Snapshots auf. Erfassen Sie Pfad, Erstellungszeit, Schreibschutzstatus, Subvolume-ID, UUID, Elternbeziehung und, sofern verfügbar, die empfangene Identität. Ordnen Sie das letzte erfolgreiche Quell-Snapshot genau der Kopie zu, die tatsächlich empfangen wurde, nicht bloß einem Verzeichnis mit ähnlichem Namen.

Eine funktionierende Btrfs-Sende- und Empfangssequenz hält das vorherige Snapshot auf beiden Systemen verfügbar, bevor es als Eltern-Snapshot des nächsten inkrementellen Datenstroms verwendet wird.

Wenn das Paar eindeutig vorhanden und schreibgeschützt ist, markieren Sie es als geschützt. Stimmen nur die Namen überein, prüfen Sie vor dem Fortfahren die Empfangsbeziehung und das Replikationsprotokoll. Fehlt die Zielkopie, brechen Sie die Bereinigung ab und planen Sie eine neue vollständige Übertragung oder eine andere verifizierte Basis. Das Löschen des Quell-Snapshots kann die fehlende Empfangshistorie nicht reparieren.

Nachweisen, dass ein neueres Snapshot zum nächsten Eltern-Snapshot werden kann

Erstellen Sie das nächste schreibgeschützte Quell-Snapshot, nachdem die Bestandsaufnahme gespeichert wurde. Verwenden Sie das geschützte Quell-Snapshot ausdrücklich als Eltern-Snapshot und senden Sie das neue untergeordnete Snapshot an das vorgesehene Ziel oder einen Bereitstellungspfad. Erfassen Sie den Exit-Status und das Protokoll und vergleichen Sie anschließend eine Auswahl geänderter und unveränderter Dateien im empfangenen Snapshot.

Inkrementelle Replikationsskripte sollten die Abhängigkeit sichtbar machen. Ein praktischer Snapshot-Rotationsablauf funktioniert nur, wenn die von der Sendelogik erwarteten Snapshots erhalten bleiben.

Markieren Sie das neue Paar erst dann als Bereinigungskandidaten, wenn der Empfang erfolgreich war und das Ziel-Snapshot lesbar ist. Ein Fehler wegen eines nicht gefundenen Eltern-Snapshots, ein beschreibbares Quell-Snapshot, ein falscher Datensatz oder ein Datenstrom, der unerwartet einer vollständigen Kopie entspricht, bedeutet, dass der Test fehlgeschlagen ist. Lassen Sie das alte Paar unverändert, während Sie den Pfad korrigieren oder die Basis neu aufbauen.

Erst bereinigen, wenn die Elternrolle weitergeschoben wurde

Aktualisieren Sie den Aufbewahrungseintrag, bevor Sie irgendetwas löschen. Markieren Sie die neu verifizierten Quell- und Ziel-Snapshots als aktives Paar, behalten Sie das unmittelbar vorherige Paar kurzfristig als Ausweichmöglichkeit und prüfen Sie vorab, welche älteren Snapshots der Bereinigungsjob entfernen würde. Die Vorschau sollte nur Vorfahren enthalten, die vom nächsten Sende- oder Wiederherstellungsplan nicht mehr benötigt werden.

Eine Dateiänderung kann in ein neueres Snapshot übernommen und von einer vorhandenen Basis aus gesendet werden. Daher hängt die künftige inkrementelle Historie von erhaltenen Snapshot-Beziehungen ab und nicht davon, ein altes schreibgeschütztes Snapshot zu bearbeiten.

Brechen Sie die Bereinigung ab, wenn das aktive Eltern-Snapshot, das Ausweichpaar, das neueste empfangene Snapshot oder ein nicht verwaistes, nicht verifiziertes Snapshot in der Löschliste erscheint. Entfernen Sie Snapshots in kleinen Gruppen und listen Sie beide Systeme nach jeder Gruppe erneut auf. Lassen Sie separate Rotationsjobs für Quelle und Ziel nicht unabhängig voneinander fortschreiten, ohne dass sie denselben Datensatz des geschützten Paars verwenden.

Führen Sie den folgenden inkrementellen Zyklus aus, bevor Sie das Ausweichpaar außer Betrieb nehmen

Erstellen Sie nach der Bereinigung eine kontrollierte Dateiänderung und ein neues schreibgeschütztes Snapshot. Führen Sie den nächsten inkrementellen Sendevorgang vom neu festgelegten Eltern-Snapshot aus. Dieser zweite Zyklus weist nach, dass Bereinigungseintrag, Skript und Zielzustand übereinstimmen. Der erste erfolgreiche Sendevorgang allein hat die Umgebung nach der Bereinigung nicht getestet.

Wenn ein Snapshot nicht entfernt werden kann, weil es noch verwendet wird, trennen Sie die Aufbewahrungslogik vom aktiven Btrfs-Sendepfad, bevor Sie die Elternzuordnung als fehlerhaft betrachten.

Die Checkliste ist erfüllt, wenn das zweite untergeordnete Snapshot erfolgreich empfangen wird, die erwarteten Dateien vorhanden sind, das aktive Paar schreibgeschützt bleibt und der nächste geplante Lauf es automatisch auswählt. Nehmen Sie das Ausweichpaar erst nach diesem Ergebnis außer Betrieb. Stoppen Sie den Vorgang und setzen Sie das vorherige Paar wieder auf geschützt, wenn der nächste Sendevorgang ein fehlendes Eltern-Snapshot meldet, auf das falsche Subvolume zielt oder eine unerwartete vollständige Übertragung vorschlägt.

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.