--- title: DR-Playbook – Storage-Probleme (Hot/Archive) sidebar_label: DR – Storage --- Dieses Playbook beschreibt, wie du vorgehst, wenn es Probleme mit dem Medien‑Storage gibt – z.B. Hot‑Storage voll, Archivierung bleibt hängen oder viele Assets im Status `failed`. ## 1. Symptome & erste Checks Typische Symptome: - Gäste können keine Fotos mehr hochladen (Fehlermeldungen im Upload‑Flow). - Tenant Admins sehen „fehlende Medien“ oder sehr langsame Galerien. - `event_media_assets` enthält viele Einträge mit Status `pending` oder `failed`. - Logs enthalten Hinweise auf fehlgeschlagene Archivierungen oder fehlende Dateien. Erste Checks: - Storage‑Usage der Hot‑Volumes/Buckets prüfen (Docker‑Volume, S3‑Dashboard o.ä.). - `EventMediaAsset`‑Status stichprobenartig prüfen (`hot`, `archived`, `pending`, `failed`). - Queue‑Längen und Fehler in `media-storage` und `media-security` via Horizon und Logs. ## 2. Hot-Storage voll oder kurz vor Limit 1. **Warnungen bestätigen** - System‑/Provider‑Warnungen (z.B. 90 % voll) bestätigen. - Prüfen, ob `storage:monitor` oder ähnliche Kommandos bereits Alerts ausgelöst haben. 2. **Sofortmaßnahmen** - Archivierung priorisieren: sicherstellen, dass `storage:archive-pending` regelmäßig läuft und die `media-storage`‑Queue abgearbeitet wird. - Temporäre Limits erhöhen, falls Provider dies erlaubt (z.B. S3‑Bucket praktisch „unbegrenzt“ vs. lokaler Disk). 3. **Aufräumen** - Alte Caches/Thumbnails, die problemlos neu generiert werden können, ggf. gezielt löschen. - Keine unüberlegten `rm -rf` Aktionen auf dem Storage – immer mit klarer Strategie arbeiten. ## 3. Archivierung hängt oder schlägt häufig fehl 1. **Queue-Status prüfen** - `media-storage` Queue‑Länge, Failed Jobs in Horizon prüfen. - Log‑Channel `storage-jobs` nach Fehlermeldungen durchsuchen. 2. **Fehlerbilder auswerten** - Typische Ursachen: - Netzwerk‑/Credential‑Probleme beim Zugriff auf den Archiv‑Bucket. - Zeitüberschreitungen bei sehr großen Medien. - Inkonsistente `EventMediaAsset`‑Einträge (Pfad nicht mehr vorhanden, falscher Disk‑Key). 3. **Abhilfe** - Netzwerk/Credentials fixen (z.B. S3‑Keys, Endpoints, Rechte). - Problematische Assets gezielt in den Logs identifizieren und manuell nachziehen (Kopie auf Archive‑Disk, Status auf `archived` setzen, Fehler‑Feld leeren). - Wenn viele Assets betroffen sind, lieber ein dediziertes Skript/Job bauen als ad‑hoc SQL. ## 4. Fehlende oder beschädigte Medien-Dateien Wenn `EventMediaAsset`‑Einträge existieren, die zu nicht mehr vorhandenen Dateien zeigen: 1. **Umfang ermitteln** - Stichproben auf Basis der Fehlerlogs oder per Batch‑Check (z.B. ein Artisan‑Command, das `exists()` prüft). 2. **Backup-Sicht** - Prüfen, ob die Dateien noch im Backup vorhanden sind (Hot‑/Archive‑Backups). 3. **Wiederherstellung** - Fehlende Dateien an den erwarteten Pfad im Storage kopieren (Hot oder Archive). - `EventMediaAsset`‑Status und Timestamps ggf. aktualisieren (`hot` vs. `archived`). Wenn keine Backups existieren, bleibt nur, die betroffenen Assets sauber als „nicht mehr verfügbar“ zu kennzeichnen und die Nutzer entsprechend zu informieren. ## 5. Nach einem Storage-Incident - **Monitoring schärfen** - Schwellwerte in `storage-monitor` anpassen (Warnung/Kritisch), Alerts für Queues/Storage erweitern. - **Kapazitätsplanung** - Erkenntnisse über Medienwachstum nutzen, um frühzeitig auf größere Volumes/Buckets oder häufigere Archivierung umzusteigen. - **Dokumentation** - Incident und Maßnahmen als bd-Issue dokumentieren. - Dieses Playbook aktualisieren, wenn neue Muster entdeckt wurden. Dieses Playbook ist eng mit `docs/ops/media-storage-spec.md` und `docs/ops/monitoring-observability.md` verknüpft. Nutze diese Dokumente für Detailinformationen zu Queues, Thresholds und Storage‑Targets.