[libvirt-users] virsh snapshot-create and blockcopy

Kashyap Chamarthy kchamart at redhat.com
Mon Jun 10 10:45:05 UTC 2013


>>> Just to make myself clear. I want to backup the qcow image /with/ the
>>> internal snapshot. Is that even possible with blockcopy?
>>
>> Let's try. I just did the below test (also I noted it in the URL below)
>>
>> # Take an (internal) snapshot when the guest was shutdown
> 
> Okay. So even a snapshot taken while the machine is off is not
> preserved. That's a pity.

Some more details - blockcopy's usecase is different:

>From my notes w/ previous interactions w/ Eric (Blocklayer primary dev), blockcopy allows you

(1) to create a copy of a chain, and optionally "pivoting" live qemu to use that copy
instead of the original.

Here, 'pivoting' means:

Going from

	base<-snap1<-path1/to/snap2
to

	base<-snap1<-path2/to/snap2,

where path{1,2}/to/snap2 are copies at the time of the pivot.


(2) It is also possible to take a copy but not pivot to it, for backup purpose, so
blockcopy has a choice of shallow or full:   If you use --shallow, only the leaf image is
copied, the rest of the chain is untouched.

So if you have

	base <- snap1 <- active;

copy --shallow creates

	base <- snap1 <- copy (where copy matches active);

copy without shallow creates "copy", where copy matches the entire chain.


> 
> Thank you anyway .
> 
> best regards
> t.
> 
>> $ virsh snapshot-list fed18
>>  Name                 Creation Time             State
>> ------------------------------------------------------------
>>  1370847718           2013-06-10 12:31:58 +0530 shutoff
>>
>>
>> # Start the guest
>> $ virsh start fed18
>>
>>
>> # Undefine the guest while it is running - this will
>> # make the guest transient (libvirt expects it to be 'transient')
>> $ virsh undefine fed18
>> Domain fed18 has been undefined
>>
>>
>> # List the guest
>> root@~$ virsh list
>>  Id    Name                           State
>> ----------------------------------------------------
>>  3     fed18                          running
>>
>> $
>>
>>
>> # Do blockcopy (it's only when the guest is "live")
>> $ virsh blockcopy --domain fed18 vda \
>> /export/backup/images/fed18.qcow2 --wait --finish --verbose
>> Block Copy: [ 100 %]
>>
>>
>> # Query the info of original image:
>> ===========
>> root@~$ qemu-img info --backing-chain  /var/lib/libvirt/images/el6box1.qcow2
>> image: /var/lib/libvirt/images/el6box1.qcow2
>> file format: qcow2
>> virtual size: 10G (10737418240 bytes)
>> disk size: 1.2G
>> cluster_size: 65536
>> Snapshot list:
>> ID        TAG                 VM SIZE                DATE       VM CLOCK
>> 1         1370853048                0 2013-06-10 14:00:48   00:00:00.000
>> ===========
>> $ qemu-img snapshot -l /var/lib/libvirt/images/el6box1.qcow2
>> Snapshot list:
>> ID        TAG                 VM SIZE                DATE       VM CLOCK
>> 1         1370853048                0 2013-06-10 14:00:48   00:00:00.000
>> ===========
>>
>> # Query info of the backup:
>> ===========
>> $ qemu-img info --backing-chain  /export/backup/images/el6box1-back.qcow2
>> image: /export/backup/images/el6box1-back.qcow2
>> file format: qcow2
>> virtual size: 10G (10737418240 bytes)
>> disk size: 10G
>> cluster_size: 65536
>> ===========
>> $ qemu-img snapshot -l /export/backup/images/el6box1-back.qcow2
>> ===========
>>
>> Hm, from what it looks, it doesn't appear to preserve the internal snapshot..
>>
>>>
>>>> http://kashyapc.fedorapeople.org/virt/lc-2012/live-backup-with-blockcopy.txt
>>>>
>>


-- 
/kashyap




More information about the libvirt-users mailing list