Storage and Upgrades¶
Managing persistent storage and handling upgrades are critical for maintaining a stable edge LLM platform.
1. Storage Management Overview¶
The platform uses k3s's built-in local-path-provisioner to dynamically provision Persistent Volume Claims (PVCs). This maps kubernetes storage directly to the host's filesystem.
Key PVCs in the platform:
- Ollama Models (ollama-data): Stores all downloaded GGUF weights. Can grow very large (20GB+).
- Open WebUI Database: Stores user accounts, chat histories, and settings.
- Prometheus Data: Stores time-series metrics.
2. Checking Storage Usage¶
To check PVC capacity and usage from Kubernetes:
Expected Output:NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
llm-stack-open-webui Bound pvc-1234abcd-5678-efgh-ijkl-901234567890 2Gi RWO local-path 10d
ollama-llm-stack-ollama-0 Bound pvc-abcd1234-efgh-5678-ijkl-098765432109 30Gi RWO local-path 10d
prometheus-llm-stack-kube-prometheus-db-prometheus-llm-stack-kube-prometheus-prometheus-0 Bound pvc-xyz... 10Gi RWO local-path 10d
To find exactly where this data is stored on the host:
3. Expanding Storage (PVC Resizing)¶
If you need more space for models, you can expand the Ollama PVC (assuming the host has physical space).
- Edit the PVC:
- Change the capacity:
Find the
spec.resources.requests.storagefield and increase it (e.g., from30Gito50Gi). - Verify Expansion: Note: The expansion usually requires the pod to be restarted to take effect at the filesystem level.
4. Upgrading the LLM Stack Helm Chart¶
When a new version of the llm-observability-stack or its dependencies is available:
- Update Helm Dependencies:
- Apply the Upgrade:
- Monitor Rollout:
[!WARNING] Helm upgrades can sometimes recreate pods. While PVCs retain data, active chats or running generations will be interrupted.
5. Upgrading k3s¶
Upgrading the Kubernetes distribution itself should be done carefully to avoid breaking the GPU Operator.
- Check current version:
- Run upgrade script:
- Verify:
Ensure the GPU Operator components (especially
nvidia-device-plugin-daemonset) return toRunningstate after the node restarts its kubelet.
6. Backup Procedures¶
To backup Open WebUI chats and user data, you can simply tar the directory on the host: