On Wed, Jan 11, 2023 at 11:34:50AM -0500, Stefan Hajnoczi wrote:
On Sat, Jan 07, 2023 at 07:44:37PM +0000, Richard W.M. Jones wrote:
>
> This is upstream in nbdkit now:
>
https://gitlab.com/nbdkit/nbdkit/-/tree/master/plugins/blkio
>
> Another question:
>
> (6) vhost-user + "read-only" property acts a bit strangely. After
> opening virtio-blk-vhost-user it throws an EROFS error if you try to
> "blkio_start" it. However if you set the "read-only" property
to true
> then it's OK to start it, and subsequent read operations work too.
>
> I would expect that any device can be started without needing to set
> this property, and in general I don't understand why vhost-user is r/o
> since everything I read about it seems to indicate it's a general
> purpose writable protocol.
I guess the vhost-user-blk server is read-only and that's why it's
refusing to blkio_start() unless readonly was set to true.
If you're using qemu-storage-daemon, set the writable=on parameter on
the export.
So it turned out to be the case. Alberto pointed out that unless you
set writable=on explicitly, q-s-d makes the export read-only. This
was the reverse of what I expected. But it is covered in the q-s-d
man page.
But about libblkio: The problem is basically you must know if the
export is read-only or not before you connect. For a readonly
vhost-user export this is the observed behaviour:
blkio_create ==> OK
blkio_get_bool ("read-only") ==> returns false
blkio_connect ==> OK
blkio_get_bool ("read-only") ==> returns false
blkio_start ==> fails "Device is read-only"
At least after connecting it seems we should be able to find out that
the export is read-only.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top