In diesem Post erfährst du, wie du auf Linux basierten Betriebssystemen wie Ubuntu, Debian oder Proxmox Daten auf ZFS-Dateisystemen über NFS und Samba/SMB freigeben kannst und was bei der Konfiguration zu beachten ist.

Unter Linux können Netzwerkfreigaben auf verschiedene Weisen konfiguriert werden, beispielsweise durch direkte Einstellungen bei NFS oder Samba. In diesem Artikel zeige ich dir, wie du dies vereinfachst und die Freigaben direkt über das ZFS-Dateisystem erstellen kannst.

Freigabe mit NFS

Um eine Freigabe mit NFS zu ermöglichen, wird der NFS-Kernel-Server benötigt. Will man die NFS Freigabe unter macOS einbinden, braucht man auch noch RPCbind.

sudo apt-get install nfs-kernel-server rpcbind

Danach alle Services aktivieren.

systemctl enable rpcbind
systemctl enable rpc-statd
systemctl enable nfs-server

systemctl start rpcbind
systemctl start rpc-statd
systemctl start nfs-server

Der folgende Befehl wird dann zum Freigeben eines spezifischen Datasets benötigt.

zfs set sharenfs='rw,no_root_squash,insecure' pool-name/dataset-name

Funktioniert die Freigabe nicht wie erwartet, kann man mit dem Befehl service nfs-kernel-server restart den NFS-Server neu starten. Im Anschluss sollte man das NFS-Share problemlos auf einem anderen Computer oder virtuellen Maschine einbinden können.

Die Verwendung der 'no_root_squash'-Option ist eine Möglichkeit, um das NFS-Volume erfolgreich unter macOS einzubinden oder beispielsweise unter Linux, macOS oder Windows dem eingebundenen NFS-Share Lese und Schreibrechte zu gewähren. Dies ist zum Beispiel notwendig, wenn der eingebundene Ordner dem User root gehört.

Will man die NFS-Freigabe wieder deaktivieren, kann dies mit folgendem Befehl geschehen.

zfs set sharenfs=off pool-name/dataset-name

Freigabe mit Samba/SMB

Zur Einrichtung des Samba-Servers ist das Samba-Paket erforderlich, welches unter Ubuntu/Debian einfach nachinstalliert werden kann.

sudo apt-get install samba

Will man eine Samba-Freigabe mit Passwortschutz erstellen, muss man in der Samba eigenen Benutzerdatenbank noch einen Benutzer erstellen, dieser muss bereits im System als normaler Benutzer vorhanden sein.

sudo smbpasswd -a USERNAME

SMB-Share mit User - Passwort

Eine Samba-Freigabe, auf welche die in der Samba-Benutzer-Datenbank eingetragenen Benutzer zugreifen können, kann man dann wie folgt erstellen. Falls ein Benutzer keine Schreib oder Leserechte auf bestimmte Ordner hat, muss man dies im Dateisystem manuell anpassen, zum Beispiel mit chmod oder chown.

zfs set sharesmb=on pool-name/dataset-name

Will man abstellen, dass ZFS das Dateisystem zum Beispiel nach einem Neustart erneut freigibt, muss man mit dem nachfolgenden Befehl das Flag sharesmb wieder auf off stellen.

zfs set sharesmb=off pool-name/dataset-name

Das Samba-Share verschwindet nun nicht automatisch, sondern erst nach dem nächsten Neustart des Samba-Servers. Einen Neustart des Samba-Servers kann man jetzt manuell auslösen oder eben den nächsten Neustart des Host Systems abwarten.

service smbd restart
ZFS