[libvirt-users] virsh blockcopy: doesn't seem to flatten the chain by default

shyu shyu at redhat.com
Thu Jul 3 09:07:40 UTC 2014


On 07/03/2014 03:12 AM, Kashyap Chamarthy wrote:
> Versions
> --------
>
> (Libvirt locally built from a recent git commit -ec7b922):
>
>      $ rpm -q libvirt-daemon-kvm qemu-system-x86
>      libvirt-daemon-kvm-1.2.6-1.fc20.x86_64
>      qemu-system-x86-2.0.0-1.fc21.x86_64
>
>
> Test
> ----
>
> [All images are qcow2 files.]
>
>
> We have this simple chain:
>
>      base <- snap1
>
> Let's quickly examine the contents of 'base' and 'snap1' images:
>
> 'base' has just a single file: foo
>
>      $ guestfish --ro -a base.qcow2
>      [. . .]
>      ><fs> ls /
>      ><fs> run
>      ><fs> mount /dev/sda1 /
>      ><fs> ls /
>      foo
>      lost+found
>      ><fs> quit
>
> 'snap1' has files: bar, baz, jazz
>
>      $ guestfish --ro -a snap1.qcow2
>      [. . .]
>      ><fs> run
>      ><fs> mount /dev/sda1 /
>      ><fs> ls /
>      bar
>      baz
>      jazz
>      lost+found
>      ><fs>
>
> Now, let's do a live blockcopy (with a '--finish' to graecully finish
> the mirroring):
>
>      $ virsh blockcopy --domain testvm2 vda \
>          /export/dst/copy.qcow2 \
>          --wait --verbose --finish
>
>
> Examine the contents of the above 'copy':
>
>      $ guestfish --ro -a copy.qcow2
>      [. . .]
>      ><fs> run
>      ><fs> mount /dev/sda1 /
>      ><fs> ls /
>      bar
>      baz
>      jazz
>      lost+found
>      ><fs> quit
>
> If I'm reading the man page of 'blockcopy' correctly, shouldn't it
> 'flatten' the entire chain, by also copying the contents of base into
> copy.qcow2? i.e. the 'copy' should have files (including the file foo
> from 'base':
>
>      foo, bar, baz, jazz
I do test on my fedora20 with libvirt build from libvirt.git

# cd libvirt && git describe
v1.2.6-9-g5098f67
# rpm -q qemu-kvm
qemu-kvm-2.0.0-7.fc20.x86_64

  It work well for me. I can see the file 'foo'(from base.qcow2) in copy 
file "copy.qcow2"

I also boot guest with image copy.qcow2, login guest and found file 
"foo" is existing.

>
> True or false?
>
>
> PS: I've tested the cases of --pivot, --shallow and --reuse-external,
> will post my notes about them on a wiki.
>

-- 
Regards
shyu




More information about the libvirt-users mailing list