[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] blockdev-mirror , how to replace old nodename by new nodena
From: |
Alexandre DERUMIER |
Subject: |
[Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ? |
Date: |
Wed, 19 Apr 2017 09:08:20 +0200 (CEST) |
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
}
];
- [Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ?,
Alexandre DERUMIER <=