Funktionsprinzip und Beispielanalyse des Linux-NFS-Mechanismus

Funktionsprinzip und Beispielanalyse des Linux-NFS-Mechanismus

Was ist NFS?

Netzwerkdateisystem

Eine Methode oder ein Mechanismus zum Speichern und Organisieren von Dateien über ein Netzwerk.

Warum NFS verwenden?

Alle Front-End-Anwendungsserver empfangen von Benutzern hochgeladene Bilder, Dateien und Videos und legen sie im Back-End-Speicher ab.

Die Vorteile von Shared Storage: bequemes Suchen und Abrufen von Daten. Die Nachteile: hohe Belastung des Speicherservers und bei einem Ausfall gehen sämtliche Daten verloren.

So funktioniert NFS

NFS-Funktionen verfügen über viele Dienste, von denen jeder seinen eigenen Port hat und sich häufig ändert.

Wenn der Client nach diesen Ports sucht, benötigt er einen Vermittler – den RPC-Dienst (Standard-Portnummer 111).

Arbeitsablauf:

1. Starten Sie den RPC-Dienst

2. Starten Sie den NFS-Dienst (und registrieren Sie den Startport beim RPC-Dienst)

3. Der Client fordert den NFS-Dienst von RPC an

4.RPC gibt den Port an den Client zurück

5. Der Client verwendet die zurückgegebene Portadresse, um NFS zur Datenübertragung aufzufordern.

NFS-Dienst installieren

Installation: yum install nfs-utils rpcbind

Ansicht: rpm -qa nfs-utils rpcbind

Starten Sie den Dienst und stellen Sie ihn so ein, dass er beim Booten automatisch gestartet wird: systemctl start rpcbind.service systemctl enable rpcbind.service

systemctl NFS starten systemctl NFS aktivieren

Konfigurieren von NFS

NFS-Konfigurationsdatei /etc/exports

Führen Sie den Befehl „man exports“ aus, um Folgendes zu finden:

Das Format der Konfigurationsdatei ist:

Hosts (Berechtigungen) für den Zugriff auf das freigegebene Verzeichnis

①Freizugebendes Verzeichnis: Verzeichnis für den Datenzugriff

②Zugreifender Host: Einzelner Host: 172.16.1.7 oder Hostnamensegment: 172.16.1.0/24 oder 172.16.1.*

③Berechtigungen: rw lesbar, ro schreibgeschützt, sync auf Remote-Festplatte schreiben (langsam, sicher), async, asynchron in Remote-Puffer schreiben (schnell, unsicher)

root_squash anonuid=UID des anonymen Benutzers anongid=GID des anonymen Benutzers

all_squash Egal welcher Benutzer der Client ist, er wird auf dem Server als nfsnobody behandelt

[root@nfs01 ~]# vim /etc/exports

Hinweis: Ein Verzeichnis kann gleichzeitig mit mehreren Hosts geteilt werden, wie in der Testabbildung oben gezeigt. Beachten Sie, dass zwischen der Klammer und dem vorhergehenden Zeichen kein Leerzeichen steht.

Erstellen Sie ein Verzeichnis: [root@nfs01 ~]# mkdir -p /data

Der Standardbenutzer von NFS ist nfsnobody, daher müssen Sie das Verzeichnis autorisieren: [root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data

NFS neu starten: [root@nfs01 ~]# systemctl reload nfs oder exportfs -r (sanfter Neustart)

prüfen:

Öffnen Sie die virtuelle Maschine web01 und installieren Sie die RPC- und NFS-Dienste (im Prinzip muss der Client nur RPC installieren, aber wir testen hier den Befehl showmount).

Mounten Sie das freigegebene Verzeichnis und erstellen Sie eine Testdatei

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierung von Python zur Überwachung von USB-Gerätesignalen unter Linux
  • Detaillierte Erklärung zum Schreiben von Linux-USB-Hosttreibern
  • Arm-Linux verwendet Alsa-Treiber und ein USB-Audiogerät
  • So verwenden Sie mobilen USB-Speicher unter Linux
  • Verwenden von USB-Speicher in einer Linux-Umgebung
  • Detaillierte Analyse des Linux-NFS-Mechanismus anhand von Fällen
  • IntelliJ IDEA führt Remote-Debugging für Linux-Java-Programme durch. Suchen Sie nach Problemen, ohne nur im Protokoll nachzusehen (empfohlen)
  • Verwendung des Linux-Befehls bzip2
  • So verwenden Sie libudev in Linux, um die VID und PID eines USB-Geräts abzurufen

<<:  Drei Möglichkeiten zum Kopieren von MySQL-Tabellen (Zusammenfassung)

>>:  So konfigurieren Sie einen Pfadalias für das React-Scaffolding

Artikel empfehlen

So lösen Sie das Problem, dass der Docker-Container keinen Vim-Befehl hat

Finden Sie das Problem Als ich heute versuchte, d...

Über das WeChat-Gleitproblem des UniApp-Editors

Das Uniapp-Applet wird ein ähnliches Dropdown-Pro...

Erläuterung verschiedener Möglichkeiten zum Ausführen von Tomcat unter Linux

Tomcat unter Linux starten und herunterfahren Sta...

CSS-Lösung für mehrspaltiges Layout

1. Feste Breite + adaptiv Erwarteter Effekt: fest...

CSS float (float, clear) beliebte Erklärung und Erfahrungsaustausch

Ich bin schon vor langer Zeit mit CSS in Berührun...

Lösung für das Datenasymmetrieproblem zwischen MySQL und Elasticsearch

Lösung für das Datenasymmetrieproblem zwischen My...

Detaillierte Erklärung der GaussDB zur MySQL-Leistungsoptimierung

Inhaltsverzeichnis Hintergrund Inspiration kommt ...

Code zum Anzeigen des Inhalts eines TXT-Buchs auf einer Webseite

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

Detaillierte Erläuterung der MySQL-Transaktionsverarbeitung

1. MySQL-Transaktionskonzept MySQL-Transaktionen ...

Wann sollte man Map anstelle einfacher JS-Objekte verwenden?

Inhaltsverzeichnis 1. Map akzeptiert jeden Schlüs...

Bild-Scrolling-Effekt mit CSS3 erstellt

Ergebnisse erzielenImplementierungscode html <...