# 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\latest` → `borg-dumps\latest\` - `\\192.168.178.58\backups\git-bundles\gitea` → `git-bundles\gitea\` Der Windows Scheduled Task `KalliLab H Drive Nearline Pull` laeuft seit 2026-05-28 taeglich 05:30. Das Script kopiert bewusst **nicht** mit `/MIR` und loescht nichts auf H:/; alte Artefakte werden nur nach manueller Sichtpruefung entfernt. Aufruf zum Testen: ```powershell powershell.exe -NoProfile -ExecutionPolicy Bypass -File G:\Gitea_Clone\homelab-infra\ops\h-drive-nearline\pull-critical-backups.ps1 -WhatIf ``` 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