Ubuntu: NFS-Server einrichten

30. Jänner 2021

NFS steht für Network File System und ist ein Netzwerk-Protokoll, welches 1984 von Sun erstellt wurde. Die aktuelle Version ist 4. NFS ermöglicht es, dass auf Dateien so zugegriffen werden kann, als ob sie auf einer lokalen Festplatte gespeichert wären.

NFS wird bspw. bei Kubernetes verwendet, um Persistent Volumes in Container einzubinden.

Installation NFS-Server

Als erstes muss das „nfs-kernel-server“ Paket installiert werden.

sudo apt install nfs-kernel-server

Als Nächstes wird das Verzeichnis erstellt, das freigegeben werden soll.

sudo mkdir /var/nfs/general -p

Der Schalter „-p“ ist dafür da, dass auch übergeordnete Verzeichnisse erstellt werden, falls diese nicht vorhanden sind.

Anschließend wird der Benutzer und Gruppe des Verzeichnisses angepasst, da NFS die Operationen auf nobody:nogroup übersetzt sowie die vollen Rechte gegeben

sudo chown nobody:nogroup /var/nfs/general
sudo chmod 777 /var/nfs/general

Als nächsten Schritt muss der Export definiert werden. Diese Daten stehen in /etc/exports.

sudo nano /etc/exports

Hier den Share sowie den Benutzer hinterlegen.

/var/nfs/general 192.168.1.121(rw,sync,no_subtree_check)

Anstatt der IP kann alternativ auch * verwendet werden, wodurch alle Benutzer, die sich mit dem Server verbinden können, den Share einbinden können.

„rw“ gibt dem Client Lese- und Schreibrechte. Soll der Client nur Leserechte bekommen, muss stattdessen „ro“ angegeben werden.

„sync“ steht für synchronen Datentransfer und „no_subtree_check“ schaltet die Überprüfung auf Unterverzeichnisbäume aus.

Wenn alle Einstellungen angepasst wurden, muss der NFS-Server neu gestartet werden.

sudo systemctl restart nfs-kernel-server

Installation NFS-Client

Auf dem Client wird das Paket „nfs-common“ benötigt.

sudo apt install nfs-common

Dann erstellen wir auch auf dem Client ein Verzeichnis, wo der NFS-Share eingebunden werden soll.

sudo mkdir /nfs/general -p

Als letzter Schritt wird das Verzeichnis gemountet.

sudo mount 192.168.1.122:/var/nfs/general /nfs/general

Damit sollte der Share jetzt am Client verfügbar sein.