Proxmox: Host-Verzeichnisse mit Virtiofs in VMs einbinden

Virtiofs ist eine moderne und performante Methode, um Verzeichnisse direkt vom Proxmox-Host in virtuelle Maschinen einzubinden. Im Gegensatz zu klassischen Netzwerkdateisystemen wie NFS oder SSHFS erfolgt der Zugriff lokal über den Hypervisor, ohne Netzwerk-Stack und ohne zusätzliche Dienste. Dadurch eignet sich virtiofs besonders für High-Performance-Dateifreigaben zwischen Host und VM, in denen hoher Datendurchsatz, geringe Latenz und eine klare Rechteverwaltung erforderlich sind, etwa bei Videoaufzeichnungen, Datenbanken oder Medienarchiven.


1. Grundprinzip von virtiofs

Virtiofs arbeitet strikt POSIX-konform:

  • Benutzer- und Gruppen-IDs (UID/GID) werden numerisch 1:1 vom Host in die VM durchgereicht
  • Es findet kein User- oder ID-Mapping statt
  • Dateirechte und Benutzer werden ausschließlich auf dem Host definiert und von der VM übernommen
  • Mount-Optionen wie uid=, gid= oder allow_other werden ignoriert

Das bedeutet: Stimmen UID/GID zwischen Host und VM nicht exakt überein, ist Schreiben im Gast nicht möglich.


2. Host vorbereiten

2.1 Host-Verzeichnis

Für die Nutzung von Virtio-FS ist eine eindeutige Trennung zwischen dem Verzeichnis auf dem Proxmox-Host und dem Mountpunkt innerhalb der virtuellen Maschine erforderlich. Das Verzeichnis befindet sich physisch auf dem Host, entweder auf einem lokalen Datenträger oder auf einem eingebundenen Storage, und dient als Quelle der Virtio-FS-Freigabe. Sämtliche Zugriffsrechte, Eigentümer und Gruppen werden ausschließlich an diesem Ort definiert und unverändert an die virtuelle Maschine weitergereicht.


2.2 Benutzer und Gruppen

Der Benutzer, der innerhalb der virtuellen Maschine Schreibzugriff auf das über virtiofs eingebundene Verzeichnis erhalten soll, muss auf dem Proxmox-Host mit identischer Benutzerkennung (UID) und Gruppenzugehörigkeit (GID) vorhanden sein. virtiofs führt keine Übersetzung oder Abbildung von Benutzer- und Gruppenkennungen durch, sondern reicht diese unverändert vom Gast an den Host weiter. Abweichende UIDs oder GIDs führen dazu, dass Zugriffe aus der VM auf Host-Ebene als fremder oder nicht existenter Benutzer interpretiert werden, was in der Praxis zu fehlenden Schreibrechten oder unerwarteten Zugriffsverweigerungen führt.

Aus diesem Grund ist sicherzustellen, dass die relevanten Benutzer und Gruppen auf Host und virtueller Maschine identische numerische IDs besitzen und dass das freigegebene Host-Verzeichnis die entsprechenden Zugriffsrechte entsprechend dieser IDs aufweist.

  • Vorhandene Benutzer und Gruppen können überprüft werden:

  • Falls der Benutzer noch nicht existiert, kann er mit den entsprechenden IDs angelegt werden (ohne Login Shell und Home Verzeichnis):

  • Falls der Benutzer bereits existiert, können UID und GID bei Bedarf angepasst werden:

  • Die UID/GID müssen mit dem Host übereinstimmen, damit Virtio-FS die Zugriffsrechte korrekt durchreicht.
  • Das Home-Verzeichnis und die Shell können nach Bedarf angepasst werden; für reine Virtio-FS-Nutzung ist ein Login nicht zwingend erforderlich.

2.3 Benutzer und Rechte setzen

  • 775 erlaubt Schreiben für User und Gruppe
  • g+s stellt sicher, dass neu angelegte Dateien automatisch die Gruppe behalten

Alle übergeordneten Verzeichnisse müssen mindestens das Execute-Bit (x) für die jeweilige Gruppe besitzen.


3 Einrichtung eines Virtio-FS-Geräts in Proxmox (Verzeichnis-Mapping)

Bevor in der VM ein virtiofs-Verzeichnis gemountet werden kann, muss in Proxmox zunächst das entsprechende Host-Verzeichnis als virtiofs-Gerät erstellt werden. Dazu in der Weboberfläche zu Rechenzentrum → Verzeichnis-Mapping navigieren, dort auf Erstellen / Hinzufügen klicken und folgende Felder ausfüllen und anschließend mit Erstellen bestätigen.

  • Name / Tag: Eindeutiger Bezeichner, z. B. proxmox-host-dir-name (wird später in der VM als Mount-Name verwendet)
  • Pfad: Host-Verzeichnis, z. B. /mnt/proxmox-host-dir
  • Knoten: Zielknoten auswählen
  • Kommentar: optional, z. B. „Freigabe für Ubuntu-VM“
  •  ACL / Sicherheitsmodell: none

3.1 Zuweisung des Verzeichnis-Mappings an die VM

  • Die gewünschte VM auswählen → Hardware → Hinzufügen → VirtIO-FS-Gerät.
  • Im Feld Tag den zuvor definierten Namen des Verzeichnis-Mappings eintragen (proxmox-host-dir-name).
  • Optional: Nur Lesen aktivieren, falls Schreibzugriff nicht erforderlich ist.
  • Änderungen speichern.

Dadurch wird das Verzeichnis des Proxmox-Hosts (/mnt/proxmox-host-dir) der virtuellen Maschine unter dem Bezeichner proxmox-host-dir-name als Mountquelle bereitgestellt.


4. VM vorbereiten

4.1 Benutzer anlegen / anpassen

In der virtuellen Maschine muss derselbe Benutzer mit identischer UID und GID wie auf dem Proxmox-Host existieren.

  • Vorhandene Benutzer und Gruppen können überprüft werden:

  • Falls der Benutzer noch nicht existiert, kann er mit den entsprechenden IDs angelegt werden:

  • Falls der Benutzer bereits existiert, können UID und GID bei Bedarf angepasst werden:

Hinweise:

  • Die UID/GID müssen mit dem Host übereinstimmen, damit Virtio-FS die Zugriffsrechte korrekt durchreicht.
  • Das Home-Verzeichnis und die Shell können nach Bedarf angepasst werden; für reine Virtio-FS-Nutzung ist ein Login nicht zwingend erforderlich.

4.2 Mountpunkt in der VM erstellen und über fstab beim starten einbinden

Nachdem der Benutzer mit den entsprechenden UID/GID in der VM eingerichtet wurde, wird ein Verzeichnis angelegt, das als Ziel für die Virtio-FS-Freigabe vom Host dient. Mit mkdir -p wird der Mountpunkt einschließlich aller übergeordneten Verzeichnisse erstellt, falls diese noch nicht existieren

Vor dem dauerhaften Eintrag kann der Mount manuell getestet werden, um sicherzustellen, dass die Freigabe funktioniert.

mount -t virtiofs verbindet das Host-Verzeichnis (über den Tag proxmox-host-dir-name) mit dem Mountpunkt in der VM. Für einen automatischen Mount bei jedem Bootvorgang wird ein Eintrag in /etc/fstab erstellt.

  • rw – Verzeichnis kann gelesen und beschrieben werden
  • nofail – System startet weiter, auch wenn das Mounten fehlschlägt
  • x-systemd.automount – Mount erfolgt erst beim ersten Zugriff, beschleunigt den Bootvorgang

5. Funktionstest

Erwartetes Ergebnis:


6. Typische Fehlerquellen

  • UID/GID zwischen Host und VM stimmen nicht überein
  • Ownership wurde nur im Gast, nicht auf dem Host gesetzt
  • Übergeordnete Verzeichnisse blockieren den Zugriff (x fehlt)
  • Mount-Optionen wie uid= oder gid= werden verwendet (wirkungslos)

Debug-Hilfe:


7. Zusammenfassung

Virtiofs ist eine performante und saubere Lösung, um Host-Verzeichnisse direkt in Proxmox-VMs zu nutzen. Entscheidend ist ein konsistentes Benutzer- und Rechtekonzept:

  • UID/GID müssen identisch sein
  • Rechte werden ausschließlich auf dem Host gepflegt
  • Der fstab-Eintrag entscheidet über Boot-Verhalten und Stabilität

Bei korrekter Einrichtung verhält sich virtiofs wie ein lokales Dateisystem – schnell, zuverlässig und ohne Netzwerkabhängigkeiten.


CC_BY_NC_SAby Speefak

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top