Runbook Storage
Runbook: Storage
Diagnose und Behebung von Speicherproblemen: Host-Disk, PVCs und Upload-Zwischenspeicher.
Host-Disk voll¶
Symptom: Pods schlagen fehl, Schreibfehler in Logs, df -h zeigt >95% Auslastung.
Diagnose:
df -h
du -sh /var/lib/rancher/k3s/storage/* | sort -rh | head -10
Lösung:
- Container-Image-Cache bereinigen:
sudo k3s crictl rmi --prune - Alte K3s-Logs bereinigen:
sudo journalctl --vacuum-size=500M - Temporäre Dateien entfernen:
sudo rm -rf /tmp/platform.* - Langfristig: Disk über den VM-Provider erweitern.
Verifikation:
df -h
→ Auslastung unter 80%.
PVC voll¶
Symptom: Service loggt no space left on device.
Diagnose:
kubectl get pvc -n inovetra-platform
# Nutzung innerhalb des Pods prüfen
kubectl exec deployment/<name> -n inovetra-platform -- df -h
Lösung:
- Daten bereinigen (z. B. alte Backups)
- PVC erweitern (nur bei StorageClass mit
allowVolumeExpansion—local-pathunterstützt das nicht) - Workaround bei
local-path: - Backup erstellen
- PVC löschen und mit größerem Volumen neu erstellen
- Daten aus Backup wiederherstellen
Datenverlust vermeiden
Vor PVC-Löschung immer sicherstellen, dass ein vollständiges Backup vorhanden ist! Siehe Backup und Restore.
Verifikation:
kubectl exec deployment/<name> -n inovetra-platform -- df -h
→ Ausreichend freier Speicherplatz.
Upload-Zwischenspeicher nicht verfügbar¶
Symptom: Dokument-Upload schlägt mit HTTP 503 fehl und der Hinweis nennt den Upload-Speicher. Die Suche und der Chat funktionieren weiter — ein defektes Upload-Volume legt nur den Upload-Pfad still, nicht die gesamte RAG API.
Hochgeladene Dateien liegen zwischen Upload und Verarbeitung auf der PVC inovetra-rag-upload-storage, die die RAG API unter /tmp/uploads einbindet. Nach der Verarbeitung werden sie gelöscht; dauerhaft liegen die Inhalte in Qdrant.
Diagnose:
# Meldet die RAG API den Zwischenspeicher als nutzbar?
kubectl exec deployment/inovetra-rag-api -n inovetra-platform -- \
curl -sk https://localhost:8443/health
# Ist die PVC gebunden und der Pod gesund?
kubectl get pvc inovetra-rag-upload-storage -n inovetra-platform
kubectl get pods -n inovetra-platform -l app.kubernetes.io/component=rag-api
Im Health-Ergebnis zeigt das Feld staging entweder ok oder unavailable.
Lösung:
# Platz auf dem Volume prüfen
kubectl exec deployment/inovetra-rag-api -n inovetra-platform -- df -h /tmp/uploads
# Nach behobener Ursache (Platz, Rechte) neu starten
kubectl rollout restart deployment/inovetra-rag-api -n inovetra-platform
Verwaiste Dateien räumt die Plattform selbst ab
Ein stündlicher Aufräumlauf entfernt Staging-Dateien, die älter als 24 Stunden sind. Ein volllaufendes Upload-Volume deutet daher auf sehr viele gleichzeitige Uploads hin — oder auf eine Verarbeitung, die nicht durchläuft.
Verifikation:
kubectl exec deployment/inovetra-rag-api -n inovetra-platform -- \
curl -sk https://localhost:8443/health
→ Feld staging steht auf ok, ein Test-Upload im Customer Portal gelingt.
Weiterführende Seiten¶
- Troubleshooting Übersicht — Allgemeine Diagnoseschritte
- Kapazitätsplanung — Speicher-Dimensionierung