qsd: Document FUSE exports

Implementing FUSE exports required no changes to the storage daemon, so
we forgot to document them there.  Considering that both NBD and
vhost-user-blk exports are documented in its man page (and NBD exports
in its --help text), we should probably do the same for FUSE.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210217115844.62661-1-mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Max Reitz 2021-02-17 12:58:44 +01:00
parent 53431b9086
commit 220222a0fe
2 changed files with 23 additions and 0 deletions

View File

@ -74,6 +74,7 @@ Standard options:
.. option:: --export [type=]nbd,id=<id>,node-name=<node-name>[,name=<export-name>][,writable=on|off][,bitmap=<name>] .. option:: --export [type=]nbd,id=<id>,node-name=<node-name>[,name=<export-name>][,writable=on|off][,bitmap=<name>]
--export [type=]vhost-user-blk,id=<id>,node-name=<node-name>,addr.type=unix,addr.path=<socket-path>[,writable=on|off][,logical-block-size=<block-size>][,num-queues=<num-queues>] --export [type=]vhost-user-blk,id=<id>,node-name=<node-name>,addr.type=unix,addr.path=<socket-path>[,writable=on|off][,logical-block-size=<block-size>][,num-queues=<num-queues>]
--export [type=]vhost-user-blk,id=<id>,node-name=<node-name>,addr.type=fd,addr.str=<fd>[,writable=on|off][,logical-block-size=<block-size>][,num-queues=<num-queues>] --export [type=]vhost-user-blk,id=<id>,node-name=<node-name>,addr.type=fd,addr.str=<fd>[,writable=on|off][,logical-block-size=<block-size>][,num-queues=<num-queues>]
--export [type=]fuse,id=<id>,node-name=<node-name>,mountpoint=<file>[,growable=on|off][,writable=on|off]
is a block export definition. ``node-name`` is the block node that should be is a block export definition. ``node-name`` is the block node that should be
exported. ``writable`` determines whether or not the export allows write exported. ``writable`` determines whether or not the export allows write
@ -92,6 +93,16 @@ Standard options:
``logical-block-size`` sets the logical block size in bytes (the default is ``logical-block-size`` sets the logical block size in bytes (the default is
512). ``num-queues`` sets the number of virtqueues (the default is 1). 512). ``num-queues`` sets the number of virtqueues (the default is 1).
The ``fuse`` export type takes a mount point, which must be a regular file,
on which to export the given block node. That file will not be changed, it
will just appear to have the block node's content while the export is active
(very much like mounting a filesystem on a directory does not change what the
directory contains, it only shows a different content while the filesystem is
mounted). Consequently, applications that have opened the given file before
the export became active will continue to see its original content. If
``growable`` is set, writes after the end of the exported file will grow the
block node to fit.
.. option:: --monitor MONITORDEF .. option:: --monitor MONITORDEF
is a QMP monitor definition. See the :manpage:`qemu(1)` manual page for is a QMP monitor definition. See the :manpage:`qemu(1)` manual page for
@ -196,6 +207,14 @@ domain socket ``vhost-user-blk.sock``::
--blockdev driver=qcow2,node-name=qcow2,file=file \ --blockdev driver=qcow2,node-name=qcow2,file=file \
--export type=vhost-user-blk,id=export,addr.type=unix,addr.path=vhost-user-blk.sock,node-name=qcow2 --export type=vhost-user-blk,id=export,addr.type=unix,addr.path=vhost-user-blk.sock,node-name=qcow2
Export a qcow2 image file ``disk.qcow2`` via FUSE on itself, so the disk image
file will then appear as a raw image::
$ qemu-storage-daemon \
--blockdev driver=file,node-name=file,filename=disk.qcow2 \
--blockdev driver=qcow2,node-name=qcow2,file=file \
--export type=fuse,id=export,node-name=qcow2,mountpoint=disk.qcow2,writable=on
See also See also
-------- --------

View File

@ -98,6 +98,10 @@ static void help(void)
" export the specified block node over NBD\n" " export the specified block node over NBD\n"
" (requires --nbd-server)\n" " (requires --nbd-server)\n"
"\n" "\n"
" --export [type=]fuse,id=<id>,node-name=<node-name>,mountpoint=<file>\n"
" [,growable=on|off][,writable=on|off]\n"
" export the specified block node over FUSE\n"
"\n"
" --monitor [chardev=]name[,mode=control][,pretty[=on|off]]\n" " --monitor [chardev=]name[,mode=control][,pretty[=on|off]]\n"
" configure a QMP monitor\n" " configure a QMP monitor\n"
"\n" "\n"