[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