Inhaltsverzeichnis
NFS
NFS steht für Network File System und ermöglicht es, dass ein Rechner seine lokalen Verzeichnisse einem anderen Rechner der via Netzwerk mit ihm verbunden ist, zur Verfügung stellt.
Installation
Zur Installation werden mindestens die Pakete
xinetd
(xinetd.i386 –> Superserver für die Verwaltung verschiedener Dienste)portmap
(portmap.i386 –> Protokoll für NFS)nfs-utils
(nfs-utils.i386)nfs-utils-lib
(nfs-utils-lib.i386)
benötigt, welche auf dem Zielrechner vorhanden sein müssen.
Konfiguration
Konfigurationsdateien
Die Konfiguration bezieht sich in erster Linie auf den Ziel-Rechner.
Hier müssen der Dienst (Daemon) nfsd
und einige andere Komponenten gestartet werden, um das „mounten“ eines über das Netzwerk erreichbaren entfernten Dateisystems, einbinden zu können.
Bevor ein Start des Dienstes (Daemon) nfsd
erfolgen kann, muss mindestens die Konfigurationsdatei
/etc/exports
(Datei mit Freigaben und Freigaberechten)
vorhanden sein. Optional können die Konfigurationsdateien
/etc/hosts.allow
(HOST mit Zugrifferlaubnis und Zugriffkonfiguration)/etc/hosts.deny
(HOST mit Zugriffverweigerung und Verweigerungskonfiguration)
angegeben werden.
Die zentrale Konfiguration für NFS ist /etc/exports
. Diese Datei steuert, welcher Rechner auf welches Verzeichnis auf den Ziel-Rechner mit welchen Rechten und welcher Konfiguraton zugreiffen darf.
Hier ein Beispiel:
# /etc/exports /home/klaus 192.168.0.2(rw,async,no_root_squash)
Eine ausführliche Erklärung der einzelnen Bereiche der Konfigurationsdateien, sowie der Optionen können über die Befehle
# man exports # man hosts.allow # man hosts.deny
abgerufen werden.
Eine Option sei hier an dieser Stelle jedoch kurz beschrieben. Die Option aus obrigen Beispiel no_root_squash
.
Sie bewirkt, dass beim „mounten“ eines Verzeichnisses beim Ziel-Rechner vom Quell-Rechner aus durch root, dieser nicht die mit den Rechten von „nobody“, sondern mit den Rechten von „root“ agieren kann.
Änderungen an der Konfigurationsdatei /etc/exports
müssen noch aktiviert werden. Dies geschieht über den Befehl
# /usr/sbin/exportfs -r
und synchronisiert die Datei /var/lib/nfs/etab
mit der Konfigurationsdatei /etc/exports
.
Folgende Dateien enthalten wichtige Informationen zum Betrieb von NFS:
/var/lib/nfs/etab
(Erzeugung durchexportfs
–> enthält die eigentliche Konfiguration)/var/lib/nfs/rmtab
(Liste von Namen der Clients und der Dataisysteme, der importierten Server)/var/lib/nfs/xtab
(Liste aller expliciten Rechnernamen)/proc/fs/nfs/exports
(Client-Liste, wie sie dem Kernel bekannt sind)
Falls Sie Änderungen an den Konfigurationsdateien hosts.allow
und hosts.deny
durchführen, müssen diese noch aktiviert werden. Dies geschieht über den Befehl
# /sbin/service xinetd reload
und bindet die Änderungen ein.
Benötigte Dienste (Daemons)
Der „Superserver“ xinetd
sollte zwar laufen, falls nicht wird dieser über den Befehl
# /sbin/service xinetd start
gestartet.
Der Dienst (Daemon) portmap
wird über folgenden Befehl
# /sbin/service portmap start
gestartet.
Der Dienst (Daemon) nfslock
wird über folgenden Befehl
# /sbin/service nfslock start
gestartet.
HINWEIS - Ab NFS in der Version 4 ist der portmapper
nicht mehr erforderlich !
Der Dienst (Daemon) nfs
und seine Komponenten werden über folgendem Befehl
# /sbin/service nfs start
gestarten.
Eine Überprüfung der auf dem Ziel-Rechner laufenden „rpc“-Dienste kann durch den Befehl
# /usr/sbin/rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper ...
durchgeführt werden.
HINWEIS - Ab NFS in der Version 4 ist der portmapper
nicht mehr erforderlich !
Folgende Dienste (Daemon) sind aktiv, damit die Einbindung eines NFS möglich ist:
/usr/sbin/xinetd
(„Superdaemon“ für Zugriffskontrolle)/sbin/portmap
(Daemon Protokoll für NFS kleiner als Version 4)/usr/bin/nfslock
(Daemon NFS Locking)/usr/bin/nfsd
(Daemon NFS)/usr/sbin/rpc.mountd
(Daemon mount –> „mountpoint“ setzen)/sbin/rpc.statd
(Daemon locking)/usr/sbin/rpc.rquotad
(Daemon Quotas - Speicherplatzverwaltung auf Benutzerebene)
Einbinden von Verzeichnissen (mount)
Zur Einbindung von Verzeichnissen des Ziel-Rechners auf den Quell-Rechner wird ein „mount“ auf das Verzeichnis des Ziel-Rechners vom Quell-Rechner aus ausgeführt.
Hier ein Beispiel mit den Vorgaben, dass der Ziel-Rechner die IP 192.168.0.3 besitzt und das Verzeichnis /home/klaus
in der Datei /etc/exports
für den Quell-Rechner mit der IP 192.168.0.2 freigegeben hat.
# mount -t nfs 192.168.0.3:/home/klaus /mnt/klaus
Danach können Sie auf das Verzeichnis /home/klaus
auf dem Ziel-Rechner über den „mountpoint“ /mnt/klaus
auf dem Quell-Rechner zugreifen, wie wenn es auf dem Quell-Rechner selbst vorhanden wäre.
Ein Eintrag in der Konfigurationsdatei /etc/fstab
könnte wie folgt aussehen (nur relevanter Auszug):
... 192.168.0.3:/home/klaus /mnt/klaus nfs rw,rsize=32768,wsize=32768,intr,nfsvers=3,tcp,hard,bg,addr=192.168.0.3 0 0 ...