[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] commit: Add top-node/base-node options
From: |
Peter Krempa |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] commit: Add top-node/base-node options |
Date: |
Tue, 28 Aug 2018 16:26:26 +0200 |
User-agent: |
Mutt/1.9.3 (2018-01-21) |
On Fri, Aug 10, 2018 at 18:26:57 +0200, Kevin Wolf wrote:
> The block-commit QMP command required specifying the top and base nodes
> of the commit jobs using the file name of that node. While this works
> in simple cases (local files with absolute paths), the file names
> generated for more complicated setups can be hard to predict.
>
> This adds two new options top-node and base-node to the command, which
> allow specifying node names instead. They are mutually exclusive with
> the old options.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> qapi/block-core.json | 24 ++++++++++++++++++------
> blockdev.c | 32 ++++++++++++++++++++++++++++++--
> 2 files changed, 48 insertions(+), 8 deletions(-)
While the below is not strictly relevant to this patch usage
block-commit is not possible when using -blockdev. Thus the new
arguments are not very useful otherwise.
With the new options I'm getting:
{"execute":"block-commit",
"arguments": { "device":"libvirt-3-format",
"job-id":"libvirt-3-format",
"top-node":"libvirt-8-format",
"base-node":"libvirt-9-format",
"auto-finalize":true,
"auto-dismiss":false},
"id":"libvirt-16"}
{"id":"libvirt-16",
"error":{"class":"GenericError",
"desc":"Block node is read-only"}}
I'm pointing into the backing chain so the files are declared as read-only.
It works just-fine if I open them as read-write with
-blockdev/blockdev-add but that obviously is not correct as you can't
then share parts of the backing chain with other VMs due to image
locking.
libvirt-3-format is read-write and all other node names are readonly in
the above example.
The same also happens when using filenames:
{"execute":"block-commit",
"arguments" : {"device":"libvirt-3-format",
"job-id":"libvirt-3-format",
"top":"/var/lib/libvirt/images/rhel7.3.1483615252",
"base":"/var/lib/libvirt/images/rhel7.3.1483605924",
"auto-finalize":true,
"auto-dismiss":false},
"id":"libvirt-13"}
{"id":"libvirt-13","error":{"class":"GenericError","desc":"Block node is
read-only"}}
When I use the drive alias rather than the node-name for the 'device'
argument it works as expected.
{"execute":"block-commit",
"arguments": { "device":"drive-virtio-disk0",
"job-id":"drive-virtio-disk0",
"top":"/var/lib/libvirt/images/rhel7.3.1483536402",
"base":"/var/lib/libvirt/images/rhel7.3.1483545313"},
"id":"libvirt-18"}
I was not able to find anything which would allow to reopen the file R/W
in case of the block-commit operation, but I suspect it should be done
automatically as previously it was done that way prior to -blockdev.
Peter
signature.asc
Description: PGP signature
[Qemu-devel] [PATCH 2/2] qemu-iotests: Test commit with top-node/base-node, Kevin Wolf, 2018/08/10