NFS auf Ubuntu 8.04
Aus Howtos und Gedankenstuetzen
Inhaltsverzeichnis |
Voraussetzungen für NFS
- alle Benutzer im Netzwerk eindeutige UIDs haben
- alle Rechner im Netzwerk zentral administriert werden können
Installation auf NFS
- Sever
apt-get install nfs-kernel-server
- Client
apt-get install nfs-common
evt. auch noch portmapper installieren muss aber nicht sein.
Freigaben auf dem Server erstellen
Dazu werden diese in der /etc/exports vermerkt. Und zwar nach folgendem Schema <pfad> <computername> (<optionen>)
nano /etc/exports
Nur mit Leserechten
/pfad/freigabe1 192.168.1.13(ro,sync)
Mit Lese-und Schreibrechten für ein Netzwerk
/pfad/zur/freigabe3 192.168.1.0/255.255.255.0(rw,async)
Wenn man mit Rechnernamen arbeitet müssen diese in der /etc/hosts eingetragen sein.
Parameter
rw = Lesen und Schreiben
ro = nur Lesen
async = Asynchroner Datentransfer
insecure = Ports oberhalb 1024 auch verwenden
no_root_admin = hilf bei Fehlermeldungen wegen Rechte Problemen auf dem NFS Server (nobody)
ACHTUNG!
insecure sollte nur verwendet werden, wenn es unbedingt notwendig ist! Da dann auch die unsicheren Ports verwendet werden. Leider verwendet das OSX von Apple diese Ports für NFS-Verbindungen. Ein aktueller Apple Computer kann sich nur dann mit dem NFS-Server verbinden, wenn die Option insecure gesetzt ist.
Freigaben veröffentlichen
Nun muss dem NFS-Server im Terminal nur noch gesagt werden, die exports neu einzulesen.
exportfs -ra
oder
/etc/init.d/nfs-kernel-server restart
Die eventuell auftauchende Warnung "exportfs: No options for..." kann ignoriert werden.
Zugriffskontrolle
Der NFS-Server beachtet die Zugriffsbeschränkungen, die durch die Dateien /etc/hosts.allow und /etc/hosts.deny beschrieben werden. Falls man diese Art der Zugriffskontrolle (zusätzlich zu der aus /etc/exports) verwenden will, sind folgende Einträge vorzunehmen:
In der /etc/hosts.deny
ALL:ALL
In der /etc/hosts.allow
portmap: 192.168.0.0/24 lockd: 192.168.0.0/24 mountd: 192.168.0.0/24 statd: 192.168.0.0/24 sshd: 192.168.0.0/24
Man kann natürlich auch einzelne Ipaddressen angeben. Zu beachten ist, dass für diese Dienste nur IP-Adressen in den hosts_access-Dateien funktionieren, keine Domainnamen.
Auf Freigabe zugreifen
cd /home mkdir backup mount 192.168.0.13:/home /home/backup
Das kann natürlich auch per Shellscript automatisiert werden. Oder aber mit Root Rechten in die /etc/fstab eingetragen werden.
nano /etc/fstab 192.168.0.13:/home /home/backup nfs rw 0 0
Parameter
ro = Leserechte
rw = Lese- und Schreibrechte
hard = Bei Unterbrechungen ohne Timeout warten bis der Server wieder normal erreichbar ist
soft = Bei Unterbrechungen sofort einen Timeout machen
bg = Bei einem Timeout, wird der mount im Hintergrund weiter versucht.
intr = Erlaubt einem wartenden Programm bei Bedarf dennoch zu unterbrechen/killen
nolock = Deaktiviert das Sperren von Dateien. Wird gelegentlich für die Verbindung zu alten NFS-Servern benötigt
Achtung
Portmap öffnet seinen Port standardmäßig an allen Netzwerkschnittstellen, was auf einem Client-Rechner nicht unbedingt erwünscht ist. Man kann das ändern, indem man einfach folgenden Befehl ausführt und die Frage, ob Portmap nur an localhost gebunden werden soll, mit einem JA beantwortet. Damit ist der Port von anderen Rechnern nicht mehr erreichbar.
dpkg-reconfigure portmap
Problembehebung
Sollten beim Zugriff auf NFS-Freigaben Probleme auftreten (z.B. Fehlermeldungen der Art "Permission denied", kein Schreibzugriff, scheinbar leere Ordner oder ähnliches), so hängt dies sehr häufig mit mangelnden bzw. fehlerhaft vergebenen Rechten im eingebundenen (entfernten) Dateisystem zusammen.
Unable to mount filesystem
- Die /etc/exports prüfen, da wenn eine Freigabe nur mit Leserechten freigegeben ist diese auch nur mit der Option (ro) gemountet werden kann.
- Sicherstellen, das die Freigaben auch exportiert worden sind. exportfs -ra
RPC: Program Not Registered
- bedeutet, das der Client den NFS Dienst auf dem Server ansprechen kann.
- prüfen ob NFS auf dem Server läuft rpcinfo -p Das sollte folgende Ausgabe liefern
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 749 rquotad 100011 2 udp 749 rquotad 100005 1 udp 759 mountd 100005 1 tcp 761 mountd 100005 2 udp 764 mountd 100005 2 tcp 766 mountd 100005 3 udp 769 mountd 100005 3 tcp 771 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 300019 1 tcp 830 amd 300019 1 udp 831 amd 100024 1 udp 944 status 100024 1 tcp 946 status 100021 1 udp 1042 nlockmgr 100021 3 udp 1042 nlockmgr 100021 4 udp 1042 nlockmgr 100021 1 tcp 1629 nlockmgr
- hier hilft meistens mehrfaches Neustarten und evt. den Prozess richtig zu killen
100021 3 tcp 1629 nlockmgr 100021 4 tcp 1629 nlockmgr
Kategorien: Ubuntu | NFS