all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Markus Frank <m.frank@proxmox.com>
Subject: Re: [pve-devel] [PATCH docs v13 3/12] add doc section for the shared filesystem virtio-fs
Date: Wed, 19 Feb 2025 12:49:44 +0100	[thread overview]
Message-ID: <10c885a7-2588-4940-a69a-6279401e3c26@proxmox.com> (raw)
In-Reply-To: <20250122100901.74830-4-m.frank@proxmox.com>

Am 22.01.25 um 11:08 schrieb Markus Frank:
> Signed-off-by: Markus Frank <m.frank@proxmox.com>
> ---
>  qm.adoc | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 90 insertions(+), 2 deletions(-)
> 
> diff --git a/qm.adoc b/qm.adoc
> index 4bb8f2c..5ad79c1 100644
> --- a/qm.adoc
> +++ b/qm.adoc
> @@ -1202,6 +1202,93 @@ recommended to always use a limiter to avoid guests using too many host
>  resources. If desired, a value of '0' for `max_bytes` can be used to disable
>  all limits.
>  
> +[[qm_virtiofs]]
> +Virtio-fs
> +~~~~~~~~~
> +
> +Virtio-fs is a shared file system designed for virtual environments. It allows
> +to share a directory tree available on the host by mounting it within VMs. It
> +does not use the network stack and aims to offer similar performance and
> +semantics as the source file system.
> +
> +To use virtio-fs, the https://gitlab.com/virtio-fs/virtiofsd[virtiofsd] daemon
> +needs to run in the background. This happens automatically in {pve} when
> +starting a related VM.

Nit: "related" sounds a bit vague IMHO. Maybe be explicit with something
like "when starting a VM using a virtio-fs mount"

> +
> +Linux VMs with kernel >=5.4 support virtio-fs by default.
> +
> +There is a guide available on how to utilize virtio-fs in Windows VMs.
> +https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/Virtiofs:-Shared-file-system
> +
> +Known Limitations
> +^^^^^^^^^^^^^^^^^
> +
> +* If Virtiofsd should crash, its mount point will hang in the VM until the VM

Nit: "If Virtiofsd should crash" -> "If virtiofsd crashes"

> +is completely stopped.
> +* Virtiofsd not responding may result in NFS-like hanging access in the VM.

Nit: again, I'd not capitalize virtiofsd

"NFS-like hanging access" might not be clear to all users. Maybe
something like "a hanging mount in the VM, similar to an unreachable NFS"

> +* Memory hotplug does not work in combination with virtio-fs (also results in
> +hanging access).
> +* Memory related features such as live migration, snapshots, and hibernate are
> +not available with virtio-fs devices.
> +* Windows cannot understand ACLs. Therefore, disable it for Windows VMs,

"ACLs" -> "ACLs in the context of virtio-fs" or "ACLs for virtio-fs mounts"

Nit: "disable it" -> "disable ACLs", never hurts to be explicit in docs

> +otherwise the virtio-fs device will not be visible within the VMs.
> +
> +Add Mapping for Shared Directories
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +To add a mapping for a shared directory, you can use the API directly with
> +`pvesh` as described in the xref:resource_mapping[Resource Mapping] section:
> +
> +----
> +pvesh create /cluster/mapping/dir --id dir1 \
> +    --map node=node1,path=/path/to/share1 \
> +    --map node=node2,path=/path/to/share2,submounts=1 \

The example still uses 'submounts' rather than 'announce-submounts'.

> +----
> +
> +Set `announce-submounts` to `1` if multiple filesystems are mounted in a shared
> +directory, to tell the guest which directories are mount points to prevent data

Nit: I'd split it in two sentences: "directory. This tells"

> +loss/corruption. With `announce-submounts`, virtiofsd reports a different device
> +number for each submount it encounters. Without it, duplicates may be created
> +because inode IDs are only unique on a single filesystem.
> +
> +Add virtio-fs to a VM
> +^^^^^^^^^^^^^^^^^^^^^
> +
> +To share a directory using virtio-fs, add the parameter `virtiofs<N>` (N can be
> +anything between 0 and 9) to the VM config and use a directory ID (dirid) that
> +has been configured in the resource mapping. Additionally, you can set the
> +`cache` option to either `always`, `never`, or `auto` (default: `auto`),
> +depending on your requirements. How the different caching modes behave can be
> +read at https://lwn.net/Articles/774495/ under the "Caching Modes" section. To
> +enable writeback cache set `writeback` to `1`.
> +
> +If you want virtio-fs to honor the `O_DIRECT` flag, you can set the `direct-io`
> +parameter to `1` (default: `0`). This will degrade performance, but is useful if
> +applications do their own caching.
> +

I'd add a sentence describing expose-acl and expose-xattr first. And
mention again that expose-acl should not be used for Windows to make it
unlikely that user miss it.

> +The `expose-acl` parameter automatically implies `expose-xattr`, that is, it
> +makes no difference if you set `expose-xattr` to `0` if `expose-acl` is set to
> +`1`.
> +
> +----
> +qm set <vmid> -virtiofs0 dirid=<dirid>,cache=always,direct-io=1
> +qm set <vmid> -virtiofs1 <dirid>,cache=never,expose-xattr=1
> +qm set <vmid> -virtiofs2 <dirid>,expose-acl=1,writeback=1
> +----
> +
> +To mount virtio-fs in a guest VM with the Linux kernel virtio-fs driver, run the
> +following command inside the guest:
> +
> +----
> +mount -t virtiofs <mount tag> <mount point>
> +----
> +
> +The dirid associated with the path on the current node is also used as the mount
> +tag (name used to mount the device on the guest).
> +
> +For more information on available virtiofsd parameters, see the
> +https://gitlab.com/virtio-fs/virtiofsd[GitLab virtiofsd project page].
> +
>  [[qm_bootorder]]
>  Device Boot Order
>  ~~~~~~~~~~~~~~~~~
> @@ -1885,8 +1972,9 @@ in the relevant tab in the `Resource Mappings` category, or on the cli with
>  
>  [thumbnail="screenshot/gui-datacenter-mapping-pci-edit.png"]
>  
> -Where `<type>` is the hardware type (currently either `pci` or `usb`) and
> -`<options>` are the device mappings and other configuration parameters.
> +Where `<type>` is the hardware type (currently either `pci`, `usb` or
> +xref:qm_virtiofs[dir]) and `<options>` are the device mappings and other
> +configuration parameters.
>  
>  Note that the options must include a map property with all identifying
>  properties of that hardware, so that it's possible to verify the hardware did



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2025-02-19 11:49 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-22 10:08 [pve-devel] [PATCH cluster/guest-common/docs/qemu-server/manager v13 0/12] virtiofs Markus Frank
2025-01-22 10:08 ` [pve-devel] [PATCH cluster v13 1/12] add mapping/dir.cfg for resource mapping Markus Frank
2025-01-22 10:08 ` [pve-devel] [PATCH guest-common v13 2/12] add dir mapping section config Markus Frank
2025-02-18 12:35   ` Fiona Ebner
2025-02-19 10:06   ` Fiona Ebner
2025-02-19 17:00     ` Thomas Lamprecht
2025-01-22 10:08 ` [pve-devel] [PATCH docs v13 3/12] add doc section for the shared filesystem virtio-fs Markus Frank
2025-02-19 11:49   ` Fiona Ebner [this message]
2025-01-22 10:08 ` [pve-devel] [PATCH qemu-server v13 4/12] control: add virtiofsd as runtime dependency for qemu-server Markus Frank
2025-02-19 11:51   ` Fiona Ebner
2025-01-22 10:08 ` [pve-devel] [PATCH qemu-server v13 5/12] fix #1027: virtio-fs support Markus Frank
2025-02-19 13:43   ` Fiona Ebner
2025-01-22 10:08 ` [pve-devel] [PATCH qemu-server v13 6/12] migration: check_local_resources for virtiofs Markus Frank
2025-02-19 13:56   ` Fiona Ebner
2025-01-22 10:08 ` [pve-devel] [PATCH qemu-server v13 7/12] disable snapshot (with RAM) and hibernate with virtio-fs devices Markus Frank
2025-02-19 13:58   ` Fiona Ebner
2025-01-22 10:08 ` [pve-devel] [PATCH manager v13 08/12] api: add resource map api endpoints for directories Markus Frank
2025-02-19 14:14   ` Fiona Ebner
2025-01-22 10:08 ` [pve-devel] [PATCH manager v13 09/12] ui: add edit window for dir mappings Markus Frank
2025-01-22 10:08 ` [pve-devel] [PATCH manager v13 10/12] ui: add resource mapping view for directories Markus Frank
2025-02-18 14:29   ` Fiona Ebner
2025-01-22 10:09 ` [pve-devel] [PATCH manager v13 11/12] ui: form: add selector for directory mappings Markus Frank
2025-01-22 10:09 ` [pve-devel] [PATCH manager v13 12/12] ui: add options to add virtio-fs to qemu config Markus Frank
2025-02-19 14:17   ` Fiona Ebner
2025-02-19 14:19 ` [pve-devel] [PATCH cluster/guest-common/docs/qemu-server/manager v13 0/12] virtiofs Fiona Ebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10c885a7-2588-4940-a69a-6279401e3c26@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=m.frank@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal