Longhorn — Operations¶
Scope
Kubernetes distributed storage operations including volume management, backup/DR, performance tuning, and node maintenance.
Deployment¶
# Helm install (recommended)
helm install longhorn longhorn/longhorn \
--namespace longhorn-system --create-namespace \
--set defaultSettings.defaultReplicaCount=3 \
--set defaultSettings.storageOverProvisioningPercentage=200
Volume Operations¶
# Check volume health
kubectl -n longhorn-system get volumes.longhorn.io
# Force detach stuck volume
kubectl -n longhorn-system patch volumes.longhorn.io <vol> \
--type=merge -p '{"spec":{"nodeID":""}}'
StorageClass Configuration¶
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn-fast
provisioner: driver.longhorn.io
parameters:
numberOfReplicas: "3"
dataLocality: "best-effort"
diskSelector: "ssd"
reclaimPolicy: Delete
volumeBindingMode: Immediate
Backup & DR¶
# Create backup target (S3-compatible)
# Settings > Backup Target: s3://longhorn-backup@us-east-1/
# Settings > Backup Target Credential Secret: aws-secret
# Recurring backup schedule
kubectl apply -f - <<EOF
apiVersion: longhorn.io/v1beta2
kind: RecurringJob
metadata:
name: daily-backup
namespace: longhorn-system
spec:
cron: "0 2 * * *"
task: backup
retain: 7
concurrency: 2
EOF
Performance Tuning¶
| Setting | Default | Recommended | Impact |
|---|---|---|---|
| Replica count | 3 | 3 (HA) / 2 (perf) | Storage overhead vs durability |
| Data locality | disabled | best-effort | Reduces cross-node I/O |
| Replica soft anti-affinity | true | true | Spread replicas across nodes |
| Guaranteed engine manager CPU | 12 | 25 | Reduces I/O scheduling latency |
Common Issues¶
| Issue | Diagnosis | Fix |
|---|---|---|
| Volume degraded | UI > Volume details | Check node/disk health |
| Rebuild slow | longhornctl check |
Increase replica rebuild threads |
| PVC stuck Pending | kubectl describe pvc |
Check StorageClass, node labels |
| Disk pressure | kubectl top nodes |
Add disks, delete unused volumes |