Mike Barkmin

LXC Share Storage in Proxmox

Damit LXC Container in Proxmox auf gemeinsam genutzten Speicher zugreifen können, musst du einige Schritte befolgen, um den Speicher korrekt zu konfigurieren und zu mounten. Diese Anleitung zeigt, wie du einen gemeinsamen Speicher zwischen mehreren Containern einrichtest.

Benutzer und Gruppe erstellen

Um konsistente Berechtigungen über mehrere Container hinweg zu gewährleisten, erstellst du zunächst einen dedizierten Benutzer mit einer festen UID/GID. Dieser Benutzer sollte in jedem LXC Container existieren, der auf den gemeinsam genutzten Speicher zugreifen soll.

Auf dem Proxmox Host und in jedem Container ausführen:

groupadd -g 1005 lxcshare
useradd -u 1005 -g lxcshare -s /bin/bash lxcshare

LXC Bind Mount konfigurieren

Um den gemeinsam genutzten Speicher in einem LXC Container zu mounten, musst du die Konfigurationsdatei des Containers anpassen.

Container stoppen und Konfiguration bearbeiten:

pct stop 100
vim /etc/pve/lxc/100.conf

Mount-Point hinzufügen:

...
mp0: /mnt/pve/share,mp=/mnt/media
lxc.idmap: u 0 100000 1005
lxc.idmap: g 0 100000 1005
lxc.idmap: u 1005 1005 1
lxc.idmap: g 1005 1005 1
lxc.idmap: u 1006 101006 64530
lxc.idmap: g 1006 101006 64530
...

Diese Zeile bindet das Verzeichnis /mnt/pve/share auf dem Host in das Verzeichnis /mnt/media im Container ein.

Verzeichnisrechte auf dem Host anpassen:

chown -R lxcshare:lxcshare /mnt/pve/share

Container starten:

pct start 100

Anwendungsbeispiel: Jellyfin

Damit Jellyfin auf den gemeinsamen Speicher zugreifen kann, muss der Dienst unter dem lxcshare-Benutzer laufen.

Systemd-Service anpassen:

mkdir -p /etc/systemd/system/jellyfin.service.d/
vim /etc/systemd/system/jellyfin.service.d/override.conf
[Service]
User=lxcshare
Group=lxcshare

Besitzerrechte für Jellyfin-Verzeichnisse ändern:

chown -R lxcshare:lxcshare /etc/default/jellyfin
chown -R lxcshare:lxcshare /var/lib/jellyfin/
chown -R lxcshare:lxcshare /etc/jellyfin/
chown -R lxcshare:lxcshare /var/log/jellyfin/
chown -R lxcshare:lxcshare /var/cache/jellyfin/

Dienst neu laden und starten:

systemctl daemon-reload
systemctl restart jellyfin

Anwendungsbeispiel: Samba

Um den gemeinsamen Speicher über Samba im Netzwerk freizugeben, konfigurierst du Samba so, dass es den lxcshare-Benutzer verwendet.

Samba-Konfiguration bearbeiten:

vim /etc/samba/smb.conf

Share-Konfiguration hinzufügen:

[media]
   comment = Shared Media Storage
   path = /mnt/media
   force group = lxcshare
   force user = lxcshare
   read only = no
   browsable = yes
   writable = yes
   create mask = 0664
   directory mask = 0775

Samba-Benutzer erstellen:

smbpasswd -a lxcshare

Samba-Dienst neu starten:

systemctl restart smbd

Zusammenfassung

Mit dieser Konfiguration können mehrere LXC Container auf denselben Speicher zugreifen, wobei konsistente Berechtigungen durch den gemeinsamen Benutzer lxcshare gewährleistet werden. Dies ist besonders nützlich für Media-Server-Setups mit Jellyfin, Samba oder ähnlichen Diensten.

LXC Share Storage in Proxmox

Teilbare URL erstellen

Abschnitte auswählen