Se você está indo pelo caminho libvirt, por que não está usando o recurso de snapshot do libvirt ?
Se você ler o site, verá que ele diz:
Disk snapshots exist in two forms: internal (file formats such as qcow2 track both the snapshot and changes since the snapshot in a single file) and external (the snapshot is one file, and the changes since the snapshot are in another file).
disk
This sub-element describes the snapshot properties of a specific disk. The attribute name is mandatory, and must match either the<target dev='name'/>
...
Se o disco da sua VM for um LV, você o especifica usando ... dev = 'lv_name' ...