virtio-fs: add Documentation/filesystems/virtiofs.rst
Add information about the new "virtiofs" file system. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
parent
c4bb667eaf
commit
2d1d25d0a2
@ -32,3 +32,13 @@ filesystem implementations.
|
|||||||
|
|
||||||
journalling
|
journalling
|
||||||
fscrypt
|
fscrypt
|
||||||
|
|
||||||
|
Filesystems
|
||||||
|
===========
|
||||||
|
|
||||||
|
Documentation for filesystem implementations.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
virtiofs
|
||||||
|
60
Documentation/filesystems/virtiofs.rst
Normal file
60
Documentation/filesystems/virtiofs.rst
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
===================================================
|
||||||
|
virtiofs: virtio-fs host<->guest shared file system
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
- Copyright (C) 2019 Red Hat, Inc.
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
============
|
||||||
|
The virtiofs file system for Linux implements a driver for the paravirtualized
|
||||||
|
VIRTIO "virtio-fs" device for guest<->host file system sharing. It allows a
|
||||||
|
guest to mount a directory that has been exported on the host.
|
||||||
|
|
||||||
|
Guests often require access to files residing on the host or remote systems.
|
||||||
|
Use cases include making files available to new guests during installation,
|
||||||
|
booting from a root file system located on the host, persistent storage for
|
||||||
|
stateless or ephemeral guests, and sharing a directory between guests.
|
||||||
|
|
||||||
|
Although it is possible to use existing network file systems for some of these
|
||||||
|
tasks, they require configuration steps that are hard to automate and they
|
||||||
|
expose the storage network to the guest. The virtio-fs device was designed to
|
||||||
|
solve these problems by providing file system access without networking.
|
||||||
|
|
||||||
|
Furthermore the virtio-fs device takes advantage of the co-location of the
|
||||||
|
guest and host to increase performance and provide semantics that are not
|
||||||
|
possible with network file systems.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
Mount file system with tag ``myfs`` on ``/mnt``:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
guest# mount -t virtiofs myfs /mnt
|
||||||
|
|
||||||
|
Please see https://virtio-fs.gitlab.io/ for details on how to configure QEMU
|
||||||
|
and the virtiofsd daemon.
|
||||||
|
|
||||||
|
Internals
|
||||||
|
=========
|
||||||
|
Since the virtio-fs device uses the FUSE protocol for file system requests, the
|
||||||
|
virtiofs file system for Linux is integrated closely with the FUSE file system
|
||||||
|
client. The guest acts as the FUSE client while the host acts as the FUSE
|
||||||
|
server. The /dev/fuse interface between the kernel and userspace is replaced
|
||||||
|
with the virtio-fs device interface.
|
||||||
|
|
||||||
|
FUSE requests are placed into a virtqueue and processed by the host. The
|
||||||
|
response portion of the buffer is filled in by the host and the guest handles
|
||||||
|
the request completion.
|
||||||
|
|
||||||
|
Mapping /dev/fuse to virtqueues requires solving differences in semantics
|
||||||
|
between /dev/fuse and virtqueues. Each time the /dev/fuse device is read, the
|
||||||
|
FUSE client may choose which request to transfer, making it possible to
|
||||||
|
prioritize certain requests over others. Virtqueues have queue semantics and
|
||||||
|
it is not possible to change the order of requests that have been enqueued.
|
||||||
|
This is especially important if the virtqueue becomes full since it is then
|
||||||
|
impossible to add high priority requests. In order to address this difference,
|
||||||
|
the virtio-fs device uses a "hiprio" virtqueue specifically for requests that
|
||||||
|
have priority over normal requests.
|
12
MAINTAINERS
12
MAINTAINERS
@ -17117,6 +17117,18 @@ S: Supported
|
|||||||
F: drivers/s390/virtio/
|
F: drivers/s390/virtio/
|
||||||
F: arch/s390/include/uapi/asm/virtio-ccw.h
|
F: arch/s390/include/uapi/asm/virtio-ccw.h
|
||||||
|
|
||||||
|
VIRTIO FILE SYSTEM
|
||||||
|
M: Vivek Goyal <vgoyal@redhat.com>
|
||||||
|
M: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
M: Miklos Szeredi <miklos@szeredi.hu>
|
||||||
|
L: virtualization@lists.linux-foundation.org
|
||||||
|
L: linux-fsdevel@vger.kernel.org
|
||||||
|
W: https://virtio-fs.gitlab.io/
|
||||||
|
S: Supported
|
||||||
|
F: fs/fuse/virtio_fs.c
|
||||||
|
F: include/uapi/linux/virtio_fs.h
|
||||||
|
F: Documentation/filesystems/virtiofs.rst
|
||||||
|
|
||||||
VIRTIO GPU DRIVER
|
VIRTIO GPU DRIVER
|
||||||
M: David Airlie <airlied@linux.ie>
|
M: David Airlie <airlied@linux.ie>
|
||||||
M: Gerd Hoffmann <kraxel@redhat.com>
|
M: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Loading…
Reference in New Issue
Block a user