Skip to content

Future idea — tiered storage (not implemented)

Status: idea only

Nothing here is built. No storage class, PVC, or CSI driver should change based on this doc. Today's model is unchanged: Longhorn (V1) is the default CSI and backups are kopiur → Kopia → S3, declared per-PVC. See storage architecture.

The idea

Split storage responsibilities so most apps stop depending on distributed block storage just to run:

  • CSI layer — provisions and mounts live volumes, nothing else.
  • Backup layer (kopiur) — owns DR via restore-before-bind (dataSourceRef → Restore).

Because those are independent, "local storage" does not mean "no DR" — a plain local volume still restores from S3 through the backup layer.

Proposed tiers

Tier Storage For
1 — default local CSI (OpenEBS/ZFS LocalPV) + kopiur restore-based DR most non-DB apps
2 — replicated Longhorn replicated only apps needing live failover (a few config/state PVCs)
3 — database native (CNPG → Barman → S3) never generic CSI snapshot/restore

Tier 1 trade-off: if the node hosting a local volume dies, that app is down until the PVC is recreated and restored. For most homelab apps that's acceptable, and the failure mode is simple and explicit instead of distributed-storage churn.

If this is ever revisited

Classify each PVC by whether it needs live HA, is restore-from-backup-OK, is disposable, or is database-native, then define storage classes by intent. One real design item: kopiur's copyMethod: Snapshot assumes Longhorn snapshots, so a non-snapshotting local CSI would need a different mover strategy.