Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was ist die Methode zur NFS-Installation und -Konfiguration unter Linux?

Was ist die Methode zur NFS-Installation und -Konfiguration unter Linux?

PHPz
PHPznach vorne
2023-05-19 19:46:101938Durchsuche

1. Serverseitige Software: Installieren Sie nfs-utils und portmap (rpcbind)
nfs-utils: Stellt Pakete für zwei NFS-Daemons bereit, rpc.nfsd und rpc.mountd
portmap: nfs kann tatsächlich als RPC-Server betrachtet werden Programm, und um ein RPC-Serverprogramm zu starten, müssen die entsprechenden Arbeiten des Ports erledigt werden, und solche Aufgaben werden von Portmap erledigt. Laienhaft ausgedrückt wird Portmap für die Portzuordnung verwendet.
Daemons, die NFS zum Starten benötigt
rpc.mountd: Verantwortlich für das NFS-Dateisystem. Wenn sich der Client über rpc.nfsd beim Server anmeldet, muss eine Reihe von Verwaltungsvorgängen für den Clientzugriff auf die Dateien des Servers durchgeführt werden

  • lockd: Verarbeitet Sperranforderungen über RPC-Pakete

  • statd: dient der NFS-Sperre. Bietet eine Absturzwiederherstellungsfunktion.

  • rquotad: verwaltet Kontingente, wenn Benutzer über nfsmount auf Remote-Servern mounten. statd, rpc.lockd (Die neue Version startet automatisch mit nfsd), rpc.rquotad

  • nf serverseitiger Befehl:
  • •yum install nfs-utils portmap

    •chkconfig rpcbind on #chkconfig: Aktualisieren und Systemdienste auf jeder Ausführungsebene abfragen
  • •chkconfig nfs on
  • •service rpcbind start

    •service nfs start

  • 2, serverseitige Konfigurationsdatei/etc/exports: Geben Sie das Verzeichnis und die Berechtigungen an, die freigegeben werden sollen man exports
  • Kopieren Code Der Code lautet wie folgt:

#: Ermöglicht Computern mit IP-Adressen im Bereich 192.168.0.* den Zugriff auf das Verzeichnis /home/work mit Lese- und Schreibberechtigungen. /home/work 192.168.0.* (rw,sync,root_squash)/home 192.168.1.105 (rw,sync)

/public * (rw,sync)


Jede Zeile der Konfigurationsdatei ist in zwei Abschnitte unterteilt : erstes Das erste Segment ist das freigegebene Verzeichnis unter Verwendung eines absoluten Pfads und das zweite Segment ist die Clientadresse und Berechtigungen.
Die Adresse kann das vollständige IP- oder Netzwerksegment verwenden, z. B. 10.0.0.8 oder 10.0.0.0/24, 10.0.0.0/255.255.255.0. Natürlich kann die Adresse auch den Hostnamen verwenden, entweder DNS-Auflösung oder lokal/. etc/hosts-Auflösung, unterstützt Platzhalter, zum Beispiel: *.chengyongxu.com

Berechtigungen sind:

rw: Lesen/Schreiben, Lesen/Schreiben; Hinweis: Wenn Sie es einfach auf „Lesen/Schreiben“ einstellen, können Sie immer noch nicht normal schreiben Stellen Sie außerdem das freigegebene Verzeichnis korrekt ein. Berechtigungen siehe Frage 7.

ro: schreibgeschützt, schreibgeschützt;
synchronisiert: Dateien werden gleichzeitig auf die Festplatte und den Speicher geschrieben. anstatt direkt in den Speicher zu schreiben;

no_root_squash: NFS-Client-Verbindung Wenn Sie Root auf dem Server verwenden, verfügen Sie auch über Root-Berechtigungen für das vom Server freigegebene Verzeichnis. Offensichtlich ist das Einschalten unsicher.

root_squash: Wenn der NFS-Client beim Herstellen einer Verbindung mit dem Server root verwendet, verfügt er über anonyme Benutzerberechtigungen für das vom Server freigegebene Verzeichnis. Normalerweise verwendet er die Identität „nobody“ oder „nfsnobody“. der Dienst Welcher Benutzer wird am Ende verwendet? Alle auf dem Server freigegebenen Verzeichnisse haben anonyme Benutzerberechtigungen;

anonuid: der UID-Wert des anonymen Benutzers, normalerweise „nobody“ oder „nfsnobody“, der hier festgelegt werden kann; Wert GID-Wert.




NFS-Client-Benutzerzuordnung:
Der Client-Anmeldebenutzer ist Root oder ein anderer Benutzer. Anschließend wird entsprechend der serverseitigen NFS-Serverkonfiguration die entsprechende Clientverbindung dem serverseitigen NFS-Benutzer als Root oder dem angegebenen Benutzer zugeordnet Benutzereinstellungen (über anonuid oder anongid), nfsnobody usw. Schließlich beeinflussen die Berechtigungen des Zuordnungsbenutzers und des freigegebenen Verzeichnisses gemeinsam, ob die Clientverbindung über Lese- und Schreibberechtigungen verfügt.

Client- und Server-Benutzerzuordnung manuell festlegen, Parameter: map_static=/etc/nfs.map

/etc/nfs.map-Dateizuordnungsinhalt ist wie folgt:
# remote local

gid 500 1000

uid 500 2003


Referenz: In Bezug auf die Beschreibung der Identität des Benutzers, der eine Verbindung zum NFS-Client herstellt, wurde die folgende Beschreibung nicht überprüft:

• Wenn der Client eine Verbindung herstellt, prüfen Sie, ob normale Benutzer vorhanden sind, Nr. 1. Wenn die Identität des normalen Benutzers eindeutig auf eingestellt ist komprimiert werden, dann wird zu diesem Zeitpunkt die Identität des Client-Benutzers in den angegebenen Benutzer Nr. 2 konvertiert. Wenn es einen Benutzer mit demselben Namen auf dem NFS-Server gibt, wird die Identität des Client-Anmeldekontos in konvertiert Benutzer mit demselben Namen auf dem NFS-Server Nr. 3 Wenn kein Benutzer mit demselben Namen vorhanden ist, wird die Benutzeridentität zu diesem Zeitpunkt in „nfsnobody“ komprimiert ist aktiviert, Nr. 1. Wenn no_root_squash festgelegt ist, wird die Root-Benutzeridentität auf dem NFS-Server in Root komprimiert, Nr. 2. Wenn all_squash, anonuid und anongid festgelegt sind, wird die Root-Identität auf den angegebenen Benutzer komprimiert. Wenn Nr.3 nicht explizit angegeben ist, wird der Root-Benutzer auf nfsnobody komprimiert. Nr.4 Wenn no_root_squash und all_squash gleichzeitig angegeben werden, wird der Root-Benutzer auf nfsnobody komprimiert, wenn anonuid und anongid festgelegt sind. Sie werden auf den angegebenen Benutzer und die angegebene Gruppe komprimiert


3, Änderung der Firewall-Einstellungen

Standardmäßig wird nach der Installation der Centos6-Serverversion nur Port 22 in der Firewall-IPtables-Konfiguration geöffnet.

Geben Sie die NFS-dienstbezogenen Ports in der NFS-Konfigurationsdatei /etc/sysconfig/nfs an und ändern Sie die Firewall, um die entsprechenden Ports freizugeben

Code kopieren Der Code lautet wie folgt:


#Port rpc.mountd sollte mithören. Port rpc.statd sollte aufhören.
#statd_port=662
#/usr/sbin/rpc.rquotad .
#lockd_tcpport=32803
#udp-Port rpc.lockd sollte lauschen Service-Port), 2049 (NFS-Service-Port)


4, /etc /hosts.allow Konfigurationsänderung

/etc/hosts.allow, /etc/ hosts.deny beschreibt, welche Hosts den lokalen Inet-Dienst nutzen dürfen.
Die Standardeinstellung hier scheint nicht zu ändern, aber es ist am besten, sie so festzulegen, dass nur die erforderliche Client-Maschine eine Verbindung herstellen kann und dann Verbindungen von anderen Maschinen verweigert werden
#Name des Dienstprozesses: Hostliste : Kann verwendet werden, wenn die Regeln mit der ausgewählten Befehlsoperation übereinstimmen
server_name:hosts-list[:command]
Regeln hinzufügen, um den Clientzugriff in /etc/hosts.allow
all:127.0.0.1 zu ermöglichen #Lokalen Zugriff zulassen Alle Dienstprozesse auf diesem Computer

alle:192.168.0.135 #192.168.0.135 Client-Computer den Zugriff auf alle Dienstprozesse auf diesem Computer erlauben

smbd:192.168.0.0/255.255.255.0 #IP zulassen Adressen im Netzwerksegment, um auf den SMBD-Dienst zuzugreifen

sshd:192.168.100.0/255.255.255.0                                                                                                                                                                                                     ​​​​ #60.28.160.244 vom externen Netzwerk aus auf diesen Server zugreifen lassen Der SSHD-Prozess

Die Verbindung Informationen zu Anmeldeversuchen, die in /etc/hosts.deny verboten sind, können auch so eingestellt werden, dass sie aufgezeichnet und an die Mailbox des Benutzers gesendet werden. 5, ändern Sie die freigegebenen Verzeichnisberechtigungen auf 760 und ändern Sie das Verzeichnis aller Gruppen auf nfsnobody
Referenz: Frage 7


6, Client-Mount
: Führen Sie die folgenden Anweisungen aus, um das vom NFS-Server freigegebene /home (IP-Adresse 192.168.1.45) im lokalen Verzeichnis /mnt/nfs/home bereitzustellen.
showmount -e nfs-serverip: Zeigt die vom NFS-Server gemeinsam genutzten Ressourcen an
mount -t nfs 192.168.1.45:/home /mnt/nfs/home

#🎜🎜 # 7. NFS-Leistungstest:


• Stellen Sie angemessene wsize- und rsize-Werte entsprechend der Befehlszeit dd if=/dev/zero of=/mnt/home bs=16k count ein =16384# 🎜🎜#•Stellen Sie entsprechend der Anzahl der NFS-Clients die entsprechende Anzahl der NFS-Serverprozesse rpcnfsdcount in der Konfigurationsdatei /etc/sysconfig/nfs ein. Der Standardwert ist 8

exportfs-Befehl: Wenn wir NFS starten, nachdem ich /etc/exports erneut geändert habe, muss ich NFS neu starten? Zu diesem Zeitpunkt können wir den Befehl exportfs verwenden, damit die Änderungen sofort wirksam werden. Das Befehlsformat lautet wie folgt:

exportfs [-aruv] -a: Mounten Sie den gesamten Inhalt von /etc/exports -r : Remount /etc/ In Exporten freigegebenes Verzeichnis -u: umount-Verzeichnis -v: Beim Exportieren detaillierte Informationen auf dem Bildschirm ausgeben. showmount-Befehl: Zeigt die Mount-Informationen des NFS-Servers an.
showmount -e [NFS-Server]: Zeigt das exportierte Verzeichnis auf dem angegebenen NFS-Server an. Wenn die nachfolgende IP nicht angegeben ist, wird das extern freigegebene Verzeichnis angezeigt, wenn der Computer als NFS-Server verwendet wird. .
rpcinfo -p Befehl: RPC-Informationen anzeigen -p Parameter: Verwenden Sie das RPC-Protokoll, um das auf dem Host verwendete RPCbind zu erkennen und alle registrierten RPC-Programme anzuzeigen.

nfsstat-Befehl: Zeigt den Betriebsstatus von nfs an, was sehr hilfreich ist, um den Betrieb von nfs anzupassen

Probleme lösen, die während des Prozesses auftreten:
#🎜 🎜## 🎜🎜#1. Nach der Installation von portmap über yum oder rpm habe ich beim Ausführen des Befehls service portmap start den folgenden Fehler festgestellt: portmap: unrecognized service.
In Centos6 (Linux-Kernel 2.6.32) wurde Portmap durch rpcbind ersetzt. Wenn Sie die Installationsinformationen sorgfältig prüfen, werden Sie feststellen, dass rpcbind installiert ist, wenn Sie den Befehl yum install portmap ausführen. Nach Abschluss der Installation können Sie detaillierte Informationen auch über den folgenden Befehl anzeigen: yum whatprovides portmap.

2, Wenn der Client gemountet ist, wird der Fehler mount clntudp_create: rpc: Port-Mapper-Fehler – rpc: nicht möglich zu empfangen gemeldet. •1. Verwenden Sie den Befehl rpcinfo -p, um den normalen Start des Portmap-Dienstes und den entsprechenden Port (Standard 111) zu überprüfen.

•2. Überprüfen Sie die Firewall /etc/sysconfig/iptables Einstellungen, um TCP zuzulassen, auf Port 111 von UDP zuzugreifen und dann den Dienst iptables neu zu starten

•3, überprüfen Sie /etc/hosts.deny, /etc/hosts.allow, um zu sehen, ob die Client-Verbindung blockiert ist
# 🎜🎜#3, Wenn der Client den Befehl showmount -e nfs-server ausführt, wird ein Fehler gemeldet: mount clntudp_create: rpc: Programm nicht registriert.

nfs- und rpcbind-Dienste werden nicht gestartet. Verwenden Sie chkconfig, um nfs und rpcbind zu den Systemdiensten hinzuzufügen und verwenden Sie service, um sie zu starten.

Oder fügen Sie die Regel all:192.168 hinzu, um den Clientzugriff in /etc/hosts zu ermöglichen. erlauben. 0,135

4, Wenn der Client den Befehl showmount -e nfs-server ausführt, wird ein Fehler gemeldet: rpc mount export: rpc: unfähig zum Empfangen; errno = keine Route zum Host
Konfigurationsdatei: /etc/ sysconfig/nfs
Suchen Sie den Ort, an dem die Porteinstellungen für den NFS-Dienst festgelegt sind, und geben Sie nach dem Entfernen der Kommentare in den iptables-Firewalleinstellungen an, dass UDP- und TCP-Flüsse der entsprechenden Ports passieren dürfen.
#mountd_port=892
#statd_port=662
#lockd_tcpport=32803
#lockd_udpport=32769
iptables -a input -p tcp --dport 662 -m state --state new -j akzeptieren
iptables -a input -p udp --dport 661 -m state --state new -j akzeptieren

5, showmount -e nfs-server erfolgreich, Beim formellen Mounten tritt ein Fehler auf: Mounten auf NFS-Server „192.168.1.5“ fehlgeschlagen: Systemfehler: Keine Route zum Host Dies liegt daran, dass der Standardport 2049 des NFS-Dienstes von der Firewall blockiert wird. Ändern Sie iptables, um Port 2049 zuzulassen.

6, showmount -e nfs-server ist erfolgreich und es wird ein Fehler gemeldet, wenn der offizielle Mount lautet: mount: mount to nfs server '192.168.1.5' fehlgeschlagen: Zeitüberschreitung (erneuter Versuch).
Edit/etc /sysconfig/iptables, der TCP-Port des relevanten Ports darf passieren, aber UDP ist nicht erlaubt. Weitere mögliche Gründe finden Sie unter: Der Mount-Befehl schlägt mit dem Fehler „NFS-Server fehlgeschlagen“ fehl.
Namenssuchanfragen vom NFS-Server an einen DNS-Server deaktivieren
oder die vom NFS-Client verwendete NFS-Version ist eine andere als Version 3 .# 🎜🎜#

7, das Verzeichnisberechtigungsattribut in der Exportkonfigurationsdatei ist auf rw gesetzt (Standard ist root_squash), aber beim Ausführen des Touch-Befehls im Mount-Verzeichnis des Clients tritt ein Fehler auf: touch: Touch nicht möglich „a“: Erlaubnis verweigert. Lösung:

•Überprüfen Sie die serverseitigen Berechtigungen für freigegebene Verzeichnisse ll -d /home

•Ändern Sie die serverseitigen Berechtigungen für freigegebene Verzeichnisse chown 760 /home (der Dateieigentümer root hat volle Berechtigungen und Der Benutzer der Dateieigentümergruppe hat Lese- und Schreibberechtigungen, aber andere Benutzer haben keine Berechtigungen, und setzen Sie dann die Gruppe des Verzeichnisses auf nfsnobody /passwd |. grep nob)
• chgrp nfsnobody /home
•Eine neue Datei auf dem Client erstellt!

Das obige ist der detaillierte Inhalt vonWas ist die Methode zur NFS-Installation und -Konfiguration unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen