
On 21/10/2018 19:38, Povilas Kanapickas wrote:
Hey all,
Currently libvirt only supports creation of external disk snapshots, but not reversion and deletion which are essential for any serious use of this feature. I've looked into implementing removal and reversion of external disk snapshots and came up with some prototype code that works with my simple test VMs (see attached patches).
I'd like to discuss about how these features could be implemented properly. As I've never significantly contributed to libvirt yet, I wanted to delay the discussion until I understand the problem space myself so that the discussion could be productive.
My current approach is relatively simple. For snapshot deletion we either simply remove the disk or use `qemu-img rebase` to reparent a snapshot on top of the parent of the snapshot that is being deleted. For reversion we delete the current overlay disk and create another that uses the image of the snapshot we want to revert to as the backing disk.
Are the attached patches good in principle? Are there any major blockers aside from lack of tests, code formatting, bugs and so on? Are there any design issues which prevent a simple implementation of external disk snapshot support that I didn't see?
If there aren't significant blockers, my plan would be to continue work on the feature until I have something that could actually be reviewed and possibly merged.
Friendly ping :-) Regards, Povilas