Datenaustausch zwischen virtuellen Maschinen

matrois

New Member
Aug 28, 2025
5
0
1
Hallo zusammen. Dank eines kurzfristigen Totalausfalls meines QNAP NAS bin ich seit kurzem Besitzer eines Servers auf welchem Proxmox läuft. Meine Konfiguration sieht so aus, dass ich eine NVMe mit 256 GB als Bootplatte und zwei 2TB NVME Platten (Mirror, ZFS) für Proxmox eingebaut habe. Drei 3,5 " HDDs reiche ich direkt zu TrueNAS (erste VM) durch. Das funktioniert alles prima und ich stelle fleissig Backup wieder her. Es gibt drei weitere VMs, welche alle Docker Hosts sind (drei zur Trennung in "Wichtige Dienste", "unwichtige Dienste" und "Testen"). Soweit läuft alles prima.

Ich hänge bei dem Problem, dass ich es aktuell nicht hinbekomme die Dockervolumes aus den "Docker VMs" in TrueNAS einzubinden. Ich würde gerne in TrueNAS (1. VM) Zugriff auf die Dockervolumes der 2. VM haben (/var/lib/docker/volumes).

Wie realisiert man so eine "Freigabe" von VM zu VM?
Vielen Dank für alle Tipps.
 
Danke für den Tipp. Diese Lösungen hatte ich auch zuerst auf dem Schirm. Leider bin ich bei der vermeintlich besseren Lösung (NFS) nicht weitergekommen (Wie teile ich dem "NFS Mount" die UID und GID mit? Und wie bringe ich den Dockercontainer dazu sich daran zu halten?). Außerdem hätte ich die Daten (z.B. Dockervolumes) lieber auf den SSDs liegen (wegen dem schnelleren Zugriff).

Ich habe unter Docker z.B. nginx laufen. Der nginx (Dockercontainer VM2) benutzt ein persistentes Volume für die Templates (Konfiguration) und eins für den Ordner www. Beide Volumes würde ich gerne über eine Truenas (VM 1) Freigabe erreichen, aber mir würde es besser gefallen, wenn die Daten auf der SSD (2TB Mirror von Proxmox) und nicht auf der per Truenas freigegebenen HDD liegen würden. Wie macht man das, wenn man sich mit Proxmox länger als ich beschäftigt hat (auch im Hinblick auf Backups ohne Proxmox Backups Server)? Ich will ungerne nach der Wiederherstellung von 6 TB Daten feststellen, dass ich nochmal anfangen muss, weil ich die Festplatten falsch eingeteil habe o.ä.
 
Nein, ich brauche keine unterschiedlichen User. Ich habe NFS bislang so verstanden, dass die Berechtigungen vom Client auf den Host "durchgereicht" werden (wenn ein User mit UID 1000 eine Datei auf der NFS des Host erstellt, gehört die Datei auf dem Host auch automatisch dem User mit der UID 1000). Problematisch wird es an der Stelle wo Dockercontainer auf dem Client ins Spiel kommen, die eine weitere Ebene von Benutzern und Berechtigungen "ins Spiel" bringen. Manche Container erlauben die Übergabe einer UID und einer GID, manche aber auch nicht.

In z.B. TrueNAS als NFS Host auf Mapall = root zu gehen ist theoretisch eine Übergangslösung, die aber aus Sicherheitsgründen nicht verwendet werden sollte. Ein Mapall = root führt außerdem dazu, dass die Dockercontainer dann anfangen zu meckern, weil nur noch root (UID=0) die passenden Berechtigungen hat.

Aktuell erscheint mir ein Umweg über Proxmox (TrueNAS = Host, Mount in Proxmox, Weitergabe des Verzeichnisses als Laufwerk an Docker VM) eine mögliche Lösung. Hat das ggf. jemand so oder so ähnlich im Einsatz? Ich muss das aber selber noch ausprobieren und habe dazu erst am Sonntag wieder Zeit.
 
@news: Danke für den Tipp. Das liest sich auch sehr gut. Das werde ich sicher auch ausprobieren.

Kann jemand bestätigen, dass man mit der Methode "virtiofs" in den folgenden beiden Szenarien weiterkommt?

Szenario 1: TrueNAS = VM1, Jellyfin = VM2
Die Daten liegen auf der VM1 (direkt eingebundene HDD) und sollen zusätzlich von VM2 zugreifbar sein.

Szenario 2: TrueNAS = VM1, Docker = VM3
Die Daten (z.B. Dockervolumes) liegen auf einer virtuellen Festplatte, welche im ZFS Speicher des Proxmoxhosts gespeichert sind. VM1 soll Zugriff auf die Daten haben damit sie in den automatischen Backups (Replikation) von VM1 (= TrueNAS) enthalten sind.
 
Kann jemand bestätigen, dass man mit der Methode "virtiofs" in den folgenden beiden Szenarien weiterkommt?
Ich kann das nicht bestätigen, weil ich es noch nicht probiert habe :-)

Aber... für den Datenaustausch zwischen mehreren VMs scheint mir das nicht gedacht zu sein - eher für host <--> VM.

Vermutlich muss die eine VM1 erst Dateien dorthin abspeichern, damit sie anschließend in VM2 sichtbar sind. Das ist... suboptimal.

Disclaimer: not tested!