Hello guys, I was hoping to have some feedback from the community on the subject of having an ability to keep snapshots on the primary storage where it is supported by the storage backend.
The idea behind this functionality is to improve how snapshots are currently handled on KVM hypervisors with Ceph primary storage. At the moment, the snapshots are taken on the primary storage and being copied to the secondary storage. This method is very slow and inefficient even on small infrastructure. Even on medium deployments using snapshots in KVM becomes nearly impossible. If you have tens or hundreds concurrent snapshots taking place you will have a bunch of timeouts and errors, your network becomes clogged, etc. In addition, using these snapshots for creating new volumes or reverting back vms also slow and inefficient. As above, when you have tens or hundreds concurrent operations it will not succeed and you will have a majority of tasks with errors or timeouts. At the moment, taking a single snapshot of relatively small volumes (200GB or 500GB for instance) takes tens if not hundreds of minutes. Taking a snapshot of the same volume on ceph primary storage takes a few seconds at most! Similarly, converting a snapshot to a volume takes tens if not hundreds of minutes when secondary storage is involved; compared with seconds if done directly on the primary storage. I suggest that the CloudStack should have the ability to keep volume snapshots on the primary storage where this is supported by the storage. Perhaps having a per primary storage setting that enables this functionality. This will be beneficial for Ceph primary storage on KVM hypervisors and perhaps on XenServer when Ceph will be supported in a near future. This will greatly speed up the process of using snapshots on KVM and users will actually start using snapshotting rather than giving up with frustration. I have opened the ticket CLOUDSTACK-8256, so please cast your vote if you are in agreement. Thanks for your input Andrei