qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH COLO-BLOCK v7 00/17] Block replication for conti


From: Wen Congyang
Subject: Re: [Qemu-devel] [PATCH COLO-BLOCK v7 00/17] Block replication for continuous checkpoints
Date: Thu, 09 Jul 2015 21:48:22 +0800
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

At 2015/7/9 21:40, Dr. David Alan Gilbert Wrote:
* Wen Congyang (address@hidden) wrote:
On 07/09/2015 06:37 PM, Dr. David Alan Gilbert wrote:
* Wen Congyang (address@hidden) wrote:
On 07/09/2015 05:16 PM, Dr. David Alan Gilbert wrote:
* Wen Congyang (address@hidden) wrote:

I have sent the v8. But the usage is not changed. You can setup the environment 
according to the wiki.
When we open nbd client, we need to connect to the nbd server. So I introduce a 
new command child_add to add NBD client
as a quorum child when the nbd server is ready.

The nbd server is ready after you run the following command:
nbd_server_start 0:6262 # the secondary qemu will listen to host:port
nbd_server_add -w mc1   # the NBD server will know this disk is used as NBD 
server. The export name is its id wc1.
                         # -w means we allow to write to this disk.

Then you can run the following command in the primary qemu:
child_add disk1 
child.driver=replication,child.mode=primary,child.file.host=127.0.0.1,child.file.port=6262,child.file.export=mc1,child.file.driver=nbd,child.ignore-errors=on

After this monitor command, nbd client has connected to the nbd server.

Ah! The 'child.file.export=mc1' wasn't there previously; I see Yang added that 
to the wiki yesterday;
that probably explains the problem that we've been having.

Sorry for this mistake.

OK, so this is working for me (with the 7.2 world).   What isn't working in 
this setup is migrate -b, I get:

(qemu) Receiving block device images
Error unknown block device disk1
qemu-system-x86_64: error while loading state section id 1(block)
qemu-system-x86_64: load of migration failed: Invalid argument

Can you explain the id=disk1 on the master side?

Can you give me the command line? I think the id in primary and secondary qemu 
is not same.

Sure, primary:

./try/bin/qemu-system-x86_64 -enable-kvm -nographic \
      -boot c -m 4096 -smp 4 -S \
      -name debug-threads=on -trace events=trace-file \
      -netdev tap,id=hn0,script=$PWD/ifup-prim,\
downscript=no,colo_script=$PWD/qemu/scripts/colo-proxy-script.sh,colo_nicname=em4
 \
      -device e1000,mac=9c:da:4d:1c:b5:89,id=net-pci0,netdev=hn0 \
      -device virtio-rng-pci \
      -drive if=virtio,id=disk1,driver=quorum,read-pattern=fifo,\

If you want to use block migration, set the id to colo1

OK, does it make sense to always make it colo1 rather than having the 'disk1' 
and 'colo1' names?

You can use anyone. The export name must be the secondary disk's id.

Thanks
Wen Congyang


cache=none,aio=native,\
children.0.file.filename=./bugzilla.raw,\
children.0.driver=raw

Sure, secondary:

TMPDISKS=/run
qemu-img create -f qcow2 $TMPDISKS/colo-hidden-disk.qcow2 40G
qemu-img create -f qcow2 $TMPDISKS/colo-active-disk.qcow2 40G

./try/bin/qemu-system-x86_64 -enable-kvm -nographic \
      -boot c -m 4096 -smp 4 -S \
      -name debug-threads=on -trace events=trace-file \
      -netdev tap,id=hn0,script=$PWD/ifup-slave,\
downscript=no,colo_script=$PWD/qemu/scripts/colo-proxy-script.sh,colo_nicname=em4
 \
      -device e1000,mac=9c:da:4d:1c:b5:89,id=net-pci0,netdev=hn0 \
      -device virtio-rng-pci \
      -drive 
if=none,driver=raw,file=/home/localvms/bugzilla.raw,id=colo1,cache=none,aio=native
 \
      -drive 
if=virtio,driver=replication,mode=secondary,export=colo1,throttling.bps-total-max=70000000,\
file.file.filename=$TMPDISKS/colo-active-disk.qcow2,\
file.driver=qcow2,\
file.backing.file.filename=$TMPDISKS/colo-hidden-disk.qcow2,\
file.backing.driver=qcow2,\
file.backing.backing.backing_reference=colo1,\
file.backing.allow-write-backing-file=on \
      -incoming tcp:0:8888


Secondary:
    nbd_server_start :8889
    nbd_server_add -w colo1

primary:

child_add disk1 
child.driver=replication,child.mode=primary,child.file.host=ibpair,child.file.port=8889,child.file.export=colo1,child.file.driver=nbd,child.ignore-errors=on

here, it is child_add colo1 ....

(qemu) migrate_set_capability colo on
(qemu) migrate -d -b tcp:ibpair:8888


note the 'id=disk1' in the primary is shown in your wiki.

IIRC, the default id is diskx, x is 1, 2, 3...

OK, using the colo1 in both those places that works (this is in the 7.2 world)
and the RAM disk size now doesn't grow in the -b block migrate.

Dave


Thanks
Wen Congyang


Dave

  Thanks
Wen Congyang


Dave


Thanks
Wen Congyang


Dave


Thanks
Wen Congyang


- Michael

.



--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
.


--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
.



--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
.



--
Dr. David Alan Gilbert / address@hidden / Manchester, UK




reply via email to

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