NFS

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung

NFS (Network File System) ist ein von SUN microsystems entwickeltes Protokoll, das den Zugriff auf Dateien über ein Netzwerk ermöglicht. Oft wird NFS mit Samba verglichen, was jedoch nicht viel Sinn ergibt, da andere Philosophien dahinter stecken. Bei NFS wird nicht ein Client am Server angemeldet, sondern der Server bietet einem anderen Rechner Zugriff. Um Verwirrungen vorzubeugen: Ein Sambaserver kann nicht per NFS gemountet werden.

Beispiel Samba (als mount):

Benutzer A fragt an Server B zum Einloggen an
Samba-Server kennt Benutzer A und fragt nach Passwort
Benutzer A gibt Passwort ein
Samba-Server idenfiziert Benutzer A als OK -> Verbindung wird hergestellt

Beispiel NFS:

Server B gibt Verzeichnis für Rechner C und Benutzer A frei
Rechner C verbindet mit seiner Rechner-ID => Benutzer A hat Zugriff auf  das Verzeichnis

Sowas wie den smbclient gibt es für NFS nicht.

Inhaltsverzeichnis

NFS-Server

Installation

Um den Server zum Laufen zu bringen, sind die nfs-utils notwendig, in denen diverse rpc-Dienste und der NFS-Daemon enthalten sind.

[root]# yum -y install nfs-utils

Die Konfgiurationsdatei ist /etc/exports.

exports (einfache Konfiguration)

Die /etc/exports weicht kaum von der von Solaris/SUN-OS verwendeten ab, unter Linux sind jedoch weitere Optionen verfügbar.

Beispiel einer einfachen Serverkonfiguration:

/Daten/pub/alle	      192.168.1.1(ro)

Bei diesem Beispiel dürfen alle vom Rechner 192.168.1.1 lesend auf das Verzeichnis /Daten/pub/alle zugreifen.

Es ist auch erlaubt, ganze und Teilnetzwerke einzubinden. Auch sind hier verschiedene Schreibweisen erlaubt.

/Daten/pub/alle	      192.168.1(ro)
/Daten/pub/alle	      192.168.1.*(ro)
/Daten/pub/alle	      192.168.1/24(ro)
/Daten/pub/alle	      192.168.1.0/24(ro)
/Daten/pub/alle	      192.168.1/255.255.255.128(ro)
/Daten/pub/alle              192.168.1.0/255.255.255.128(ro)
/Daten/pub/alle              *.mydomain(ro)

Die Konfigurationen mit voller Netzwerkadresse und Teilnetzmaske sind zu bevorzugen.

Anmerkung Anmerkung: Die Mount-Verzeichnisse sollten, wenn möglich, nicht übereinander liegen.

Die folgende Zusammenstellung ist also zu vermeiden:

/Daten/pub/alle	      192.168.1(rw)
/Daten/                      192.168.1(ro)

Besser mit den UIDs und GIDs so etwas gestalten.

exports (Optionen)

  • secure = NFS Anfragen müssen von einem Port kleiner als 1024 stammem
  • insecure = NFS Anfragen können von einem Port grösser als 1024 stammem
  • ro = read only
  • rw = read write
  • link_relative = Wandelt absolute symbolische Links in relative Links um.
  • link_absolute = Läßt alle symbolischen Links so wie sie sind
  • sync = sofortiges Synchronisieren (keine Schreibverzögerung)
  • no_wdelay = das gleiche wie sync
  • async = asyncron speichern
  • root_squash = User-ID 0 wird in als anonym behandelt. (im Normalfall nfsnobody)
  • no_root_squash = User-ID 0 wird beibehalten
  • squash_uids = User-IDs werden in anonyme umgewandelt
  • squash_gids = Gruppen-IDs werden in anonyme umgewandelt
  • all_squash = Wandelt alle User-IDs und Gruppen-ID's zu anonymen um.
  • map_daemon = Diese Option schaltet die dynamische User- und Gruppen-ID-Umwandlung über den rpc.rusersd ein.
  • anonuid = Setzt die User-ID für den anonymen User
  • anongid = Setzt die Gruppen-ID für die anonymen Gruppen.

exports (erweitert)

Ein Beispiel:

/Daten/anna              192.168.1.2(anonuid=501,anongid=501,sync,rw)

Wenn "anna" hier am Rechner "192.168.1.2" die UID und GID 501 hat, dann gehört ihr sozusagen dieser Ordner.

Weiteres Beispiel:

/Daten/pinnwand		192.168.1.3(rw,all_squash,async)

Hier dürfen alle schreiben und werden squashed.

Den Daemon starten

Ist die Datei /etc/exports fertig eingerichtet, kann sie mit /etc/init.d/nfs reload testen. Hier gilt: Keine Meldung ist eine gute Meldung.

Mit

[root]# service nfs start

startet der Daemon.


NFS Client

Der Client muss das Serververzeichnis mounten, um darauf arbeiten zu können

Beispiel: Einfaches Mounten eines NFS:

mount -t nfs server:/Daten /mnt/nfs

Es gibt auch hier beim Mounten des NFS-Verzeichnisses verschiedene Optionen. Beispiel aus einer /etc/fstab:

192.168.1.1:/Daten/pinnwand /mnt/nfs-pinnwand              nfs     rsize=8192,wsize=8192,intr,soft 0 0


Links