Browse Source
Document the virtiofsd(1) program and its command-line options. This man page is a rST conversion of the original texi documentation that I wrote. Reviewed-by: Liam Merwick <liam.merwick@oracle.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>pull/88/head
committed by
Dr. David Alan Gilbert
5 changed files with 134 additions and 2 deletions
@ -0,0 +1,120 @@ |
|||
QEMU virtio-fs shared file system daemon |
|||
======================================== |
|||
|
|||
Synopsis |
|||
-------- |
|||
|
|||
**virtiofsd** [*OPTIONS*] |
|||
|
|||
Description |
|||
----------- |
|||
|
|||
Share a host directory tree with a guest through a virtio-fs device. This |
|||
program is a vhost-user backend that implements the virtio-fs device. Each |
|||
virtio-fs device instance requires its own virtiofsd process. |
|||
|
|||
This program is designed to work with QEMU's ``--device vhost-user-fs-pci`` |
|||
but should work with any virtual machine monitor (VMM) that supports |
|||
vhost-user. See the Examples section below. |
|||
|
|||
This program must be run as the root user. Upon startup the program will |
|||
switch into a new file system namespace with the shared directory tree as its |
|||
root. This prevents "file system escapes" due to symlinks and other file |
|||
system objects that might lead to files outside the shared directory. The |
|||
program also sandboxes itself using seccomp(2) to prevent ptrace(2) and other |
|||
vectors that could allow an attacker to compromise the system after gaining |
|||
control of the virtiofsd process. |
|||
|
|||
Options |
|||
------- |
|||
|
|||
.. program:: virtiofsd |
|||
|
|||
.. option:: -h, --help |
|||
|
|||
Print help. |
|||
|
|||
.. option:: -V, --version |
|||
|
|||
Print version. |
|||
|
|||
.. option:: -d |
|||
|
|||
Enable debug output. |
|||
|
|||
.. option:: --syslog |
|||
|
|||
Print log messages to syslog instead of stderr. |
|||
|
|||
.. option:: -o OPTION |
|||
|
|||
* debug - |
|||
Enable debug output. |
|||
|
|||
* flock|no_flock - |
|||
Enable/disable flock. The default is ``no_flock``. |
|||
|
|||
* log_level=LEVEL - |
|||
Print only log messages matching LEVEL or more severe. LEVEL is one of |
|||
``err``, ``warn``, ``info``, or ``debug``. The default is ``info``. |
|||
|
|||
* norace - |
|||
Disable racy fallback. The default is false. |
|||
|
|||
* posix_lock|no_posix_lock - |
|||
Enable/disable remote POSIX locks. The default is ``posix_lock``. |
|||
|
|||
* readdirplus|no_readdirplus - |
|||
Enable/disable readdirplus. The default is ``readdirplus``. |
|||
|
|||
* source=PATH - |
|||
Share host directory tree located at PATH. This option is required. |
|||
|
|||
* timeout=TIMEOUT - |
|||
I/O timeout in seconds. The default depends on cache= option. |
|||
|
|||
* writeback|no_writeback - |
|||
Enable/disable writeback cache. The cache alows the FUSE client to buffer |
|||
and merge write requests. The default is ``no_writeback``. |
|||
|
|||
* xattr|no_xattr - |
|||
Enable/disable extended attributes (xattr) on files and directories. The |
|||
default is ``no_xattr``. |
|||
|
|||
.. option:: --socket-path=PATH |
|||
|
|||
Listen on vhost-user UNIX domain socket at PATH. |
|||
|
|||
.. option:: --fd=FDNUM |
|||
|
|||
Accept connections from vhost-user UNIX domain socket file descriptor FDNUM. |
|||
The file descriptor must already be listening for connections. |
|||
|
|||
.. option:: --thread-pool-size=NUM |
|||
|
|||
Restrict the number of worker threads per request queue to NUM. The default |
|||
is 64. |
|||
|
|||
.. option:: --cache=none|auto|always |
|||
|
|||
Select the desired trade-off between coherency and performance. ``none`` |
|||
forbids the FUSE client from caching to achieve best coherency at the cost of |
|||
performance. ``auto`` acts similar to NFS with a 1 second metadata cache |
|||
timeout. ``always`` sets a long cache lifetime at the expense of coherency. |
|||
|
|||
Examples |
|||
-------- |
|||
|
|||
Export ``/var/lib/fs/vm001/`` on vhost-user UNIX domain socket |
|||
``/var/run/vm001-vhost-fs.sock``: |
|||
|
|||
:: |
|||
|
|||
host# virtiofsd --socket-path=/var/run/vm001-vhost-fs.sock -o source=/var/lib/fs/vm001 |
|||
host# qemu-system-x86_64 \ |
|||
-chardev socket,id=char0,path=/var/run/vm001-vhost-fs.sock \ |
|||
-device vhost-user-fs-pci,chardev=char0,tag=myfs \ |
|||
-object memory-backend-memfd,id=mem,size=4G,share=on \ |
|||
-numa node,memdev=mem \ |
|||
... |
|||
guest# mount -t virtiofs myfs /mnt |
|||
Loading…
Reference in new issue