proxmox-csi-plugin
proxmox-csi-plugin copied to clipboard
Snapshot support (backup/restore)
Feature Request
Description
Proxmox supports backup API calls. After manual testing, CSI can create snapshots of PVs and recover them through backups, but the process is slow. OpenStack also has this feature. It might be a good idea to implement it.
Please vote if someone needs it.
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
Currently stuck with the implementation. I think it’s impossible to implement without changes to the Proxmox API.
I've been evaluating the Proxmox csi driver and I really like the idea och using dynamically provisioned vm disks for persistent storage. Impressive work so far!
A reliabel and somewhat gitops friendly way to handle backup and restore (DR) would be really handy though, and this is so far preventing me from relynig on the csi driver for important data. Any tips for existing DR features I might have missed when scanning trough the documentation is very welcome. =)
Would it be possible to implement e.g. externalSnapshotter support to the csi driver? I'm not sure what problem you encountered with the proxmox API though. Of the top of my head, a way around having to rely on any proxmox snapshot features could be to implement support for referenfce e.g. an nfs share in the VolumeSnapshotClass and have the volumesnapshots being stored there.
If the StorageClass and VolumeSnapshotClass supported templating in order to name the vm disks and the volumesnapshots, then I believe it would make it possible to remount existing vm-disks and snapshots declaratively using git (dynamic provisioning) as well (as part of k8s cluster DR). An example of such templating can be found in e.g. the "csi driver nfs".
This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 14 days.
any news here? I like to use this for my cluster volumes, but we are now looking for good backup and recovery tools. we tried to use Veeam Kasten K10 but this needs Volume Snapshots by default.
> kubectl describe VolumeSnapshot k10-csi-snap-cxqsg6f4hj6zh847 -n hosting42-web
Name: k10-csi-snap-cxqsg6f4hj6zh847
Namespace: hosting42-web
Labels: kasten_io_appnamespace=hosting42-web
kasten_io_jobid=1fc3fac1-898b-11f0-88f7-b6ca72b021d9
kasten_io_manifestid=1fb916f7-898b-11f0-a4f7-0e84e7268681
kasten_io_pvc=shortener-db
name=kasten__snapshot-hosting42-web-ns-2025-09-04t12-31-45z-00
Annotations: <none>
API Version: snapshot.storage.k8s.io/v1
Kind: VolumeSnapshot
Metadata:
Creation Timestamp: 2025-09-04T12:32:23Z
Finalizers:
snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
snapshot.storage.kubernetes.io/volumesnapshot-bound-protection
Generation: 1
Resource Version: 8006911
UID: fd1a048e-a2f1-4128-8347-ef5c8ee84d41
Spec:
Source:
Persistent Volume Claim Name: shortener-db
Volume Snapshot Class Name: proxmox-data-snapshots
Status:
Bound Volume Snapshot Content Name: snapcontent-fd1a048e-a2f1-4128-8347-ef5c8ee84d41
Ready To Use: false
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CreatingSnapshot 15m snapshot-controller Waiting for a snapshot hosting42-web/k10-csi-snap-cxqsg6f4hj6zh847 to be created by the CSI driver.
Hi, I think I’ll return to this issue in the near future (within one or two months). I plan to try Proxmox 9, and maybe I’ll be able to find a solution.
I'm eager to test any progress with this. :-)
The edge version can make a snapshots now. see limitations https://github.com/sergelogvinov/proxmox-csi-plugin/blob/main/docs/volumesnapshot.md
Do not forget to run snapshotter as sidecar + apply CRDs and separate deployment (example: https://github.com/sergelogvinov/gitops-examples/tree/main/apps/clouds/csi-snapshotter)
Helm chart values:
controller:
plugin:
image:
pullPolicy: Always
tag: edge
snapshotter:
enabled: true
node:
plugin:
image:
pullPolicy: Always
tag: edge