[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 3/3] nbd/server: Allow MULTI_CONN for shared writable expo
From: |
Eric Blake |
Subject: |
Re: [PATCH v3 3/3] nbd/server: Allow MULTI_CONN for shared writable exports |
Date: |
Wed, 16 Mar 2022 16:15:53 -0500 |
User-agent: |
NeoMutt/20211029-454-6adf99 |
On Wed, Mar 16, 2022 at 04:07:21PM -0500, Eric Blake wrote:
> On Tue, Mar 15, 2022 at 01:14:41PM +0000, Richard W.M. Jones wrote:
> > The patches seem OK to me, but I don't really know enough about the
> > internals of qemu-nbd to give a line-by-line review. I did however
> > build and test qemu-nbd with the patches:
> >
> > $ ./build/qemu-nbd /var/tmp/test.qcow2
> > $ nbdinfo nbd://localhost
> > ...
> > can_multi_conn: false
> >
> >
> > $ ./build/qemu-nbd -e 2 /var/tmp/test.qcow2
> > $ nbdinfo nbd://localhost
> > ...
> > can_multi_conn: false
> >
> > ^^^ Is this expected? It also happens with -e 0.
>
> Yes, because qemu-nbd defaults to read-write connections, but to be
> conservative, this patch defaults '-m auto' to NOT advertise
> multi-conn for read-write; you need to be explicit:
>
> >
> >
> > $ ./build/qemu-nbd -e 2 -m on /var/tmp/test.qcow2
> > $ nbdinfo nbd://localhost
> > ...
> > can_multi_conn: true
>
> either with '-m on' as you did here, or with
>
> build/qemu-nbd -r -e 2 /var/tmp/test.qcow2
>
> where the '-m auto' default exposes multi-conn for a readonly client.
I hit send prematurely - one more thought I wanted to make clear. For
_this_ series, the behavior of '-m auto' depends solely on readonly
vs. read-write; that being the most conservative choice of preserving
pre-existing qemu-nbd behavior (that is, if you don't use -m, the only
change in behavior should be the fact that --help output now lists
-m).
But in future versions of qemu, we might be able to improve '-m auto'
to also take into consideration whether the backing image of a
read-write device is known-cache-consistent (such as a local file
system), where we can then manage to default to advertising multi-conn
for those writable images, while still avoiding the advertisement when
exposing other devices such as network-mounted devices where we are
less confident on whether there are sufficient cache consistency
guarantees. Use of explicit '-m off' or '-m on' gives guaranteed
results no matter the qemu version, so it is only explicit (or
implied) '-m auto' where we might get smarter defaults over time.
Thus testing whether advertising multi-conn makes a difference in
other tools like nbdcopy thus requires checking if qemu-nbd is new
enough to support -m, and then being explicit that we are opting in to
using it.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org