18.April 2025
Mit Proxmox VE 8.4 hat Proxmox virtiofs eingeführt – eine moderne und performante Methode, um Verzeichnisse zwischen Host und virtuellen Maschinen zu teilen. In diesem Artikel zeige ich, was virtiofs ist, wie man es in Proxmox VE über die Web‑GUI und über die API konfiguriert und wie man es im Gastbetriebssystem nutzt.
Was ist virtiofs?
virtiofs ist ein Shared‑Filesystem, das auf dem Virtio‑Framework basiert und Verzeichnisse des Hosts direkt in den Gast einbindet, ohne klassischen Netzwerk‑Dateizugriff (z. B. NFS). Dank einer Kombination aus FUSE im Gastkern und dem User‑Space‑Daemon virtiofsd bietet es:
- Hohe Leistung bei geringer Latenz
- POSIX‑kompatible Semantik (inkl. Dateiattribute)
- Unterstützung für POSIX‑ACLs und erweiterte Attribute
- Einfache Konfiguration über GUI oder API
Unterstützung in Proxmox VE
Proxmox VE 8.4 ermöglicht es, virtiofs sowohl per Web‑GUI als auch per CLI/API (mit pvesh
und qm
) einzurichten. Im Folgenden beschreibe ich beide Wege:
1. Konfiguration über die Web‑GUI
1.1 Directory Mapping anlegen
Bevor virtiofs in einer VM verwendet werden kann, legt man in Datacenter → Directory Mappings ein Mapping an.
Achtung: Das Zielverzeichnis auf dem Node muss bereits existieren.
Übersicht vorhandener Directory Mappings im Datacenter
Neues Mapping anlegen
Parameter:
- Name:
virtiofs-test
- Name bzw Directory ID - Path:
/mnt/virtiofs-test
- Pfad zum Verzeichnis, welches geshared werden soll - Node:
pve03
- Auswahl des Nodes, auf dem das Verzeichnis geshared wird - Comment: - Hier kann man einen Kommentar hinterlegen.
1.2 Virtiofs-Device in der VM hinzufügen
- VM auswählen → Hardware → Add → Virtiofs
- Im Dialog das zuvor erstellte Mapping auswählen (Directory ID)
- In Advanced, ggf. Cache/XATTR/ACLs konfigurieren
- Add klicken und die VM neu starten
Virtiofs‑Device hinzufügen
Directory Mapping auswählen
Hinweis: Proxmox bindet das Device erst nach einem Neustart ein!
2. Konfiguration via Shell
Alternativ kann man alle Schritte über die Proxmox CLI/API erledigen:
2.1 Directory Mapping anlegen (pvesh)
Zunächst legt man das Directory Mapping via pvesh (API) an.
1pvesh create /cluster/mapping/dir \
2 --id virtiofs-test \
3 --map node=pve03,path=/mnt/virtiofs-test
Erklärung:
- /cluster/mapping/dir - definiert den Endpoint in der API
- –id - Directory ID bzw der Name des Mappings
- –map - Auswahl des Knotens und der Pfad zum Verzeichnis auf diesem
2.2 Virtiofs-Device in der VM hinzufügen (qm)
Als nächstes wird der VM mittels qm set
das Virtiofs
Device hinzugefügt.
1qm set 110 \
2 -virtiofs0 dirid=virtiofs-test
Erklärung:
- 110 - ID der virtuelle Maschine
- virtiofs0 - Erstes
Virtiofs
Device in der VM - man kann auch mehrere Devices einbinden. - dirid - Directory ID bzw Name des Mappings
3. Nutzung im Gastbetriebssystem
Nach dem Neustart der VM ist der virtiofs
‑Treiber in Debian und vielen anderen Distributionen automatisch verfügbar.
Nun kann das Device eingebunden werden:
1# Im Gast als root oder via sudo:
2mkdir -p /mnt/host_share
3mount -t virtiofs virtiofs-test /mnt/host_share
Falls der Treiber nicht geladen wird, kann man diesen händisch einbinden:
1modprobe virtiofs
Um das Ganze persistent im Linux anzulegen, legt man dies in der /etc/fstab an:
#<directory id> <mount point> virtiofs rw,relatime 0 0
virtiofs-test /mnt/host_share virtiofs rw,relatime 0 0
4. Funktionstest
Als nächstes kann man einen kleinen Funktionstest durchführen. Man erstellen in dem Verzeichnis, wo man das Device eingebunden hat, einfach eine Datei:
1touch /mnt/host_share/testfile.txt
2ls -l /mnt/virtiofs-test/
Und prüft nun auf dem Host (pve03), ob die Datei dort auch zur Verfügung steht.
1ls -l /mnt/virtiofs-test
Als letztes kann man nun auch eine Datei auf dem Host anlegen und prüfen, ob dies im Gast (VM) verfügbar wird.
5. Praxis‑Einsatzszenarien
- Entwicklung: Quellcode‑Verzeichnisse zwischen Host‑IDE und Build‑VMs.
- Logging: zentrale Log‑Ordner eines Webservers im Host bereit.
Mit virtiofs
in Proxmox VE 8.4 lässt sich ein performantes, POSIX‑kompatibles Shared‑Filesystem zwischen Host und Gast realisieren.
Viel Erfolg beim Ausprobieren!