Ulrichs Werkbank

Daten über das Network File System zugänglich machen

13. November 2016
von Ulrich Hilger

 

Nicht erst für das Thema Cloud ist eine technische Anforderung besonders wichtig: Das Bereitstellen von Inhalten auf einer zentralen Maschine und deren Verwendung von verschiedenen anderen Maschinen aus, die über ein Netzwerk darauf zugreifen, ist seit jeher eine wesentliche Funktion von Rechnerarchitekturen.

Das Network File System (NFS) liefert hierzu einen wertvollen Beitrag, indem es Teile des Dateisystems eines Rechners über das Netz anderen Rechner bereitstellt. Die vom Server per NFS bereitgestellten Teiles seines Dateisystems lassen sich auf der Seite eines Clients einbinden, als wären sie Teil des Dateisystems des Clients. 

Dieser Beitrag beschreibt die Schritte, die auf Maschinen mit Debian oder Ubuntu Linux notwendig sind, um das NFS so zu verwenden. 

Einrichten des NFS-Dienstes auf dem Server

Das folgende Kommando installiert den NFS-Server-Dienst auf der betreffenden Maschine

sudo apt install nfs-kernel-server

Anschließend werden mit den folgenden Schritten Teile des Dateisystems des Servers über NFS zugänglich gemacht.

Daten des Servers über NFS zugänglich machen

Als erstes werden Verzeichnisse angelegt, die über NFS zugänglich sein sollen, z.B.

sudo mkdir /export
sudo mkdir /export/daten

Diese Verzeichnisse sind leer und dienen als Zugangspunkt zu den Daten, die über NFS zugänglich sein sollen. Verzeichnisse, die Daten enthalten, werden mit den Zugangspunkten verbunden. Soll zum Beispiel das Verzeichnis daten aus dem Benutzerverzeichnis des Benutzers fred über NFS zugänglich sein, dient das folgende Kommando dazu, es mit dem zuvor angelegten Zugangspunkt zu verbinden. 

sudo mount --bind /home/fred/daten /export/daten

Das obige Kommando schafft die Verbindung nicht dauerhaft, sie wird beim Herunterfahren der Maschine wieder aufgelöst. Um die Verbindung dauerhaft einzurichten, so dass sie bei einem Neustart wieder hergestellt wird, ist folgender Eintrag in die Datei /etc/fstab nötig

/home/fred/daten    /export/daten   none    bind  0  0

Zugangspunkte, die über NFS erreichbar sein sollen, müssen zudem in die Datei /etc/exports eingetragen werden

/export          *(rw,sync,no_root_squash)
/export/daten    *(rw,sync,no_root_squash)
 

Zuletzt wird der NFS-Dienst neu gestartet

sudo service nfs-kernel-server restart

Die Maschine ist nun bereit für den Zugriff per NFS von anderen Maschinen aus.

Zugriff auf Daten via NFS von anderen Maschinen aus

Auf einer Maschine, von der aus auf die per NFS zugänglichen Daten des Servers zugegriffen werden soll, wird zunächst der NFS-Client installiert

sudo apt-get install nfs-common

Dann wird mit folgendem Kommando ein Verzeichnis über NFS eingehängt

sudo mount -t nfs4 name-des-servers:/ /mnt

Nun ist alles, was der betreffende Server über NFS bereit stellt im Verzeichnis /mnt sichtbar

ulrich@test1:~$ sudo ls -l /mnt
drwxr-xr-x 3 root root 4096 Nov 13 09:22 export

Um die NFS-Verbindung vom Client zum Server bei jedem Start des Clients automatisch aufzubauen, wird folgender Befehl in der Datei /etc/fstab des Clients eingetragen

name-des-servers:/   /mnt   nfs4    rw,auto    0  0

Es kann vorkommen, dass beim Abarbeiten der Datei /etc/fstab während des Starts das Netzwerk noch nicht 'da' ist. In diesem Fall schlägt das Einhängen fehl und das Verzeichnis fehlt. Als Trick hilft bisweilen ein Eintrag am Ende von /etc/rc.local

ls /mnt/export/daten

Das bewirkt, dass am Ende des Startablaufs eine Liste des Verzeichnisinhalts aufgerufen wird. Im Zuge der Ausführung wird das Verzeichnis eingehängt. Sollte die Verbindung während der Laufzeit verlorengehen kann ein Eintrag in der Datei /etc/crontab helfen.

*/10 *    * * *   root    ls /mnt/export/daten > /dev/null

Mit diesem Eintrag wird alle zehn Minuten auf die Verbindung zugegriffen und verhindert, dass sie wegen Inaktivität geschlossen wird.

Fazit

Das Network File System liefert einen einfach einzurichtenden Weg, der mit wenigen Schritten ermöglicht, über Maschinen hinweg auf Daten zuzugreifen. Dank einer großen Verbreitung des Standards ist der Zugriff via NFS in vielen Situationen und über verschiedene Systeme hinweg einheitlich verwendbar.

 

 

Quellen

https://help.ubuntu.com/lts/serverguide/network-file-system.html
https://help.ubuntu.com/community/SettingUpNFSHowTo
https://help.ubuntu.com/community/NFSv4Howto