Hi!
We use Trident in Kubernetes to provision NetApp volumes in our ONTAP system. We have daily snapshots enabled in the SVM to reduce the risk of data loss. Unfortunately, this means that some volumes gets filled with snapshots and have no space left for user data. We've set snapshotReserve=50 to have more space allocated to snapshots, but it does not limit the snapshots to the reserved space so we still run out of space in the volume!
The app in Kubernetes that is particularly effected by this is a Postgresql database. Not exactly sure why, but maybe it has a high churn rate for some reason. Perhaps there is a bug in the app that cause the high churn rate on disk, but we are not sure. And in any case, when a customer requests a 10GiB volume we want them to be able to access the full space, not just some arbitrary number lower than that. And we never want to risk snapshots eating up all usable space for them, since they do not control snapshots.
Am I missing something here? Is there a way to limit snapshots so they cannot encroach on the user's disk space? What's the best practice? Is snapshots a "bad" feature for my use-case and I should use an external backup system instead?