SelfLinux Linux im Netzwerk NFS - Network File System Abschnitt 2 | SelfLinux-0.13.0

| NFS - Network File System | Autoren Formatierung GFDL

#### 3 Das NFS Protokoll

Was man gewöhnlich NFS nennt, setzt sich aus vier verschiedenen Protokollen zusammen. Jedes hängt von Remote Procedure Calls (RPC) und portmap (auch rpc.portmap genannt) ab. Ein portmapper wandelt RPC Programmnummern in Portnummern um. Wenn ein RPC Server startet, teilt er portmap mit, welchen Port er benutzen wird, und die verwaltete RPC Programmnummer. Wenn ein Client eine RPC Abfrage an eine gegebene Programmnummer senden möchte, kontaktiert er zuerst den Server portmap, um die Portnummer zu bekommen, die ihm Zugang zu dem gewünschten Programm gibt. Dann adressiert er die RPC Pakete an den korrespondierenden Port.

Die vier Dienste, die es NFS erlauben zu arbeiten, sind:

#### 3.1 Network File System (nfs)

Dieses Protokoll ist die Basis und erlaubt das Erzeugen von Dateien, Suchen, Lesen oder Schreiben. Dieses Protokoll verwaltet auch die Autentifizierung und die Dateistatistiken.

Der Daemon dieses Dienstes heisst nfsd.

#### 3.2 Mount Daemon (mountd)

Dieser ist verantwortlich für das Mounten exportierter Systeme, um auf sie mit NFS zugreifen zu können. Der Server empfängt Anfragen wie mount und umount und muss auf diese Weise Informationen über exportierte Dateisysteme bewahren.

Der Daemon dieses Dienstes heisst mountd.

#### 3.3 Network Status Monitor (nsm)

Es wird benutzt, um Netzwerknodes zu überwachen, um den Zustand einer Maschine (Client oder Server) zu kennen. Es informiert, z.B. über einen Neustart.

Der Daemon dieses Dienstes heisst statd.

#### 3.4 Network Lock Manager (nlm)

Um Datenänderungen durch mehrere Clients zur gleichen Zeit zu vermeiden, verwaltet dieses Protokoll ein Lock-System. Es weiss, welche Dateien benutzt werden. Auf diese Weise ist es mit Hilfe des Nsm Protokolls möglich zu wissen, wann ein Client erneut startet. Nsm befreit alle Locks des Clients, bevor sie zurückgegeben werden.

Der Daemon dieses Dienstes heisst lockd.

#### 3.5 Kernel NFS Daemon (knfsd)

Der Daemon knfsd, verfügbar ab Kernelversion 2.4, unterstützt direkt die nfs- und nlm-Protokolle. Andererseits werden mountd und nsm noch nicht unterstützt. Wenn der NFS Server installiert und gestartet wird, kann man mit dem folgenden Befehl verifizieren, dass alles läuft:

root@linux # ps auxwww | egrep "nfs|mount|lock|stat"
root 220 0.0 0.0 1456 524 ? S Feb21 0:00 /sbin/rpc.statd
root 3944 0.0 0.0 0 0 ? SW Feb21 3:33 [nfsd]
root 3945 0.0 0.0 0 0 ? SW Feb21 0:00 [lockd]
root 3947 0.0 0.0 0 0 ? SW Feb21 3:42 [nfsd]
root 3948 0.0 0.0 0 0 ? SW Feb21 3:17 [nfsd]
root 3949 0.0 0.0 0 0 ? SW Feb21 3:00 [nfsd]
root 3950 0.0 0.0 0 0 ? SW Feb21 3:38 [nfsd]
root 3951 0.0 0.0 0 0 ? SW Feb21 3:28 [nfsd]
root 3952 0.0 0.0 0 0 ? SW Feb21 3:35 [nfsd]
root 3953 0.0 0.0 0 0 ? SW Feb21 4:32 [nfsd]
root 3956 0.0 0.1 1612 824 ? S Feb21 0:02 /usr/sbin/rpc.mountd
root 21528 0.0 0.0 1356 500 pts/0 S 12:58 0:00 egrep nfs|mount|lock|stat

Momentan sind zwei NFS-Versionen verfügbar (Versionen 2 und 3 - sie werden NFSv2 bzw. NFSv3 genannt, um sie zu unterscheiden). NFS4 befindet sich noch in der Entwicklungsphase, und ist im Kernel als experimentell gekennzeichnet.

Bei NFS geht es um eine Datenstruktur, die file handle genannt wird. Dies ist eine Bitserie, die auf eindeutige Weise erlaubt, jedes Dateisystemobjekt (wie eine Datei, aber nicht nur Dateien) zu identifizieren. Sie enthält z.B. den Datei-Inode, aber auch einen Eintrag, der das Gerät, auf dem sich die Datei sich befindet, enthält. Daher können wir NFS als ein Dateisystem betrachten, das in ein Dateisystem eingebettet ist.