Alte Snapshots von Hand aufräumen¶
Ungeprüft
Diese Anleitung ist noch nicht durchgespielt worden; Befehle, Bezeichnungen und erwartete Ausgaben können abweichen.
Was noch zu prüfen ist, steht in todo/doku.md.
Im Normalfall nicht nötig
Alte Snapshots räumt Backrest auf containerhost automatisch auf. Diese Anleitung brauchst du nur, wenn Backrest das einmal nicht erledigt, etwa weil der Container nicht läuft oder seine Läufe fehlschlagen.
Ziel¶
Im Repository von werner auf dem NAS liegen nur noch die Snapshots, die nach den Aufbewahrungsregeln gebraucht werden, und der Platz der übrigen ist freigegeben.
Voraussetzungen¶
- SSH-Zugang zu containerhost, also ein Rechner, der mit dem Admin-VPN oder dem Zauberer-WLAN verbunden ist (Arbeitsrechner einrichten)
- dein age-Schlüssel ist eingetragen, und
sops -d syslet/werner/creds-mailjet.enc.yamlzeigt Klartext (Arbeitsrechner einrichten) - Zugang zu Backrest unter
backrest.garage-lab.net, im Netz vor Ort - gelesen: Backup, vor allem Aufbewahrung und die Entscheidung, warum nach Host und Tags gruppiert wird; forget und prune im Glossar
Wann du die Schritte ausführst:
- nicht zwischen 3 und 4 Uhr UTC; dann läuft das Backup von werner, und
prunesperrt das Repository, sodass das Backup fehlschlägt - nicht, während Backrest selbst gerade einen Vorgang im Repository ausführt; das siehst du in der Web-Oberfläche
Schritte¶
1. Aufbewahrungsregeln in Backrest ablesen¶
Öffne backrest.garage-lab.net und dort den Plan nas-data.
Notiere die Aufbewahrungsregeln (Retention), etwa wie viele tägliche, wöchentliche, monatliche und jährliche Snapshots behalten werden.
Diese Werte gibst du in Schritt 4 und 5 an restic forget weiter, damit das Aufräumen von Hand dieselben Snapshots behält wie Backrest.
Welche Option von restic forget zu welcher Regel gehört, steht in der restic-Doku: Snapshots entfernen, z. B. --keep-daily 7 für sieben tägliche Snapshots.
2. Passwort des Repositorys holen¶
Auf deinem Rechner, im Repo-Ordner:
| Bash | |
|---|---|
Erwartet: das Passwort in einer Zeile. restic fragt in den folgenden Schritten danach; kopier es von hier und füge es dort ein.
3. Snapshots auflisten¶
Melde dich auf containerhost an und öffne eine Shell im Container backrest:
Setz im Container den Pfad zum Repository und liste die Snapshots:
| Bash | |
|---|---|
Bei enter password for repository: fügst du das Passwort aus Schritt 2 ein; es wird nicht angezeigt.
Erwartet: eine Tabelle mit einem Snapshot je Nacht und am Ende N snapshots.
Reichen die Snapshots deutlich weiter zurück, als die Regeln aus Schritt 1 vorsehen, hat Backrest nicht aufgeräumt.
Der Pfad /mnt/nas-backup/werner-garage-lab-de ist das NAS-Verzeichnis, wie es im Container eingebunden ist; er steht auch beim Container resticmgmt in syslet/containerhost/stack-resticserver.cue.
4. Probelauf: anzeigen, was entfernt würde¶
Ersetz die --keep-…-Optionen durch die aus Schritt 1:
| Bash | |
|---|---|
--group-by host,tags ist nötig; ohne die Option würde restic nichts entfernen, weil sich die gesicherten Pfade von Lauf zu Lauf unterscheiden.
Erwartet: zuerst Applying Policy: mit deinen Regeln, dann eine Gruppe snapshots for (host [werner.garage-lab.de], tags [plan:nas-data, created-by:werner-garage-lab-de]) mit den Tabellen keep N snapshots: und remove N snapshots:.
Es wird noch nichts gelöscht.
Prüf die Liste unter remove: Die jüngsten Snapshots müssen alle unter keep stehen.
Steht dort mehr als eine Gruppe, haben ältere Snapshots andere Tags; diese Gruppen räumt restic getrennt auf, jede nach denselben Regeln.
5. Snapshots entfernen¶
Derselbe Befehl ohne --dry-run:
| Bash | |
|---|---|
Erwartet: dieselben Tabellen wie in Schritt 4, danach remove N snapshots: mit Fortschrittsanzeige und keine Fehlermeldung.
Die Snapshots sind jetzt aus der Liste entfernt, ihr Platz auf dem NAS ist aber noch belegt.
6. Platz freigeben¶
| Bash | |
|---|---|
Das kann je nach Menge der entfernten Snapshots mehrere Minuten dauern.
Erwartet: Zeilen wie collecting packs for deletion and repacking, eine Übersicht mit this removes: und total prune:, dann rebuilding index, removing N old packs und am Ende done.
Danach verlässt du den Container mit exit und containerhost mit noch einmal exit.
Prüfen¶
restic snapshots --host werner.garage-lab.de --compactim Containerbackrestzeigt nur noch die Snapshots, die nach den Regeln bleiben, und der jüngste Snapshot von werner ist noch da.restic checkim Containerbackrestendet mitno errors were found.- Das nächste nächtliche Backup von werner läuft ohne Meldung von healthchecks.io durch.
Wenn etwas schiefgeht¶
repository is already locked: Backrest oder das Backup von werner arbeitet gerade im Repository. Warte, bis der Vorgang in Backrest bzw. das Backup fertig ist, und starte den Befehl dann neu. Nur wenn sicher nichts mehr läuft, entfernst du eine liegengebliebene Sperre mitrestic unlock.wrong password or no key found: Das Passwort ist falsch; hol es noch einmal wie in Schritt 2 und achte darauf, keine Leerzeichen mitzukopieren.unable to open config fileoderno such file or directoryfür/mnt/nas-backup/…: Das NAS ist auf containerhost nicht eingebunden; siehe NAS und frag in Signal nach.- Das Backup von werner ist während
prunegelaufen und fehlgeschlagen: Backup-Meldung von healthchecks.io - Allgemeines: restic-Doku: Snapshots entfernen und Troubleshooting