All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ?
@ 2017-04-19  7:08 Alexandre DERUMIER
  2017-04-19  9:02 ` Fam Zheng
  2017-04-19 10:43 ` Kashyap Chamarthy
  0 siblings, 2 replies; 8+ messages in thread
From: Alexandre DERUMIER @ 2017-04-19  7:08 UTC (permalink / raw)
  To: qemu-devel

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
          }
        ];


 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-04-19 13:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-19  7:08 [Qemu-devel] blockdev-mirror , how to replace old nodename by new nodename ? Alexandre DERUMIER
2017-04-19  9:02 ` 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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.