Files
homelab-infra/ops/h-drive-nearline
Micha 1fcdb68221 docs: consolidate restore documentation into ops/restore-tests
- merge RESTORE_HANDBOOK.md into ops/restore-tests/README.md (single
  operations doc; restore status lives only in RESTORE_MATRIX maturity
  table)
- RESTORE_MATRIX.md: extract embedded runbook drafts (261 -> 141 lines);
  unraid-flash and tailscale stubs become ops/restore-tests runbooks,
  adguard/redis checklists superseded by validated scripts
- delete six historical pre-first-run *-plan.md files (runbook + script
  are the source of truth since the validated first runs)
- SERVICES_RECOVERY: drop completed task table; DISASTER_RECOVERY:
  point related docs and section 11 to MASTER_TODO/schedule

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 07:11:16 +02:00
..

H:/ Nearline-Backup — Struktur und Betrieb

Stand: 2026-06-10

Rolle der H:/

Die externe HDD (asmedia ASM235, 7.4 TB, Laufwerk H:) dient ausschließlich als Nearline-Backup-Spiegel für kritische Dumps und Git-Bundles.

Sie ist kein Primär-Backup (das ist Hetzner/Borg) und kein dauerhaftes Archiv.

Sollzustand

H:\
└── kallilab-nearline-backups\
    ├── borg-dumps\latest\      ← aktuelle DB-Dumps (per Script)
    ├── git-bundles\gitea\      ← Gitea-Repo-Bundles (per Script)
    ├── _dr-kit\                ← SSH-Keys, Offline-Secrets (manuell)
    ├── _logs\                  ← Robocopy-Logs je Lauf
    └── _reports\               ← Markdown-Reports je Lauf

Nichts weiteres gehört dauerhaft auf die H:/. Temporäre Recovery- oder Backup-Ordner aus Notfallsituationen sind nach Abschluss zu löschen.

Automatischer Pull

pull-critical-backups.ps1 zieht per Robocopy vom Unraid-SMB-Share:

  • \\192.168.178.58\backups\borg\dumps\latestborg-dumps\latest\
  • \\192.168.178.58\backups\git-bundles\giteagit-bundles\gitea\

Das Script schließt bewusst aus:

  • unraid-flash-config.tar.gz (0600 root:root, nicht per SMB zugänglich → Restore aus Hetzner-Borg)
  • Migration-/Cutover-Verzeichnisse (immich-vectorchord-*, pg18-major-*, redis8-* etc.)

_dr-kit

Enthält offline hinterlegte Schlüssel und Secrets für den DR-Fall:

  • dr-hetzner / dr-hetzner.pub — SSH-Key für Hetzner Storage Box
  • dr-readonly / dr-readonly.pub — Read-only Deploy-Key
  • KOmodo Secrets.txt — Komodo Stack ENV-Offline-Dokumentation

Diese Dateien sind manuell zu pflegen und nicht vom Pull-Script verwaltet.

Archiv-Ordner

Temporäre Notfall-Artefakte verbleiben als _archiv-*-Ordner bis zur bewussten Löschentscheidung:

Ordner Inhalt Anlassdatum
kallilab-recovery\_archiv-nvme-crash-image-2026-05-14\ nvme0n1 Disk-Image (1863 GB) + Crash-Runbooks aus dem Mai-2026-Ausfall 2026-05-14

Aufräum-Historie

Datum Aktion
2026-06-10 OneDrive - Stroetmann Group\ gelöscht (leer)
2026-06-10 SSH-Keys + Secrets aus nearline-Root in _dr-kit\ verschoben
2026-06-10 Migration-Artefakt-Verzeichnisse in borg-dumps\latest\ gelöscht (immich-vectorchord-, pg18-major-, redis8-, nextcloud-redis-pre-redis8-, shared-redis-pre-redis8-*)
2026-06-10 Pre-major-prod-Dumps gelöscht (PG17→PG18-Migration abgeschlossen)
2026-06-10 kallilab-recovery\2026-05-15\ gelöscht (DNS-Restore-Reste)
2026-06-10 kallilab-recovery\2026-05-14\_archiv-nvme-crash-image-2026-05-14\ umbenannt
2026-06-10 kallilab-recovery\disk1-phase2-2026-05-23\ gelöscht (1677 GB Media-Share-Kopie; Unraid-Share verifiziert vollständig)

Offene Punkte

  • Windows-Neuaufsetzen-Backup\ (48 GB): nach vollständiger Rückspielung auf D:\ löschen
  • _archiv-nvme-crash-image-2026-05-14\ (1863 GB): löschen sobald sicher, dass nichts mehr aus dem alten System benötigt wird
  • Log-Rotation für _logs\ und _reports\: manuell oder per Script, Empfehlung 30 Tage