Files
fotospiel-app/docs/ops/dr-storage-issues.md
2025-11-20 12:31:21 +01:00

3.9 KiB
Raw Blame History

title, sidebar_label
title sidebar_label
DR-Playbook Storage-Probleme (Hot/Archive) DR Storage

Dieses Playbook beschreibt, wie du vorgehst, wenn es Probleme mit dem MedienStorage gibt z.B. HotStorage 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 UploadFlow).
  • 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:

  • StorageUsage der HotVolumes/Buckets prüfen (DockerVolume, S3Dashboard o.ä.).
  • EventMediaAssetStatus stichprobenartig prüfen (hot, archived, pending, failed).
  • QueueLä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/ProviderWarnungen (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-storageQueue abgearbeitet wird.
    • Temporäre Limits erhöhen, falls Provider dies erlaubt (z.B. S3Bucket 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 QueueLänge, Failed Jobs in Horizon prüfen.
    • LogChannel storage-jobs nach Fehlermeldungen durchsuchen.
  2. Fehlerbilder auswerten
    • Typische Ursachen:
      • Netzwerk/CredentialProbleme beim Zugriff auf den ArchivBucket.
      • Zeitüberschreitungen bei sehr großen Medien.
      • Inkonsistente EventMediaAssetEinträge (Pfad nicht mehr vorhanden, falscher DiskKey).
  3. Abhilfe
    • Netzwerk/Credentials fixen (z.B. S3Keys, Endpoints, Rechte).
    • Problematische Assets gezielt in den Logs identifizieren und manuell nachziehen (Kopie auf ArchiveDisk, Status auf archived setzen, FehlerFeld leeren).
    • Wenn viele Assets betroffen sind, lieber ein dediziertes Skript/Job bauen als adhoc SQL.

4. Fehlende oder beschädigte Medien-Dateien

Wenn EventMediaAssetEinträge existieren, die zu nicht mehr vorhandenen Dateien zeigen:

  1. Umfang ermitteln
    • Stichproben auf Basis der Fehlerlogs oder per BatchCheck (z.B. ein ArtisanCommand, das exists() prüft).
  2. Backup-Sicht
    • Prüfen, ob die Dateien noch im Backup vorhanden sind (Hot/ArchiveBackups).
  3. Wiederherstellung
    • Fehlende Dateien an den erwarteten Pfad im Storage kopieren (Hot oder Archive).
    • EventMediaAssetStatus 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 in docs/process/changes/* 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 StorageTargets.