systemdjournalctl: Abfragen des systemd-JournalsudevDas 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.
Im Prinzip können alle Exporte allein mit IP-Adressen vorgenommen werden. Es ist ratsam, über ein funktionierendes DNS-System zu verfügen, um Zeitüberschreitungen zu vermeiden. DNS ist zumindest für die Protokollierung erforderlich, weil der mountd-Daemon Reverse-Lookups ausführt.
Die folgenden Begriffe werden im YaST-Modul verwendet.
Ein von einem NFS-Server exportiertes Verzeichnis, das von Clients in ihr System integriert werden kann.
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.
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).
NFSv3 ist die Implementierungsversion 3, die „alte“ zustandslose NFS, die die Clientauthentifizierung unterstützt.
NFSv4 ist die neue Implementationsversion 4, die die sichere Benutzerauthentifizierung über Kerberos unterstützt. Für NFSv4 ist nur ein einzelner Port erforderlich; diese Version eignet sich daher besser für Umgebungen hinter einer Firewall als NFSv3.
Das Protokoll wird als http://tools.ietf.org/html/rfc3530 angegeben.
Parallel NFS, eine Protokollerweiterung für NFSv4. Alle pNFS-Clients können direkt auf die Daten auf einem NFS-Server zugreifen.
Die NFS-Server-Software ist kein Bestandteil der Standardinstallation. Wenn Sie einen NFS-Server gemäß den Anweisungen unter Abschnitt 26.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).
Das lokale Einhängen von NFS-Volumes auf dem exportierenden Server wird bei SUSE Linux Enterprise-Systemen (wie bei allen Linux-Systemen für Unternehmen) nicht unterstützt.
Die Konfiguration eines NFS-Servers kann über YaST oder manuell erfolgen. NFS kann für die Authentifizierung auch mit Kerberos kombiniert werden.
Mit YaST können Sie einen Computer im Netzwerk als NFS-Server bereitstellen. Dies ist ein Server, der Verzeichnisse und Dateien an alle Hosts, die ihm Zugriff gewähren, oder an alle Mitglieder einer Gruppe exportiert. Der Server kann so außerdem Anwendungen bereitstellen, ohne dass die Anwendungen auf allen Hosts lokal installiert sein müssen.
Verfahren Sie wie folgt, um einen solchen Server einzurichten:
Starten Sie YaST, und wählen Sie › (siehe Abbildung 26.1, „Konfiguration des NFS-Servers“). Sie werden ggf. aufgefordert, weitere Software zu installieren.
Aktivieren Sie das Optionsfeld .
Wenn eine Firewall im System aktiv ist (SuSEFirewall2), aktivieren Sie die Option . YaST aktiviert den nfs-Service und passt so die Konfiguration für den NFS-Server an.
Überlegen Sie, ob die Verwendung der Option angebracht ist. Wenn Sie NFSv4 deaktivieren, unterstützt YaST lediglich NFSv3 und NFSv2.
Ist NFSv4 aktiviert, geben Sie außerdem den entsprechenden NFSv4-Domänennamen ein.
Stellen Sie sicher, dass der eingegebene Name dem Namen in der Datei /etc/idmapd.conf eines beliebigen NFSv4-Client enspricht, der auf diesen speziellen Server zugreift. Dieser Parameter wird für den idmapd-Dienst verwendet, der für die NFSv4-Unterstützung (auf dem Server und dem Client) erforderlich ist. Behalten Sie den Wert localdomain (der Standardwert) bei, wenn Sie keine speziellen Anforderungen haben.
Klicken Sie auf , wenn Sie einen sicheren Zugriff auf den Server benötigen. Als Voraussetzung hierfür muss Kerberos in der Domäne installiert sein und sowohl der Server als auch der Client müssen kerberisiert sein. Mit wechseln Sie zum nächsten Konfigurationsdialogfeld.
Klicken Sie im oberen Bereich des Dialogfelds auf . Das Verzeichnis wird exportiert.
Falls Sie die zulässigen Hosts nicht bereits konfiguriert haben, wird automatisch ein weiteres Dialogfeld geöffnet, in dem Sie die Client-Informationen und Optionen angeben. Geben Sie den Platzhalter für den Host ein. (In der Regel können Sie die Standardeinstellungen beibehalten).
Es gibt vier mögliche Typen von Platzhalterzeichen für den Host, die für jeden Host festgelegt werden können: ein einzelner Host (Name oder IP-Adresse), Netzgruppen, Platzhalterzeichen (wie *, womit angegeben wird, dass alle Computer auf den Server zugreifen können) und IP-Netzwerke.
Weitere Informationen zu diesen Optionen finden Sie auf der man-Seite zu exports.
Klicken Sie zum Beenden der Konfiguration auf .
Die Konfigurationsdateien für den NFS-Exportdienst lauten /etc/exports und /etc/sysconfig/nfs. Zusätzlich zu diesen Dateien ist /etc/idmapd.conf für die NFSv4-Serverkonfiguration erforderlich. Führen Sie zum Starten bzw. Neustarten der Dienste das Kommando systemctl restart nfsserver.service aus. Dies startet auch rpc.idmapd, wenn NFSv4 in /etc/sysconfig/nfs konfiguriert ist. Der NFS-Server ist von einem laufenden RPC-Portmapper abhängig. Daher wird auch der Portmapper-Service gestartet oder neu gestartet.
NFSv4 ist die aktuelle Version des NFS-Protokolls für SUSE Linux Enterprise Server. Die Verzeichnisse werden nunmehr in NFSv4 auf dieselbe Weise für das Exportieren vorbereitet wie in NFSv3.
In der bisherigen Version 11 von SUSE Linux Enterprise Server war das Einhängen mit Einbindung in /etc/exports obligatorisch. Dies wird weiterhin unterstützt, ist jedoch überholt.
Die Datei /etc/exports enthält eine Liste mit Einträgen. Mit jedem Eintrag wird ein Verzeichnis angegeben, das freigegeben wird. Zudem wird angegeben, wie das Verzeichnis freigegeben wird. Ein typischer Eintrag in /etc/exports besteht aus:
/shared/directory host(option_list)
Beispiel:
/export/data 192.168.1.2(rw,sync)
Hier wird die IP-Adresse 192.168.1.2 verwendet, um den erlaubten Client zu identifizieren. Sie können auch den Namen des Hosts, ein Platzhalterzeichen, mit dem mehrere Hosts angegeben werden (*.abc.com, * usw.) oder Netzwerkgruppen (@my-hosts) verwenden).
Eine detaillierte Erläuterung aller Optionen und der entsprechenden Bedeutungen finden Sie auf der man-Seite zu exports (man exports).
Die Datei /etc/sysconfig/nfs enthält einige Parameter, die das Verhalten des NFSv4-Server-Daemon bestimmen. Es ist wichtig, dass der Parameter NFS4_SUPPORT auf yes gesetzt wird. Der Parameter NFS4_SUPPORT bestimmt, ob der NFS-Server NFSv4-Exporte und -Clients unterstützt.
Jeder Benutzer eines Linux-Rechners verfügt über einen Namen und eine ID. idmapd führt die Name-zu-ID-Zuordnung für NFSv4-Anforderungen an den Server aus und sendet Antworten an den Client. Diese Datei muss auf dem Server und dem Client für NFSv4 ausgeführt werden, da NFSv4 nur Namen für die eigene Kommunikation verwendet.
Stellen Sie sicher, dass Benutzernamen und IDs (uid) Benutzern auf eine einheitliche Weise auf allen Rechnern zugewiesen werden, auf denen möglicherweise Dateisysteme mit NFS freigegeben werden. Dies kann mit NIS, LDAP oder einem beliebigen einheitlichen Domänenauthentifizierungsmechanismus in Ihrer Domäne erreicht werden.
Der Parameter Domain muss in der Datei /etc/idmapd.conf für den Client und den Server identisch festgelegt sein. Wenn Sie sich nicht sicher sind, belassen Sie die Domäne in den Server- und den Clientdateien als localdomain. Eine Beispielkonfigurationsdatei sieht folgendermaßen aus:
[General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = localdomain [Mapping] Nobody-User = nobody Nobody-Group = nobody
Weitere Informationen finden Sie auf den man-Seiten zu idmapd und idmapd.conf (man idmapd und man idmapd.conf).
Starten Sie den NFS-Serverdienst nach dem Ändern von /etc/exports oder /etc/sysconfig/nfs bzw. starten Sie den Dienst neu:
systemctl restart nfsserver.service
Wenn Sie /etc/idmapd.conf geändert haben, laden Sie die Konfigurationsdatei erneut:
killall -HUP rpc.idmapd
Wenn der NFS-Dienst beim Booten gestartet werden soll, führen Sie Folgendes aus:
systemctl enable nfsserver.service
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 . 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:
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 7, Network Authentication with Kerberos, Security Guide.
Starten Sie den gssd-Dienst auf dem Client mit systemctl start gssd.service.
Starten Sie den svcgssd-Dienst auf dem Server mit systemctl start svcgssd.service.
Weitere Informationen zum Konfigurieren eines kerberisierten NFS finden Sie über die Links in Abschnitt 26.5, „Weiterführende Informationen“.
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.
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:
Starten Sie das YaST-NFS-Client-Modul.
Klicken Sie auf dem Karteireiter auf . 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.
Wenn Sie NFSv4 verwenden, wählen Sie die Option auf der Registerkarte . Der muss zudem denselben Wert aufweisen, der beim NFSv4-Server verwendet wird. Die Standarddomäne ist localdomain.
Wenn die Kerberos-Authentifizierung für NFS verwendet werden soll, muss die GSS-Sicherheit aktiviert werden. Wählen Sie .
Wenn Sie eine Firewall nutzen und den Zugriff auf den Dienst von Ferncomputern aus zulassen möchten, aktivieren Sie auf dem Karteireiter die Option . Der Status der Firewall wird neben dem Kontrollkästchen angezeigt.
Klicken Sie zum Speichern der Änderungen auf .
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.
Voraussetzung für den manuellen Import eines Dateisystems von einem NFS-Server ist ein aktiver RPC-Port-Mapper. Der Start des Service nfs.service erfordert einige Vorsicht; starten Sie ihn daher mit systemctl start nfs.service 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
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 systemctl start autofs.service 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 systemctl restart autofs.service erneut gestartet werden, damit die Änderungen wirksam werden.
/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
Bei NFSv4-Einhängepunkten geben Sie nfs4 statt nfs in die dritte Spalte ein:
nfs.example.com:/data /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
Wenn die Option noauto nicht angegeben ist, wird das Einhängen dieser Dateisysteme beim Start durch die init-Skripte des Systems geregelt.
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.
Befolgen Sie die Anweisungen unter Prozedur 26.2, „Importieren von NFS-Verzeichnissen“; aktivieren Sie jedoch das Kontrollkästchen und (optional) . YaST führt alle erforderlichen Schritte aus und schreibt die erforderlichen Optionen in die Datei /etc/exports.
Beginnen Sie gemäß Abschnitt 26.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
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:
Die detaillierte technische Dokumentation finden Sie online unter SourceForge (http://nfs.sourceforge.net/).
Anweisungen zum Einrichten eines kerberisierten NFS finden Sie unter NFS Version 4 Open Source Reference Implementation (http://www.citi.umich.edu/projects/nfsv4/linux/krb5-setup.html).
Falls Sie Fragen zu NFSv4 haben, lesen Sie die Linux NFSv4-FAQ (http://www.citi.umich.edu/projects/nfsv4/linux/faq/).