qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [libvirt-users] Using virsh blockcopy -- what's it supp


From: Kashyap Chamarthy
Subject: Re: [Qemu-devel] [libvirt-users] Using virsh blockcopy -- what's it supposed to accomplish?
Date: Thu, 8 Jan 2015 21:21:40 +0100
User-agent: Mutt/1.5.22.1 (2013-10-16)

On Thu, Jan 08, 2015 at 01:44:58PM -0600, Gary R Hook wrote:
> On 12/24/14 4:42 AM, Kashyap Chamarthy wrote:
> >On Tue, Dec 23, 2014 at 12:38:57PM -0600, Gary R Hook wrote:
> >
> >[. . .]
> >
> >In my case, the block device is a QCOW2 disk image file. If I boot
> >without using the disk image file which has the operating system, the
> >domain will fail to boot, no?
> >
> >I see you're playing with NBD disks. I'll admit, I haven't played much
> >with QEMU NBD, will have to experiment post holidays.
> 
> Back from the holidays, and back on this issue. I've learned a lot.
> 
> I've learned how to use the blockcopy command to create a local copy in a
> simple disk file:
> 
> virsh dumpxml my_domain > my_domain.xml
> virsh undefine my_domain
> virsh blockcopy --domain my_domain vda $PWD/dsk.copy.qcow2 --wait --verbose
> --finish
> virsh define my_domain.xml

Yes, that's correct.

> and the resulting copy in dsk.copy.qcow2 is, indeed, bootable. It appears to
> be a perfect copy, as I expect it to be.

Good, this time you find it bootable, compared to your previous test.

> But while I see (per Kashyap's article, etc) that it can be useful in
> certain scenarios, it's not interesting to me. I would like to my copy to be
> off-system, and was hoping to use the NBD interface to accomplish that. So I
> tried this (a variant of the above), working on the same system because it's
> easier:
> 
> qemu-img create -f qcow2 /tmp/dsk.test.qcow2

A typo? You also need to provide a size here:

    $ qemu-img create -f qcow2 /tmp/dsk.test.qcow2 1G


For the rest, I'm afraid I still didn't manage time to test
the NBD scenario to give a meaningful response here. I'll let the others
who deal with NBD more often respond to it.

> qemu-nbd -f qcow2 -p11112 /tmp/dsk.test.qcow2
> nbd-client localhost 11112 /dev/nbd2
> virsh dumpxml my_domain > my_domain.xml
> virsh undefine my_domain
> virsh blockcopy --domain my_domain --wait --verbose --finish
> virsh define my_domain.xml
> nbd-client -d /dev/nbd2
> 
> and the qemu-nbd process exits, as I wish. I presume at this point that the
> new file has integrity.
> 
> I can take the qcow2 file that belongs to the domain and serve it up via
> NBD:
> 
> qemu-nbd --partition=1 -p11112 /path/to/my/qcow2/file.qcow2
> nbd-client localhost 11112 /dev/nbd2
> mount /dev/nbd2 -oloop /mnt/foo
> 
> and lo! in /mnt/foo I found my root filesytem. Seems perfectly reasonable.
> 
> If, however, I try to use my generated-via-NBD file, I get this:
> 
> # qemu-nbd --partition=1 -p11112 $PWD/dsk.test.qcow2 &
> [1] 7672
> # qemu-nbd: Could not find partition 1: Invalid argument
> 
> [1]+  Exit 1                  qemu-nbd --partition=1 -p11112
> $PWD/dsk.test.qcow2
> # qemu-nbd --partition=0 -p11112 $PWD/dsk.test.qcow2 &
> [1] 7686
> # qemu-nbd: Invalid partition 0
> ^C
> [1]+  Exit 1                  qemu-nbd --partition=0 -p11112
> $PWD/dsk.test.qcow2
> # qemu-nbd --partition=2 -p11112 $PWD/dsk.test.qcow2 &
> [1] 7699
> # qemu-nbd: Could not find partition 2: Invalid argument
> ^C
> [1]+  Exit 1                  qemu-nbd --partition=2 -p11112
> $PWD/dsk.test.qcow2
> # qemu-nbd --partition=3 -p11112 $PWD/dsk.test.qcow2 &
> [1] 7830
> # qemu-nbd: Could not find partition 3: Invalid argument
> 
> [1]+  Exit 1                  qemu-nbd --partition=3 -p11112
> $PWD/dsk.test.qcow2
> 
> I don't know what has been created, but it's not a copy of the original
> guest's disk. There's no partition there, it seems.
> 
> So yes, blockcopy works fine under certain conditions. But the NBD layer
> seems to really muck things up.
> 
> Or, more likely, I'm doing things wrong. I'm hoping someone can point out
> something obvious.
> 
> There's a recent thread about "Block Replication for Continuous
> Checkpointing" that is heading towards using NBD. I fail to understand how
> this is ever going to work, based on my explorations.

-- 
/kashyap



reply via email to

[Prev in Thread] Current Thread [Next in Thread]