From: Alexandre DERUMIER <aderumier@odiso.com>
To: qemu-devel <qemu-devel@nongnu.org>
Subject: [Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ?
Date: Wed, 19 Apr 2017 09:08:20 +0200 (CEST) [thread overview]
Message-ID: <1009091132.10984059.1492585700295.JavaMail.zimbra@oxygem.tv> (raw)
Hi,
I'm trying to implement blockdev-mirror, to replace drive-mirror as we can pass more options with blockdev-mirror.
I would like to mirror an attached blockdev to a new blockdev, then switch at the end of block-job-complete, like for drive-mirror.
qemu command line (vm-138-disk-1.qcow2 filename on "drive-virtio0" nodename:
-blockdev {"node-name":"drive-virtio0","cache":{"direct":true},"driver":"qcow2","file":{"filename":"/var/lib/vz/images/138/vm-138-disk-1.qcow2","aio":"threads","driver":"file"}}
-device virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,write-cache=on
add a new blockdev with blockdev-add: (a file vm-138-disk-2.raw has been created before, I assign it to a "tempmirror" nodename)
{"arguments":{"driver":"raw","cache":{"direct":true},"node-name":"tempmirror","file":{"driver":"file","aio":"threads","filename":"/var/lib/vz/images/138/vm-138-disk-2.raw"}},"execute":"blockdev-add"}
blockdev-mirror:
{"arguments":{"job-id":"drive-virtio0","target":"tempmirror","sync":"full","replaces":"drive-virtio0","device":"drive-virtio0"},"execute":"blockdev-mirror"}
(I have try with or without replaces option)
then query-name-block-nodes, show vm-138-disk-2.raw file on tempmirror "node-name", and vm-138-disk1.qcow2 on "drive-virtio0" node-name
I expected that both was switched, like for drive-mirror.
Any idea ?
Regards,
Alexandre
[query-named-block-nodes","arguments":{}
$VAR1 = [
{
'bps_wr' => 0,
'cache' => {
'no-flush' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'direct' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'writeback' => $VAR1->[0]{'cache'}{'direct'}
},
'bps' => 0,
'iops' => 0,
'node-name' => 'toto',
'ro' => $VAR1->[0]{'cache'}{'no-flush'},
'image' => {
'actual-size' => 1074794496,
'filename' => '/var/lib/vz/images/138/vm-138-disk-2.raw',
'dirty-flag' => $VAR1->[0]{'cache'}{'no-flush'},
'format' => 'raw',
'virtual-size' => 1073741824
},
'write_threshold' => 0,
'iops_rd' => 0,
'bps_rd' => 0,
'encrypted' => $VAR1->[0]{'cache'}{'no-flush'},
'encryption_key_missing' => $VAR1->[0]{'cache'}{'no-flush'},
'backing_file_depth' => 0,
'detect_zeroes' => 'off',
'file' => '/var/lib/vz/images/138/vm-138-disk-2.raw',
'drv' => 'raw',
'iops_wr' => 0
},
{
'ro' => $VAR1->[0]{'cache'}{'no-flush'},
'node-name' => '#block132',
'file' => '/var/lib/vz/images/138/vm-138-disk-2.raw',
'detect_zeroes' => 'off',
'iops_wr' => 0,
'drv' => 'file',
'iops_rd' => 0,
'bps_rd' => 0,
'image' => {
'actual-size' => 1074794496,
'filename' => '/var/lib/vz/images/138/vm-138-disk-2.raw',
'dirty-flag' => $VAR1->[0]{'cache'}{'no-flush'},
'virtual-size' => 1073741824,
'format' => 'file'
},
'write_threshold' => 0,
'backing_file_depth' => 0,
'encryption_key_missing' => $VAR1->[0]{'cache'}{'no-flush'},
'encrypted' => $VAR1->[0]{'cache'}{'no-flush'},
'bps_wr' => 0,
'bps' => 0,
'iops' => 0,
'cache' => {
'no-flush' => $VAR1->[0]{'cache'}{'no-flush'},
'direct' => $VAR1->[0]{'cache'}{'direct'},
'writeback' => $VAR1->[0]{'cache'}{'direct'}
}
},
{
'drv' => 'qcow2',
'iops_wr' => 0,
'detect_zeroes' => 'off',
'file' => '/var/lib/vz/images/138/vm-138-disk-1.qcow2',
'encrypted' => $VAR1->[0]{'cache'}{'no-flush'},
'encryption_key_missing' => $VAR1->[0]{'cache'}{'no-flush'},
'backing_file_depth' => 0,
'image' => {
'cluster-size' => 65536,
'virtual-size' => 1073741824,
'format-specific' => {
'type' => 'qcow2',
'data' => {
'corrupt' => $VAR1->[0]{'cache'}{'no-flush'},
'compat' => '1.1',
'lazy-refcounts' => $VAR1->[0]{'cache'}{'no-flush'},
'refcount-bits' => 16
}
},
'format' => 'qcow2'
},
'write_threshold' => 0,
'bps_rd' => 0,
'iops_rd' => 0,
'ro' => $VAR1->[0]{'cache'}{'no-flush'},
'node-name' => 'drive-virtio0',
'bps' => 0,
'iops' => 0,
'cache' => {
'writeback' => $VAR1->[0]{'cache'}{'direct'},
'no-flush' => $VAR1->[0]{'cache'}{'no-flush'},
'direct' => $VAR1->[0]{'cache'}{'direct'}
},
'bps_wr' => 0
},
{
'detect_zeroes' => 'off',
'file' => '/var/lib/vz/images/138/vm-138-disk-1.qcow2',
'drv' => 'file',
'iops_wr' => 0,
'write_threshold' => 0,
'image' => {
'format' => 'file',
'virtual-size' => 1074135040,
'dirty-flag' => $VAR1->[0]{'cache'}{'no-flush'},
'filename' => '/var/lib/vz/images/138/vm-138-disk-1.qcow2',
'actual-size' => 1075130368
},
'bps_rd' => 0,
'iops_rd' => 0,
'encryption_key_missing' => $VAR1->[0]{'cache'}{'no-flush'},
'encrypted' => $VAR1->[0]{'cache'}{'no-flush'},
'backing_file_depth' => 0,
'ro' => $VAR1->[0]{'cache'}{'no-flush'},
'node-name' => '#block071',
'bps' => 0,
'iops' => 0,
'cache' => {
'writeback' => $VAR1->[0]{'cache'}{'direct'},
'no-flush' => $VAR1->[0]{'cache'}{'no-flush'},
'direct' => $VAR1->[0]{'cache'}{'direct'}
},
'bps_wr' => 0
}
];
next reply other threads:[~2017-04-19 7:09 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-19 7:08 Alexandre DERUMIER [this message]
2017-04-19 9:02 ` [Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ? Fam Zheng
2017-04-19 9:40 ` Alexandre DERUMIER
2017-04-19 10:43 ` Kashyap Chamarthy
2017-04-19 12:28 ` Alexandre DERUMIER
2017-04-19 12:58 ` Kashyap Chamarthy
2017-04-19 13:36 ` Alexandre DERUMIER
2017-04-19 13:48 ` Alexandre DERUMIER
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1009091132.10984059.1492585700295.JavaMail.zimbra@oxygem.tv \
--to=aderumier@odiso.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).