[libvirt-users] After a 'virsh blockpull', 'virsh snapshot-list --tree' o/p does not reflect reality

Kashyap Chamarthy kchamart at redhat.com
Thu Sep 13 16:03:15 UTC 2012


On 09/13/2012 08:56 PM, Eric Blake wrote:
> On 09/13/2012 02:59 AM, Kashyap Chamarthy wrote:
>> Hi (Eric?),
>>
>> A couple of questions while using the 'virsh blockpull'
>>
>>
>>
>> Summary:
>>
>> 1] Created snapshots this way: base<-snap1<-snap2<-snap3  (online, external snapshot
>> --disk-only)
>> 2] I did a 'virsh blockpull' from snap2 into snap3
>> 3] Next, did another 'virsh blockpull' from snap1 into snap3
> 
> You could have also done a 'virsh blockpull' from snap1 into snap3
> without the intermediate pull of snap2, but shouldn't make a difference
> to your end question.
> 
>> 	- Here, 'qemu-img info /path/to/snap3' shows its backing file correctly as snap1. But not
>> 'virsh snapshot-list $domain --tree' . Any hints?
> 
> virsh snapshot-list is still accurately listing the state of the tree at
> the time of the snapshot,

OK.

> not what you have done after the snapshot.  If
> you were to revert to snap1 or snap2 (assuming that I ever get
> revert-to-disk-snapshots working), 

Um, till 'revert' is implemented, I'd assume, the existing use-cases  with
'external-disk/live' snapshots would be the ability to manage/manipulate the backing
chain. Or take the guest offline and do the snapshot-manipulation with 'qemu-img'


> you would still be able to do that,
> provided you haven't deleted snap1 or snap2 from your file system.  That
> is, it is feasible to go from:
> 
> base<-snap123        (snap1 and snap2 were pulled into snap3)
> 
> and then revert back to:
> 
> base<-snap1   (undo the changes that were in snap2 and snap3)
> 
> Libvirt does not modify any snapshot information when doing a blockpull
> operation, and I'm not yet convinced that it even needs to.  (I'm
> dreading if it does, because having a blockpull update the snapshot tree
> seems rather complicated.)

Agreed. As is, the differentiation between 'snapshot chain' and 'backing chain' can be
easily missed(like I did) if not closely observed.

> 
>>
>> Here, shouldn't 'virsh snapshot-list' --tree be updated as well ?(since 'snap2' is no more
>> the backing file for 'snap3' ?)
> 
> The snapshot chain is independent of each disk's backing chain.

This is the point, I should have had more clarity about.

>  The
> snapshot chain is still correct, because you haven't used 'virsh
> snapshot-delete' to shorten the snapshot chain (then again, I still
> haven't implemented that for disk snapshots...)

Noted. Thanks, for your lucid responses(as usual).

Also, when you have a moment, can you please differentiate between 'blockcopy' and
'blockpull'

/me is reading the 'virsh' man page for the details, but a bit more explanation about what
scenarios it'd be useful will help clarify things while I'm experimenting with them.



> 


-- 
/kashyap




More information about the libvirt-users mailing list