Eine kurze Analyse der Prinzipien von NFS-Servern und der Schritte zum Erstellen, Konfigurieren und Bereitstellen dieser

Eine kurze Analyse der Prinzipien von NFS-Servern und der Schritte zum Erstellen, Konfigurieren und Bereitstellen dieser

Einführung in den NFS-Dienst

Was ist NFS?

  • NFS ist die Abkürzung für Network File System. Seine wichtigste Funktion besteht darin, dass verschiedene Maschinen und Betriebssysteme über das Netzwerk Dateien untereinander austauschen können.
  • Der NFS-Server ermöglicht es dem PC, das vom NFS-Server im Netzwerk freigegebene Verzeichnis in das lokale Dateisystem einzubinden. Aus der Sicht des lokalen Systems ist das Verzeichnis des Remote-Hosts wie eine seiner eigenen Festplattenpartitionen, was sehr praktisch zu verwenden ist.
  • NFS wird im Allgemeinen zum Speichern statischer Daten wie freigegebener Videos und Bilder verwendet.

NFS-Montageprinzipien

Bildbeschreibung hier einfügen

Diagramm der Servermontagestruktur

Wie oben gezeigt:

Nachdem wir auf dem NFS-Server ein gemeinsames Verzeichnis /home/public eingerichtet haben,

Andere NFS-Clients, die Zugriff auf den NFS-Server haben, können dieses Verzeichnis an einem Einhängepunkt in ihrem eigenen Dateisystem einhängen.

Dieser Einhängepunkt kann von Ihnen selbst definiert werden

Wie in der Abbildung oben gezeigt, sind die von Client A und Client B gemounteten Verzeichnisse unterschiedlich.

Und nach dem Mounten können wir alle Daten des Servers /home/public lokal sehen.

  • Wenn der Server den Client auf schreibgeschützt konfiguriert, kann der Client nur schreibgeschützte Daten verwenden.
  • Wenn Lesen und Schreiben konfiguriert sind, kann der Client lesen und schreiben.

Nach dem Mounten überprüft der NFS-Client die Festplatteninformationen mit dem Befehl: #df –h.

Da NFS Daten zwischen Server und Client über das Netzwerk überträgt, müssen für die Datenübertragung zwischen beiden entsprechende Netzwerkports vorhanden sein.

Welchen Port nutzt der NFS-Server zur Datenübertragung?

Grundsätzlich ist der Port des NFS-Servers auf 2049 geöffnet, das Dateisystem ist allerdings sehr kompliziert.

Daher verfügt NFS über andere Programme, um zusätzliche Ports zu starten. Diese zusätzlichen Ports zur Datenübertragung werden zufällig ausgewählt und sind Ports kleiner als 1024.

Da es zufällig ist, woher weiß der Client, welchen Port der NFS-Server verwendet?

Derzeit ist eine Implementierung über das Remote Procedure Call (RPC)-Protokoll erforderlich!

Kommunikationsprinzipien zwischen RPC und NFS

Da NFS eine ganze Reihe von Funktionen unterstützt und verschiedene Funktionen zum Starten unterschiedliche Programme verwenden, werden bei jedem Start einer Funktion einige Ports zur Datenübertragung aktiviert. Daher sind die den NFS-Funktionen entsprechenden Ports nicht festgelegt. Der Client muss die relevanten Ports auf dem NFS-Server kennen, um eine Verbindung zur Datenübertragung herzustellen. RPC ist ein Dienst zur einheitlichen Verwaltung von NFS-Ports, und der einheitliche externe Port ist 111. RPC zeichnet die Informationen des NFS-Ports auf, sodass wir RPC verwenden können, um Portinformationen zwischen dem Server und dem Client auszutauschen. Die Hauptfunktion von PRC besteht darin, die jeder NFS-Funktion entsprechende Portnummer anzugeben und den Client zu benachrichtigen, dass der Client eine Verbindung zum normalen Port herstellen kann.

Woher kennt RPC also den Port für jede NFS-Funktion?

Wenn NFS gestartet wird, werden zunächst zufällig einige Ports verwendet. Anschließend registriert NFS diese Ports bei RPC, RPC zeichnet diese Ports auf und RPC öffnet Port 111 und wartet auf die RPC-Anforderung des Clients. Wenn der Client eine Anforderung hat, informiert das serverseitige RPC den Client über die zuvor aufgezeichneten NFS-Portinformationen. Auf diese Weise erhält der Client die Portinformationen des NFS-Servers und überträgt Daten über den tatsächlichen Port.

Beachten:

Bevor Sie den NFS-Server starten, müssen Sie zuerst den RPC-Dienst starten (also den Portmap-Dienst, siehe unten).

Andernfalls kann sich der NFS-SERVER nicht beim RPC-Servicebereich registrieren.

Darüber hinaus gehen beim Neustart des RPC-Dienstes alle registrierten NFS-Portdaten verloren.

Daher muss das vom RPC-Dienst verwaltete NFS-Programm ebenfalls neu gestartet werden, um sich erneut bei RPC zu registrieren.

Besondere Aufmerksamkeit:

Im Allgemeinen müssen Sie NFS nach der Änderung des NFS-Konfigurationsdokuments nicht neu starten. Sie können den Befehl systemctl reload nfs oder exportfs –rv direkt ausführen, damit die geänderten /etc/exports wirksam werden.

Kommunikationsprozess zwischen NFS-Client und NFS-Server

Bildbeschreibung hier einfügen

  • Starten Sie zunächst den RPC-Dienst auf dem Server und öffnen Sie Port 111
  • Der Server startet den NFS-Dienst und registriert die Portinformationen bei RPC
  • Der Client startet den RPC (Portmap-Dienst) und fordert vom RPC (Portmap)-Dienst des Servers den NFS-Port des Servers an.
  • Der RPC-Dienst (Portmap) des Servers gibt die NFS-Portinformationen an den Client zurück.
  • Der Client stellt über den erhaltenen NFS-Port eine NFS-Verbindung mit dem Server her und überträgt Daten.

NFS-Serverbereitstellung unter Linux

Für den NFS-Dienst erforderliche Software und Hauptkonfigurationsdateien

Um den NFS-Dienst zu installieren, müssen Sie zwei Softwareprogramme installieren:

RPC-Hauptprogramm: rpcbind

NFS kann tatsächlich als RPC-Dienst betrachtet werden, da wir vor dem Starten eines RPC-Dienstes die Portzuordnungsarbeit erledigen müssen und diese Arbeit tatsächlich in der Verantwortung des Dienstes „rpcbind“ liegt!

Das heißt, bevor wir einen RPC-Dienst starten, müssen wir rpcbind starten! (Vor CentOS 5.x hieß diese Software portmap und nach CentOS 6.x rpcbind!).

NFS-Hauptprogramm: nfs-utils

Es ist die Software, die die beiden NFS-Daemons rpc.nfsd und rpc.mountd sowie andere zugehörige Dokumente und Anweisungen, ausführbare Dateien usw. bereitstellt! Dies ist die wichtigste für den NFS-Dienst erforderliche Software.

NFS-bezogene Dateien

  • Hauptkonfigurationsdatei: /etc/exports
    Dies ist die Hauptkonfigurationsdatei für NFS. Diese Datei ist leer und existiert auf manchen Systemen möglicherweise nicht. Sie wird hauptsächlich manuell erstellt. Die NFS-Konfiguration muss im Allgemeinen nur in dieser Datei konfiguriert werden.
  • Befehl zur Wartung des NFS-Dateisystems: /usr/sbin/exportfs
    Dies ist ein Befehl zum Verwalten von freigegebenen NFS-Ressourcen. Sie können diesen Befehl verwenden, um in /etc/exports geänderte Verzeichnisressourcen erneut freizugeben oder vom NFS-Server freigegebene Verzeichnisse auszuhängen oder erneut freizugeben.
  • Anmeldedatei für gemeinsam genutzte Ressourcen: /var/lib/nfs/*tab
    Die Anmeldedateien des NFS-Servers werden im Verzeichnis /var/lib/nfs/ abgelegt. In diesem Verzeichnis befinden sich zwei wichtige Anmeldedateien. Eine davon ist etab, die hauptsächlich die vollständigen Berechtigungseinstellungen des von NFS freigegebenen Verzeichnisses aufzeichnet; die andere ist xtab, die die relevanten Clientdaten aufzeichnet, die mit diesem NFS-Server verbunden wurden.
  • Der Client fragt den Server für gemeinsam genutzte Ressourcen ab: /usr/sbin/showmount
    Dies ist eine weitere wichtige NFS-Direktive. exportfs wird auf der NFS-Serverseite verwendet, während showmount hauptsächlich auf der Clientseite verwendet wird. Mit „showmount“ können die von NFS gemeinsam genutzten Verzeichnisressourcen angezeigt werden.

Schritte zum Installieren des NFS-Dienstes auf dem Server

Schritt 1: Installieren Sie NFS und RPC

[root@localhost ~]# yum install -y nfs-utils   
#Installieren Sie den NFS-Dienst [root@localhost ~]# yum install -y rpcbind
#RPC-Dienst installieren

Schritt 2: Starten Sie den Dienst und stellen Sie ihn so ein, dass er startet

Hinweis: Starten Sie zuerst den RPC-Dienst und dann den NFS-Dienst.

[root@localhost ~]# systemctl start rpcbind #Starten Sie zuerst den RPC-Dienst[root@localhost ~]# systemctl enable rpcbind #Richten Sie den Bootvorgang ein[root@localhost ~]# systemctl start nfs-server nfs-secure-server      
#Starten Sie den NFS-Dienst und den sicheren NFS-Übertragungsdienst [root@localhost ~]# systemctl enable nfs-server nfs-secure-server
[root@localhost /]# Firewall-cmd --permanent --add-service=nfs
Erfolg #Konfigurieren Sie die Firewall, um den NFS-Dienst freizugeben [root@localhost /]# firewall-cmd --reload 
Erfolg

Schritt 3: Konfigurieren Sie das freigegebene Dateiverzeichnis und bearbeiten Sie die Konfigurationsdatei

Erstellen Sie zuerst ein freigegebenes Verzeichnis und bearbeiten Sie dann die Konfiguration in der Konfigurationsdatei /etc/exports.

[root@localhost /]# mkdir /public
#Erstellen Sie ein öffentliches freigegebenes Verzeichnis [root@localhost /]# vi /etc/exports
	/öffentlich 192.168.245.0/24(ro)
	/geschützt 192.168.245.0/24 (rw)
[root@localhost /]# systemctl nfs neu laden 
#Laden Sie den NFS-Dienst neu, damit die Konfigurationsdatei wirksam wird

Beschreibung der Konfigurationsdatei:

  • Format: Der Pfad des freigegebenen Verzeichnisses, auf das der NFS-Client zugreifen darf (Freigabeberechtigungsparameter)
    Wie oben gezeigt ist das freigegebene Verzeichnis /public , die Clients, die darauf zugreifen dürfen, sind die Netzwerkbenutzer 192.168.245.0/24 und die Berechtigung ist schreibgeschützt.
    Beachten Sie, dass zwischen der NFS-Clientadresse und den Berechtigungen kein Leerzeichen steht.
    NFS Exportschutz erfordert kerberos -Verschlüsselung ( none , sys , krb5 , krb5i , krb5p ), Format sec=XXX
  • none : Zugriff als anonymer Benutzer. Um Schreibvorgänge zuzulassen, ordnen Sie den Benutzer nfsnobody zu und aktivieren Sie den Booleschen Schalter.
    setzebool nfsd_anon_write 1
  • sys : Der Dateizugriff basiert auf dem Standarddateizugriff. Wenn nicht angegeben, ist der Standardwert sys, wobei jedem gesendeten Benutzernamen vertraut wird
  • krb5 : Der Client muss eine Kennung angeben und die Client-Darstellung muss ebenfalls krb5 sein, basierend auf der Domänenumgebungsauthentifizierung.
  • krb5i : Führt Verschlüsselungsvorgänge basierend auf krb5 aus, verschlüsselt das Passwort des Benutzers, aber die übertragenen Daten werden nicht verschlüsselt
  • krb5p : Alle Daten sind verschlüsselt

Zum Konfigurieren der Konfigurationsdatei des NFS-Dienstprogramms verwendete Parameter:

Parameter Wirkung
ro Schreibgeschützt
rw Lesen und Schreiben
Wurzelkürbis Wenn der NFS-Client als Root-Administrator zugreift, wird er dem anonymen Benutzer des NFS-Servers zugeordnet.
kein_Wurzelkürbis Wenn der NFS-Client als Root-Administrator zugreift, wird er dem Root-Administrator des NFS-Servers zugeordnet.
alles_squash Unabhängig davon, welches Konto der NFS-Client für den Zugriff verwendet, wird es dem anonymen Benutzer des NFS-Servers zugeordnet.
synchronisieren Gleichzeitiges Schreiben von Daten in den Speicher und auf die Festplatte, um Datenverlust zu vermeiden
asynchron Daten erst im Speicher speichern und dann auf die Festplatte schreiben; das ist effizienter, allerdings können Daten verloren gehen

NFS-Client-Mount-Konfiguration

Schritt 1: Verwenden Sie den Befehl showmount, um die Freigabeinformationen des NFS-Servers anzuzeigen

Das Ausgabeformat ist „Der Name des gemeinsam genutzten Verzeichnisses ermöglicht die Verwendung von Clientadressen“

[root@localhost ~]# showmount -e 192.168.245.128      
Exportliste für 192.168.245.128:
/geschützt 192.168.245.0/24
/öffentlich 192.168.245.0/24

Verwendung des Befehls showmount ;

Parameter Wirkung
-e Anzeige der Freigabeliste des NFS-Servers
-A Zeigt den Status der auf dem lokalen Rechner gemounteten Dateiressourcen und NFS-Ressourcen an.
-v Versionsnummer anzeigen

Schritt 2: Erstellen Sie ein Verzeichnis auf dem Client und mounten Sie das freigegebene Verzeichnis

[root@localhost ~]# mkdir /mnt/public
[root@localhost ~]# mkdir /mnt/data
[root@localhost ~]# vim /etc/fstab 
#Mount in dieser Datei, damit das System bei jedem Start automatisch gemountet werden kann 192.168.245.128:/public /mnt/public nfs defaults 0 0
	192.168.245.128:/geschützt /mnt/data nfs-Standardwerte 0 1
[root@localhost ~]# mount -a #Die Datei /etc/fstab wird wirksam

Schritt 3: Prüfen

[root@mail ~]# df -Th
Dateisystem Typ Größe Verwendet Verfügbare Nutzung% Eingebunden auf
/dev/mapper/rhel-root xfs 17 G 3,1 G 14 G 18 % /
devtmpfs devtmpfs 1,4 G 0 1,4 G 0 % /Entwickler
tmpfs tmpfs 1,4 G 140 K 1,4 G 1 % /Entwickler/shm
tmpfs tmpfs 1,4 G 9,1 M 1,4 G 1 % /Lauf
tmpfs tmpfs 1,4 G 0 1,4 G 0 % /sys/fs/cgroup
/dev/sda1 xfs 1014M 173M 842M 18 % /boot
tmpfs tmpfs 280 M 32 K 280 M 1 % /run/Benutzer/0
/dev/sr0 iso9660 3,6 G 3,6 G 0 100 % /mnt/cdrom
192.168.245.128:/öffentlich nfs4 17G 3,7G 14G 22 % /mnt/öffentlich
192.168.245.128:/geschützt nfs4 17G 3,7G 14G 22 % /mnt/Daten

NFS unter Windows mounten

Schritt 1: In der Systemsteuerung -> Programme und Funktionen hinzufügen -> NFS-Komponenten hinzufügen

Bildbeschreibung hier einfügen

Schritt 2: Fügen Sie die NFS-Adresse und den freizugebenden Ordner im zugeordneten Laufwerk dieses Computers hinzu

Bildbeschreibung hier einfügen

Schritt 3: Wenn es ein Problem mit Berechtigungen gibt

Öffnen Sie die Registrierung: regedit , in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default

Erstellen Sie zwei neue OWORD (64)-Bit-Werte, fügen Sie den Wert AnonymousGid (der Standardwert ist 0) und AnonymousUid (der Standardwert ist 0) hinzu.

Oben finden Sie eine kurze Analyse der NFS-Serverprinzipien und detaillierte Informationen zu den Konstruktions- und Konfigurationsschritten. Weitere Informationen zu den Prinzipien, der Konstruktion und der Konfiguration von NFS-Servern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So installieren und konfigurieren Sie einen Linux-NFS-Server (mit Bildern und Text)
  • Linux-Serverkonfiguration – Schritte zum Erstellen eines NFS-Servers
  • Tutorial zur Installation und Konfiguration eines Windows NFS-Servers
  • Analyse von Installations- und Konfigurationsideen für Linux NFS-Server
  • Detaillierte Erläuterung des NFS-Konfigurationstutorials unter Linux

<<:  Verwendung des Fokus-innerhalb-Selektors von CSS3

>>:  Gemeinsame Nutzung verschiedener Methoden zum Deaktivieren des Seitencaches

Artikel empfehlen

CSS3-Flip-Card-Nummern-Beispielcode

Ich habe heute eine Aufgabe von der Firma erhalte...

Vue implementiert WebSocket-Kundendienst-Chatfunktion

In diesem Artikel wird hauptsächlich die Implemen...

Vue-Komponenten Dynamische Komponenten detaillierte Erklärung

Inhaltsverzeichnis Zusammenfassen Zusammenfassen ...

Zusammenfassung der Methoden zur Änderung von MySQL-Passwörtern

Methoden zum Ändern von Passwörtern vor MySQL 5.7...

Automatische Sicherung der MySQL-Datenbank per Shell-Skript

Automatische Sicherung der MySQL-Datenbank per Sh...

Führt das Laden von CSS zu einer Blockierung?

Vielleicht weiß jeder, dass die JS-Ausführung die...

CSS- und HTML- und Front-End-Technologie-Schichtendiagramm

Front-End-Technologieschicht (Das Bild ist etwas e...

Detaillierte Erklärung von Javascript-Closures und -Anwendungen

Inhaltsverzeichnis Vorwort 1. Was ist ein Abschlu...

Details zum JavaScript-Abschluss

Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...

Das Vue-Projekt implementiert eine Fortschrittsbalkenfunktion für den Dateidownload

Im täglichen Geschäftsleben gibt es zwei gängige ...

Analyse eines MySQL-Deadlock-Szenariobeispiels

Vorwort Kürzlich stieß ich auf ein Deadlock-Probl...