nfs - network file system


By rakekniven - Posted on 11 August 2005

Netzwerkfreigaben - Client und Server

NFS - Network File System

Mit nfs ist es sehr einfach laufwerke eines anderen Rechners lokal einzubinden oder eigene Laufwerke (Ordner) freizugeben.

Beispiel eines nfs-servers :

Grundvorrausetzung ist das der NFS-Daemon, Portmapper und nfslock-daemon läuft.
Diese lassen sich aber normalerweise sehr einfach mit dem Konfigtools der jeweiligen Distribution aktivieren.
Die zentrale Konfigurationsdatei ist /etc/exports .
Diese Datei steuert, welcher Rechner auf welche Verezeichnisse wie (read-omly oder read-write) zugreifen darf.
Die Rechner werden wahlweise durch IP-Nummer oder Namen angegeben.
IP-Adressen können maskiert werden (z.B. mit 192.168.0.0/255.255.255.0).
IP-Adressen und Rechnernamen dürfen ausserdem das Jokerzeichen enthalten (z.B. *.tux).

Im folgenden Beispiel wird allen Rechnern im Netz "192.168.0.*" oder mit Namen "*.tux" erlaubt lesend auf das Verzeichnis "/usr/share" zuzugreifen.
Der Rechner "bilbo.tux" hat Lese- und Schreibrechte auf "/usr/bin".

# /etc/exports
/usr/share 192.168.0.*(ro) *.tux(ro)
/usr/bin   bilbo.tux(rw)

Wurden Änderungen in "/etc/exports" vorgenommen muss "exportfs -a" ausgeführt werden.
Bei SuSE ist alternativ "rcnfsserver restart" einzugeben.
Seit Kernel 2.2 wird Kernel-NFS unterstützt. Als Trennzeichen sind Tabulatoren zu verwenden > keine Leerzeichen !!!
Das hat mich schon mal einen ganzen Samstag gekostet.

Beispiel eines nfs-clients :

 Der Client hat es denkbar einfach auf freigegebene Ressourcen eines nfs-servers zuzugreifen.

Es reicht ein einfache mountkommando nach folgendem Schema:

bilbo:~ # mount -t nfs host:<path> <mountpoint>

 

In unserem Beispiel von oben will rechner bilbo das /usr/bin-Verzeichnis lokal einbinden.

 bilbo:~ # mount -t nfs server:/usr/bin /server/bin

 

Mit einem einfachen umount kann die Laufwerksverbindung wieder gelöst werden

 bilbo:~ # umount /server/bin

 

Ist die Netzwerkverbindung durch irgendeinen Grund unterbrochen, dann "umount" mit der Option "-f" ausführen.
Andernfalls dauert es sehr lange bis "umount" durchgeführt werden.

Bei stationären Kisten ist es sehr bequem die nfs-verzeichnisse in die /etc/fstab einzutragen.
Beispiel gefällig :

# Add to /etc/fstab
 server:/usr/bin  /server/bin  nfs  user, noauto,exec  0  0

 
Vorraussetzungen bei NFS von Hand :

Die Datei /etc/exports wurde bereits editiert und die zu exportierenden Verzeichnisse freigegeben.
Portmapper starten

server:~ # portmap


Nun den Mount-Daemon starten. Nun werden die exportierten Verzeichnisse ("shares") für die anderen sichtbar.

server:~ # rpc.mountd


Starten des NFS-Daemon für den eigentlichen Filezugriff

server:~ # rpc.nfsd


Mit rpcinfo kann jederzeit die Verfügbarekit der NFS-Dienste überprüft werden :

server:~ # rpcinfo -p server