[pve-devel] [PATCH cluster/guest-common/docs/qemu-server/manager v9 0/7] virtiofs

Markus Frank m.frank at proxmox.com
Fri Mar 1 09:05:19 CET 2024


Virtio-fs is a shared file system that enables sharing a directory between host
and guest VM. It takes advantage of the locality of virtual machines and the
hypervisor to get a higher throughput than the 9p remote file system protocol.


build-order:
1. cluster
2. guest-common
3. docs
4. qemu-server
5. manager

I did not get virtiofsd to run with run_command without creating zombie
processes after stutdown.
So I replaced run_command with exec for now. 
Maybe someone can find out why this happens.


cluser:

Markus Frank (1):
  add mapping/dir.cfg for resource mapping

 src/PVE/Cluster.pm  | 1 +
 src/pmxcfs/status.c | 1 +
 2 files changed, 2 insertions(+)


guest-common:

v9:
* fixed wrong indentation
* changed parameter description
* added check_duplicate function to prevent multiple mappings for one node

v7:
* renamed DIR to Dir
* made xattr & acl settings per directory-id and not per node

Markus Frank (1):
  add dir mapping section config

 src/Makefile           |   1 +
 src/PVE/Mapping/Dir.pm | 205 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)
 create mode 100644 src/PVE/Mapping/Dir.pm


docs:

v9:
* corrected grammatical errors and capitalization

v8:
* added "Known Limitations"
* removed old mount tag

Markus Frank (1):
  add doc section for the shared filesystem virtio-fs

 qm.adoc | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 92 insertions(+), 2 deletions(-)


qemu-server:

v9:
* moved virtiofs code to Virtiofs module
* combined "Permission check for virtiofs directory access" with 
 "feature #1027: virtio-fs support" patch
* separated debian/control change into its own patch

v8:
* changed permission checks to cover cloning and restoring and
 made the helper functions similar to the PCI, USB permission check functions.
* warn if acl is activated on Windows VM, since the virtiofs device cannot be
 mounted on Windows if acl is on and moved with dir config validation to
 its own function. This function is called in config_to_command so that
 no virtiofsd command is running although qmstart died because a second
 virtiofs device was incorrectly configured.

v7:
* enabled use of hugepages
* renamed variables
* added acl & xattr parameters that overwrite the default directory
 mapping settings

v6:
* added virtiofsd dependency
* 2 new patches:
    * Permission check for virtiofs directory access
    * check_local_resources: virtiofs

v5:
* allow numa settings with virtio-fs
* added direct-io & cache settings
* changed to rust implementation of virtiofsd
* made double fork and closed all file descriptor so that the lockfile
 gets released.

v3:
* created own socket and get file descriptor for virtiofsd
 so there is no race between starting virtiofsd & qemu
* added TODO to replace virtiofsd with rust implementation in bookworm
 (I packaged the rust implementation for bookworm & the C implementation
 in qemu will be removed in qemu 8.0)

v2:
* replaced sharedfiles_fmt path in qemu-server with dirid:
* user can use the dirid to specify the directory without requiring root access

Markus Frank (3):
  add virtiofsd as runtime dependency for qemu-server
  fix #1027: virtio-fs support
  migration: check_local_resources for virtiofs

 PVE/API2/Qemu.pm             |  39 ++++++-
 PVE/QemuServer.pm            |  29 ++++-
 PVE/QemuServer/Makefile      |   3 +-
 PVE/QemuServer/Memory.pm     |  34 ++++--
 PVE/QemuServer/Virtiofs.pm   | 212 +++++++++++++++++++++++++++++++++++
 debian/control               |   1 +
 test/MigrationTest/Shared.pm |   7 ++
 7 files changed, 313 insertions(+), 12 deletions(-)
 create mode 100644 PVE/QemuServer/Virtiofs.pm


manager:

v9:
* changed API descriptions
* prevent multiple mappings for one node with PVE::Mapping::Dir::check_duplicate 

v8:
* removed ui patches for now

Markus Frank (1):
  api: add resource map api endpoints for directories

 PVE/API2/Cluster/Mapping.pm       |   7 +
 PVE/API2/Cluster/Mapping/Dir.pm   | 317 ++++++++++++++++++++++++++++++
 PVE/API2/Cluster/Mapping/Makefile |   1 +
 3 files changed, 325 insertions(+)
 create mode 100644 PVE/API2/Cluster/Mapping/Dir.pm

-- 
2.39.2





More information about the pve-devel mailing list