Heim >System-Tutorial >LINUX >Ein vorläufiges Verständnis des NFS-Dienstes unter Linux

Ein vorläufiges Verständnis des NFS-Dienstes unter Linux

王林
王林nach vorne
2024-01-23 17:18:051198Durchsuche

Linux NFS服务的初步了解

Einführung in RPC

1) Der Dienstkonsument (Client) ruft den Dienst über Ortsgespräche an

2) Nach dem Empfang des Anrufs ist der Client-Stub dafür verantwortlich, Methoden, Parameter usw. zu einem Nachrichtentext zusammenzustellen, der über das Netzwerk übertragen werden kann

3) Der Client-Stub findet die Dienstadresse und sendet die Nachricht an den Server

4) Der Server-Stub dekodiert die Nachricht nach dem Empfang

5) Der Server-Stub ruft lokale Dienste basierend auf den Dekodierungsergebnissen auf;

6) Der lokale Dienst wird ausgeführt und die Ergebnisse werden an den Server-Stub zurückgegeben

7) Der Server-Stub verpackt die zurückgegebenen Ergebnisse in Nachrichten und sendet sie an den Verbraucher

8) Der Client-Stub empfängt die Nachricht und dekodiert sie

9) Der Servicekonsument erhält das Endergebnis.

Einführung in NFS NFS (Network File System) ist eines der von FreeBSD unterstützten Dateisysteme. Es ermöglicht Computern im Netzwerk, Ressourcen über das TCP/IP-Netzwerk zu teilen. In NFS-Anwendungen können lokale NFS-Clientanwendungen transparent Dateien lesen und schreiben, die sich auf dem Remote-NFS-Server befinden, genau wie beim Zugriff auf lokale Dateien.

Derzeit gibt es von NFS hauptsächlich zwei Versionen (NFSv2, NFSv3), zusätzlich zu Version 3 von NFSv2 und NFSv3, die weitere neue Funktionen unterstützt. Der Hauptunterschied sollte darin bestehen, dass NFSv2 das UDP-Protokoll für die Übertragung verwendet, sodass die Verbindung von NFSv2 möglich ist in komplexen Netzwerkumgebungen nicht so zuverlässig sein und NFSv3 unterstützt sowohl UDP- als auch TCP-Protokolle.

Ich habe gerade einen Blick darauf geworfen und festgestellt, dass Centos7 das NFSv4-Protokoll bereits unterstützt. Ich werde hier nicht einen Blick auf v4 werfen, wenn Sie Zeit haben.

Wenn der Client ein freigegebenes NFS-Volume bereitstellen möchte, sendet er eine RPC-Anfrage an den Server, und der NFS-Server sendet nach der Benutzerauthentifizierung ein zufälliges Cookie an den Client, sodass der Client dieses Cookie zur Authentifizierung dieser Anfragen verwenden kann . Das freigegebene Volume, auf das zugegriffen wird.

NFS-Authentifizierung unterstützt die integrierte IP-/Host-Berechtigungszuweisung und wird auch durch TCP-Wrapper eingeschränkt.

NFS-Dienst auf Redhat NFS-Unterstützung ist im Redhat-Kernel standardmäßig aktiviert und der Start des NFS-Servers wird über den NFS-Daemon gesteuert, der für die Bindung von Netzwerk-Sockets und RPC-Aufrufen verantwortlich ist. Außerdem ist ein Rpcbind-Dienst (in Redhat5 Portmap genannt) erforderlich. Wenn Sie den NFS-Dienst nicht im System finden, liegt das daran, dass das NFS-Utils-Paket nicht installiert ist. Dieses Paket enthält einige Tools und Dienstskripte.

Der gesamte NFS-Dienst umfasst wahrscheinlich Folgendes (aus der offiziellen Dokumentation von Red Hat kopiert, scheint aber etwas alt zu sein):

  • nfs – Starten Sie einen responsiven RPC-Prozess, um auf NFS zu reagieren
  • nfslock – Dies ist ein optionaler Dienst, der auf Clientanfragen zur Dateisperrung reagiert.
  • rpcbind(portmap) – Dies ist der Daemon-Prozess des RPC-Dienstes, der zum Herstellen von Verbindungen und zum Beantworten von RPC-Anfragen verwendet wird.

NFS-Dienst stellt diese RPC-Aufrufe (Funktionen) bereit:

  • rpc.mountd – Diese Funktion wird verwendet, um auf die Mount-Anfrage des Clients zu antworten und zu überprüfen, ob das angeforderte Dateisystem zur Verwendung berechtigt ist. Dieser Prozess wird vom NFS-Dienst gestartet.
  • rpc.nfsd – Der Hauptprozess (Funktion) des NFS-Dienstes.
  • rpc.lockd – Der Hauptaufruf (Funktion) des oben genannten NFSlock-Dienstes wird hauptsächlich verwendet, um auf Dateisperranfragen von Kunden zu reagieren.
  • rpc.statd – Dieser Aufruf (Funktion) wird hauptsächlich verwendet, um den Client zu benachrichtigen, wenn der NFS-Server neu startet oder abnormal herunterfährt, und wird vom NFSlock-Dienst aktiviert.
  • rpc.rquotad – Der NFS-Dienst wird zur Unterstützung von Quota-Aufrufen (Funktionen) verwendet.
NFS-Dienst konfigurieren NFS-Konfigurationsdatei befindet sich in /etc/exports

Die Standardeinstellung ist eine leere Datei. Sie müssen sie nur im folgenden Format konfigurieren: ein freigegebenes Volume pro Zeile
Host: Begrenzter Host (Domainname)

1. Einzelner Host oder IP

2. Platzhalter * (entspricht einem beliebigen Zeichen) oder ? (entspricht einem beliebigen einzelnen Zeichen), wird in Domänennamen oder Hostnamen verwendet
3.IP/MASKE, zum Beispiel 192.168.110.0/24

Optionen: Bereitstellungsoptionen, mit denen die Bereitstellungsberechtigungen des vorherigen Hosts eingeschränkt werden.

Häufige Optionen:

  • ro,rw: schreibgeschützt oder Lese-/Schreibzugriff
  • sync: Synchronisierung: Wenn die Schreibanforderung des Clients abgeschlossen ist, werden die Daten im Speicher sofort auf die Festplatte geschrieben. Dies ist sicher.
  • async: Asynchron: Wenn die Schreibanforderung des Clients abgeschlossen ist, schreibt der Server die Daten nicht sofort auf die Festplatte, sondern schreibt sie zu einem bestimmten Zeitpunkt (im Leerlauf oder ... wer weiß) auf die Festplatte, was die Möglichkeit schafft Datenverlust.
  • wdelay (Schreibverzögerung): Schreibverzögerung. Dies ist eine Optimierungsoption, die es dem Server ermöglicht, das Schreiben von Daten auf die Festplatte zu verzögern, sodass die beiden Daten mithilfe eines Schreibsystems auf die Festplatte geschrieben werden, wenn die zweite Schreibanforderung des Clients eintrifft Anruf .
  • nowdelay: Im Gegensatz zu oben kann es nur im Sync-Modus verwendet werden.
  • root_squash: „Squash“-Root, denn wenn der Client Dateien auf den Server schreibt, wird die vom Client geschriebene UID des Benutzers direkt dem Benutzer mit derselben UID des Servers zugeordnet, sodass die Dateien vom Root-Benutzer gespeichert werden auf dem NFS-Freigabe-Volume werden auf dem Server gespeichert. Der Endbesitzer und die Gruppe sind immer noch Root, was bestimmte Sicherheitsrisiken birgt, sodass Sie diese Option verwenden können, um Root auf den Benutzer „nfsnobody“ zu reduzieren.
  • all_squash: Alle Benutzer unterdrücken. Sie können anonuid=, anongid= verwenden, um anzugeben, welcher Benutzer unterdrückt werden soll.

Das obige ist der detaillierte Inhalt vonEin vorläufiges Verständnis des NFS-Dienstes unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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