Kapitel 28. Verteilte Nutzung von Dateisystemen mit NFS

Inhaltsverzeichnis

28.1. Terminologie
28.2. Installieren des NFS-Servers
28.3. Konfigurieren des NFS-Servers
28.4. Konfigurieren der Clients
28.5. Weiterführende Informationen

Zusammenfassung

Das Verteilen und Freigeben von Dateisystemen über ein Netzwerk ist eine Standardaufgabe in Unternehmensumgebungen. Das bewährte Netzwerkdateisystem NFS arbeitet mit dem Verzeichnisdienst NIS zusammen. Wenn Sie ein sichereres Protokoll wünschen, das mit LDAP zusammenarbeitet und auch Kerberos nutzen kann, aktivieren Sie NFSv4. Zusammen mit pNFS können Sie so Engpässe bei der Leistung beseitigen.

NFS mit NIS macht ein Netzwerk für den Benutzer transparent. Mit NFS ist es möglich, arbiträre Dateisysteme über das Netzwerk zu verteilen. Bei entsprechendem Setup befinden sich Benutzer in derselben Umgebung, unabhängig vom gegenwärtig verwendeten Terminal.

28.1. Terminologie

Die folgenden Begriffe werden im YaST-Modul verwendet.

Exporte

Ein von einem NFS-Server exportiertes Verzeichnis, das von Clients in ihr System integriert werden kann.

NFS-Client

Der NFS-Client ist ein System, das NFS-Dienste eines NFS-Servers über das NFS-Protokoll verwendet. Das TCP/IP-Protokoll ist bereits in den Linux-Kernel integriert, weshalb keine zusätzliche Software installiert werden muss.

NFS-Server

Der NFS-Server stellt NFS-Dienste für Clients bereit. Die Ausführung eines Servers hängt von folgenden Daemons ab: nfsd (Worker), idmapd (Zuordnung von Benutzer- und Gruppennamen zu IDs und umgekehrt), statd (Dateisperrung) und mountd (Einhängen-Anforderungen).

pNFS

Parallel NFS, eine Protokollerweiterung für NFSv4. Alle pNFS-Clients können direkt auf die Daten auf einem NFS-Server zugreifen.

28.2. Installieren des NFS-Servers

Die NFS-Server-Software ist kein Bestandteil der Standardinstallation. Wenn Sie einen NFS-Server gemäß den Anweisungen unter Abschnitt 28.3, „Konfigurieren des NFS-Servers“ konfigurieren, werden Sie automatisch aufgefordert, die erforderlichen Pakete zu installieren. Alternativ installieren Sie das Paket nfs-kernel-server mit YaST oder Zypper.

Wie NIS ist NFS ein Client-Server-System. Ein Rechner kann jedoch beides gleichzeitig sein – er kann Dateisysteme im Netzwerk zur Verfügung stellen (exportieren) und Dateisysteme anderer Hosts mounten (importieren).

28.3. Konfigurieren des NFS-Servers

Die Konfiguration eines NFS-Servers kann über YaST oder manuell erfolgen. NFS kann für die Authentifizierung auch mit Kerberos kombiniert werden.

28.3.1. NFS mit Kerberos

Wenn die Kerberos-Authentifizierung für NFS verwendet werden soll, muss die GSS-Sicherheit aktiviert werden. Wählen Sie im ersten YaST-NFS-Server-Dialogfeld die Option GSS-Sicherheit aktivieren. Zur Verwendung dieser Funktion muss ein funktionierender Kerberos-Server zur Verfügung stehen. YaST richtet diesen Server nicht ein, sondern nutzt lediglich die über den Server bereitgestellten Funktionen. Wenn Sie die Authentifizierung mittels Kerberos verwenden möchten, müssen Sie zusätzlich zur YaST-Konfiguration mindestens die nachfolgend beschriebenen Schritte ausführen, bevor Sie die NFS-Konfiguration ausführen:

  1. Stellen Sie sicher, dass sich Server und Client in derselben Kerberos-Domäne befinden. Beide müssen auf denselben KDC-Server (Key Distribution Center) zugreifen und die Datei krb5.keytab gemeinsam verwenden (der Standardspeicherort auf allen Rechnern lautet /etc/krb5.keytab). Weitere Informationen zu Kerberos finden Sie unter Chapter 6, Network Authentication with Kerberos (↑Security Guide).

  2. Starten Sie den gssd-Dienst auf dem Client mit rcgssd start.

Weitere Informationen zum Konfigurieren eines kerberisierten NFS finden Sie über die Links in Abschnitt 28.5, „Weiterführende Informationen“.

28.4. Konfigurieren der Clients

Wenn Sie Ihren Host als NFS-Client konfigurieren möchten, müssen Sie keine zusätzliche Software installieren. Alle erforderlichen Pakete werden standardmäßig installiert.

28.4.1. Importieren von Dateisystemen mit YaST

Autorisierte Benutzer können NFS-Verzeichnisse eines NFS-Servers über das YaST-NFS-Clientmodul in den lokalen Dateibaum einhängen. Führen Sie dazu die folgenden Schritte aus:

Prozedur 28.1. Importieren von NFS-Verzeichnissen

  1. Starten Sie das YaST-NFS-Client-Modul.

  2. Klicken Sie auf dem Karteireiter NFS-Freigaben auf Hinzufügen. Geben Sie den Hostnamen des NFS-Servers, das zu importierende Verzeichnis und den Einhängepunkt an, an dem das Verzeichnis lokal eingehängt werden soll.

  3. Wenn Sie eine Firewall nutzen und den Zugriff auf den Dienst von Ferncomputern aus zulassen möchten, aktivieren Sie auf dem Karteireiter NFS-Einstellungen die Option Firewall-Port öffnen. Der Status der Firewall wird neben dem Kontrollkästchen angezeigt.

  4. Wenn Sie NFSv4 verwenden, vergewissern Sie sich, dass das Kontrollkästchen für NFSv4 aktivieren aktiviert ist und dass der NFSv4-Domänenname denselben Wert enthält, den der NFSv4-Server verwendet. Die Standarddomäne ist localdomain.

  5. Klicken Sie zum Speichern der Änderungen auf OK.

Die Konfiguration wird in /etc/fstab geschrieben und die angegebenen Dateisysteme werden eingehängt. Wenn Sie den YaST-Konfigurationsclient zu einem späteren Zeitpunkt starten, wird auch die vorhandene Konfiguration aus dieser Datei gelesen.

28.4.2. Manuelles Importieren von Dateisystemen

Voraussetzung für den manuellen Import eines Dateisystems von einem NFS-Server ist ein aktiver RPC-Port-Mapper. Diesen starten Sie durch Ausführung von rcrpcbind start als Root. Danach können ferne Dateisysteme mit mount wie lokale Partitionen in das Dateisystem eingehängt werden:

mount host:remote-pathlocal-path

Geben Sie zum Beispiel zum Import von Benutzerverzeichnissen vom nfs.example.com-Rechner folgendes Kommando ein:

mount nfs.example.com:/home /home

28.4.2.1. Verwenden des Diensts zum automatischen Einhängen

Ferne Dateisysteme können mit dem autofs-Daemon automatisch eingehängt werden. Fügen Sie den folgenden Eintrag in der Datei /etc/auto.master hinzu:

/nfsmounts /etc/auto.nfs

Nun fungiert das Verzeichnis /nfsmounts als Root-Verzeichnis für alle NFS-Einhängungen auf dem Client, sofern die Datei auto.nfs entsprechend ausgefüllt wurde. Der Name auto.nfs wurde nur der Einfachheit halber ausgewählt – Sie können einen beliebigen Namen auswählen. Fügen Sie der Datei auto.nfs wie folgt Einträge für alle NFS-Einhängungen hinzu:

localdata -fstype=nfs server1:/data
nfs4mount -fstype=nfs4 server2:/

Aktivieren Sie die Einstellungen durch Ausführung von rcautofs start als root. In diesem Beispiel wird /nfsmounts/localdata, das Verzeichnis /data von server1, mit NFS eingehängt und /nfsmounts/nfs4mount von server2 wird mit NFSv4 eingehängt.

Wenn die Datei /etc/auto.master während der Ausführung des Diensts autofs bearbeitet wird, muss die automatische Einhängung mit rcautofs restart erneut gestartet werden, damit die Änderungen wirksam werden.

28.4.2.2. Manuelles Bearbeiten von /ect/fstab

Ein typischer NFSv3-Einhängeeintrag in /etc/fstab sieht folgendermaßen aus:

nfs.example.com:/data /local/path nfs rw,noauto 0 0

Auch NFSv4-Einhängungen können der Datei /etc/fstab hinzugefügt werden. Verwenden Sie für diese Einhängungen in der dritten Spalte nfs4 statt nfs und stellen Sie sicher, dass das entfernte Dateisystem in der ersten Spalte nach nfs.example.com: als / angegeben ist. Eine typische Zeile für eine NFSv4-Einhängung in /etc/fstab sieht zum Beipsiel wie folgt aus:

nfs.example.com:/ /local/pathv4 nfs4 rw,noauto 0 0

Mit der Option noauto wird verhindert, dass das Dateisystem beim Starten automatisch eingehängt wird. Wenn Sie das jeweilige Dateisystem manuell einhängen möchten, können Sie das Einhängekommando auch kürzen, indem Sie nur den Einhängepunkt angeben:

mount /local/path

Beachten Sie, dass das Einhängen dieser Dateisysteme beim Start durch die Initialisierungsskripte des Systems geregelt wird, wenn die Option noauto nicht angegeben ist.

28.4.3. pNFS (paralleles NFS)

NFS wurde in den 1980er-Jahren entwickelt und gehört damit zu den ältesten Protokollen. Zum Freigeben kleinerer Dateien ist NFS völlig ausreichend. Wenn Sie dagegen große Dateien übertragen möchten oder wenn zahlreiche Clients auf die Daten zugreifen sollen, wird ein NFS-Server rasch zu einer Engstelle, die die Systemleistungen erheblich beeinträchtigt. Dies liegt daran, dass die Dateien rasch größer werden, wobei die relative Ethernet-Geschwindigkeit nicht ganz mithalten kann.

Wenn Sie eine Datei von einem normalen NFS-Server anfordern, werden die Metadaten der Datei nachgeschlagen, die Daten dieser Datei werden zusammengestellt und die Datei wird schließlich über das Netzwerk an den Client übertragen. Der Leistungsengpass wird jedoch in jedem Fall ersichtlich, unabhängig davon, wie groß oder klein die Dateien sind:

  • Bei kleinen Dateien dauert das Sammeln der Metadaten am längsten.

  • Bei großen Dateien dauert das Übertragen der Daten vom Server auf den Client am längsten.

pNFS (paralleles NFS) trennt die Metadaten des Dateisystems vom Speicherort der Daten und überwindet so diese Einschränkungen. Für pNFS sind dabei zwei Arten von Servern erforderlich:

  • Ein Metadaten- oder Steuerungsserver, der den gesamten verbleibenden Verkehr (nicht den Datenverkehr) abwickelt

  • Mindestens ein Speicherserver, auf dem sich die Daten befinden

Der Metadatenserver und die Speicherserver bilden gemeinsam einen einzigen logischen NFS-Server. Wenn ein Client einen Lese- oder Schreibvorgang startet, teilt der Metadatenserver dem NFSv4-Client mit, auf welchem Speicherserver der Client auf die Dateiblöcke zugreifen soll. Der Client kann direkt auf dem Server auf die Daten zugreifen.

SUSE Linux Enterprise unterstützt pNFS nur auf der Clientseite.

28.4.3.1. Konfigurieren eines pNTP-Clients mit YaST

Befolgen Sie die Anweisungen unter Prozedur 28.1, „Importieren von NFS-Verzeichnissen“; aktivieren Sie jedoch das Kontrollkästchen pNFS (v4.1) und (optional) NFSv4-Freigabe. YaST führt alle erforderlichen Schritte aus und schreibt die erforderlichen Optionen in die Datei /etc/exports.

28.4.3.2. Manuelles Konfigurieren eines pNTP-Clients

Beginnen Sie gemäß Abschnitt 28.4.2, „Manuelles Importieren von Dateisystemen“. Der Großteil der Konfiguration wird durch den NFSv4-Server ausgeführt. Der einzige Unterschied für pNFS besteht darin, dass die Option minorversion und der Metadatenserver MDS_SERVER in das Kommando mount eingefügt werden:

mount -t nfs4 -o minorversion=1 MDS_SERVER MOUNTPOINT

Als Hilfe für die Fehlersuche ändern Sie den Wert im Dateisystem /proc:

echo 32767 > /proc/sys/sunrpc/nfsd_debug
echo 32767 > /proc/sys/sunrpc/nfs_debug

28.5. Weiterführende Informationen

Außer auf den man-Seiten zu exports, nfs und mount stehen Informationen zum Konfigurieren eines NFS-Servers und -Clients unter /usr/share/doc/packages/nfsidmap/README zur Verfügung. Weitere Online-Dokumentation finden Sie auf folgenden Websites:


SUSE Linux Enterprise Desktop Administrationshandbuch 11 SP4