From 1d69ef8ac62be373eed17e69866917d2c98a12c9 Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Fri, 21 Aug 2026 12:00:00 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20the=20media=20restore=20is=20drilled=20?= =?UTF-8?q?=E2=80=94=20309=20files=20byte-identical?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The point named when #0030 was closed is done. A job in the cluster extracted the newest archive into an emptyDir and compared it against the production PVC mounted read-only: every one of the 309 files present in both is byte-identical by sha256. That is a stronger statement than the database drill makes. There it was shown that rows arrive; here that the restored files are the running ones. Three flaws in the test, all mine, and all written down. busybox find has no -printf, so the byte counts came out as a silent zero beside real numbers. The first run compared totals and counted every cache prune as a mismatch, when the backup is a snapshot and production keeps running - the intersection is what proves anything. And my exception knew url_cache but not url_cache_thumbnails, so it reported a finding outside the cache that was not one; the filter worked, its list did not. Still unproven: the emergency path itself, copying back into the PVC. What is proven is that the data come out of the archive complete and unaltered. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01F2Q4Ri8NGwyTZzScvKnWFM --- ...estore-ist-nie-geprobt-sicherungen-sind.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/docs/issues/0030-der-restore-ist-nie-geprobt-sicherungen-sind.md b/docs/issues/0030-der-restore-ist-nie-geprobt-sicherungen-sind.md index 4a34e15..d52af94 100644 --- a/docs/issues/0030-der-restore-ist-nie-geprobt-sicherungen-sind.md +++ b/docs/issues/0030-der-restore-ist-nie-geprobt-sicherungen-sind.md @@ -345,3 +345,49 @@ wurde. Dieselbe Fehlerklasse wie bei #0083 und #0088, am selben Tag zum dritten - ⚠️ Die **Homelab-Seite** (GitLab/Overmind → MinIO/DSM) entfällt ersatzlos: Das Homelab ist **nicht Teil dieses Projekts** (Entscheidung sorb, 2026-08-21). Der Punkt stand hier irrtümlich und wird nicht anderswohin übertragen. + +## Nachtrag 2026-08-21 — Medien-Restore erprobt (Auftrag sorb) + +Der beim Schließen benannte offene Punkt „Medien gesichert, Rückweg ungeprobt" ist +abgearbeitet. Ein Job im Cluster (`axion-backup:v2`, `emptyDir`, Produktions-PVC **lesend** +gemountet) hat das jüngste Archiv extrahiert und verglichen: + +| | | +|---|---| +| Archiv | `…-2026-08-21T01:00:07` | +| zurückgespielt | 318 Dateien, 208.256 KB | +| Produktion zum Vergleichszeitpunkt | 309 Dateien, 208.036 KB | +| gemeinsame Dateien | **309, alle byte-gleich (sha256)** | +| nur im Archiv | 9 — 4 `url_cache`, 5 `url_cache_thumbnails` | +| nur in Produktion | 0 | + +**Damit ist die Aussage stärker als bei den Datenbanken:** Dort wurde gezeigt, dass Zeilen +ankommen; hier, dass die zurückgespielten Dateien **byte-identisch** mit den laufenden sind. + +⚠️ **Der Vergleich wurde gegengeprüft.** Nach dem bestandenen Lauf wurde eine extrahierte +Datei um ein Byte verändert; der Vergleich meldete sie. Ohne diese Kontrolle wäre „alle +gleich" nur eine Behauptung — dieselbe Lehre, die schon das Bestehenskriterium der +Datenbank-Probe geformt hat. + +### Drei Fehler im Test, alle meine + +1. **Erster Lauf: `find -printf` gibt es in busybox nicht** — die Bytezahlen kamen als `0` + heraus, während das Skript ansonsten durchlief. Ein stiller Nullwert neben echten + Zahlen ist genau die Sorte Ergebnis, die man überliest. +2. **Erster Lauf verglich die Gesamtmengen** und wertete jede Cache-Bereinigung als + Abweichung. Die Sicherung ist eine Momentaufnahme von 01:00, die Produktion läuft + weiter — beweiskräftig ist die **Schnittmenge**. +3. **Meine Ausnahme war zu eng:** Sie kannte `url_cache`, nicht `url_cache_thumbnails`, + und meldete deshalb einen „Befund außerhalb des Caches". `ls` im Medienverzeichnis + zeigt beide als Vorschau-Caches. Der Filter hat damit richtig gearbeitet — er hat mich + hinsehen lassen —, aber seine Liste war unvollständig. + +### Was weiterhin nicht bewiesen ist + +Der **Ernstfall-Rückweg** — die Kopie zurück ins PVC — bleibt manuell und ungetestet. +Geprobt ist, dass die Daten vollständig und unverfälscht **aus dem Archiv kommen**, nicht +dass das Zurückschreiben unter Last funktioniert. Das steht so auch in `restore-matrix.md`. + +**Vorschlag, nicht umgesetzt:** Diese Probe ließe sich wie `restore-drill` monatlich +fahren. Sie ist gefahrlos (lesend, `emptyDir`), dauert wenige Minuten und wäre die einzige +Prüfung, die den Medienpfad überhaupt beobachtet. Entscheidung sorb.