Ein Akronym für Network File Share, NFS ist ein plattformübergreifendes Client/Server-Protokoll, das Client-Rechnern den Zugriff auf Dateien ermöglicht, die vom NFS-Server über ein Netzwerk freigegeben werden. Client-Systeme können die Dateisysteme vom NFS-Server lokal einhängen und auf Dateien und Verzeichnisse zugreifen, als ob sie lokal eingehängt wären. In diesem Leitfaden führen wir Sie durch die Installation und Konfiguration von NFS Server auf CentOS 8 / RHEL 8 .
Hinweis: In CentOS 8 oder RHEL 8 NFSv3 &v4 beide werden unterstützt. NFSv3 ermöglicht sicheres asynchrones Schreiben und unterstützt 64-Bit-Dateigrößen und -Offset. Während NFSv4 durch die Betriebssystem-Firewall funktioniert und ACL (Access Control List) unterstützt und keinen rpcbind-Dienst benötigt
NFS-Server/Client-Setup
Bevor wir beginnen, werden wir das folgende Setup verwenden, um zu simulieren, wie das NFS-Protokoll in einem Client/Server-Setup funktioniert.
- IP des Servercomputers:Adresse: 192.168.2.102 CentOS 8
- Client-Rechner-IP:Adresse: 192.168.2.103 CentOS 8
Mit unserem Setup beginnen wir mit der Installation von NFS auf dem Server-Rechner.
Schritt 1) NFS auf dem CentOS 8 / RHEL 8-Server installieren und konfigurieren
Zunächst installieren wir das NFS-Serverpaket namens nfs-utils der als NFS-Daemon fungiert. Um das Paket nfs-utils zu installieren, starten Sie das Terminal und führen Sie den folgenden Befehl aus:
$ sudo dnf install nfs-utils -y
Im Beispiel unten ist nfs-utils bereits installiert.
Sobald die Installation abgeschlossen ist, starten und aktivieren Sie den nfs-server-Dienst, damit er automatisch über die Neustarts hinweg ausgeführt wird. Führen Sie die folgenden Befehle aus,
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
Führen Sie Folgendes aus, um zu bestätigen, dass der NFS-Dienst ausgeführt wird:
$ sudo systemctl status nfs-server.service
Sie können die Version des nfs-Protokolls überprüfen, das Sie ausführen, indem Sie den folgenden Befehl ausführen:
$ rpcinfo -p | grep nfs
Die Version wird durch die zweite Spalte in der unten dargestellten Ausgabe angezeigt.
Zur weiteren Konfiguration des NFS-Servers finden Sie die Konfigurationsdateien unter /etc/nfs.conf Dabei handelt es sich um die NFS-Daemon-Konfigurationsdatei und die /etc/nfsmount.conf das ist die Konfigurationsdatei für den NFS-Mount.
Schritt 2) NFS-Freigabe erstellen und exportieren
In diesem Schritt erstellen wir ein Dateisystem, das vom Server für die Clientsysteme freigegeben wird. In dieser Anleitung erstellen wir ein Verzeichnis unter /mnt/nfs_share/docs wie unten gezeigt
$ sudo mkdir -p /mnt/nfs_shares/docs
Um Dateibeschränkungen für das NFS-Freigabeverzeichnis zu vermeiden, ist es ratsam, den Verzeichnisbesitz wie gezeigt zu konfigurieren. Dies ermöglicht die Erstellung von Dateien von den Client-Systemen, ohne auf Berechtigungsprobleme zu stoßen.
$ sudo chown -R nobody: /mnt/nfs_shares/docs
Außerdem können Sie die Verzeichnisberechtigungen nach Ihren Wünschen anpassen. In diesem Handbuch werden wir beispielsweise alle Berechtigungen (Lesen, Schreiben und Ausführen) dem NFS-Freigabeordner zuweisen
$ sudo chmod -R 777 /mnt/nfs_shares/docs
Damit die Änderungen wirksam werden, starten Sie den NFS-Daemon neu:
$ sudo systemctl restart nfs-utils.service
Um die NFS-Freigabe zu exportieren, damit Client-Systeme darauf zugreifen können, müssen wir die Datei /etc/exports bearbeiten Datei. Sie können mehreren Clients Zugriff auf die Freigabe gewähren, indem Sie wie gezeigt ein Subnetz angeben
/mnt/nfs_shares/docs 192.168.2.0/24(rw,sync,no_all_squash,root_squash
Außerdem können Sie jeden Client in einer separaten Zeile angeben:
/mnt/nfs_shares/docs Client-IP(rw,sync,no_all_squash,root_squash)
/mnt/nfs_shares/docs Client-IP(rw,sync,no_all_squash,root_squash)
Mit unserem Setup gewähren wir Zugriff auf unseren Client-Rechner mit einer IP 192.168.2.103. Fügen Sie in der Datei „/etc/exports die folgende Zeile hinzu ’:
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
Speichern und beenden Sie die Datei. Verwenden Sie den cat-Befehl, um die Eingabe wie gezeigt zu bestätigen
[[email protected]] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [[email protected]]
Schauen wir uns die Bedeutung der verwendeten Parameter an:
- w – Dies steht für Lesen/Schreiben. Es gewährt Lese- und Schreibberechtigungen für die NFS-Freigabe.
- synchronisieren – Der Parameter erfordert, dass die Änderungen zuerst auf die Festplatte geschrieben werden, bevor eine andere Operation ausgeführt werden kann.
- no_all_squash – Dadurch werden alle UIDs und GIDs von den Client-Anfragen identischen UIDS und GIDs zugeordnet, die sich auf dem NFS-Server befinden.
- root_squash – Das Attribut ordnet Anfragen des Root-Benutzers auf der Client-Seite einer anonymen UID / GID zu.
Um den oben erstellten Ordner zu exportieren, verwenden Sie den exportfs-Befehl wie gezeigt:
$ sudo exportfs -arv
Das -a Option impliziert, dass alle Verzeichnisse exportiert werden, -r steht für das erneute Exportieren aller Verzeichnisse und schließlich -v Flag zeigt eine ausführliche Ausgabe an.
Nur um absolut sicher zu sein, was die Exportliste betrifft, können Sie die Exportliste mit dem Befehl anzeigen:
$ sudo exportfs -s
Perfekt! Unsere Exportliste existiert. So weit, ist es gut. Die einzige verbleibende Konfiguration auf dem NFS-Server besteht darin, NFS-Dienste auf der Firewall zuzulassen.
Schritt 3) Konfiguration der Firewall-Regeln für den NFS-Server
Der letzte Schritt bei der Konfiguration des Servers besteht darin, NFS-Dienste durch die Firewall auf dem CentOS 8-Servercomputer zuzulassen. Diese Dienste sind nfs, rpc-bind und mountd . Führen Sie also die folgenden Befehle aus.
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
Laden Sie anschließend die Firewall neu, damit die Änderungen wirksam werden
$ sudo firewall-cmd --reload
Gehen wir jetzt zum Client-System und richten es für den Zugriff auf die NFS-Freigaben ein.
Einrichten des NFS-Client-Systems
Um das Clientsystem für den Zugriff auf die NFS-Dateifreigaben zu konfigurieren, gehen Sie wie folgt vor
Schritt 1) Installieren Sie die erforderlichen NFS-Pakete
Installieren Sie auf dem CentOS 8-Clientsystem die erforderlichen Pakete für den Zugriff auf die NFS-Freigabe, die sich auf dem NFS-Server befindet
$ sudo dnf install nfs-utils nfs4-acl-tools -y
Für Debian- oder Ubuntu-Systeme:
$ sudo apt install nfs-common nfs4-acl-tools -y
Um die gemounteten NFS-Freigaben auf dem Server anzuzeigen, verwenden Sie showmount Befehl:
$ showmount -e 192.168.2.102
Schritt 2) Mounten der Remote-NFS-Freigabe auf dem Server
Als nächstes müssen wir das Remote-NFS-Freigabeverzeichnis einhängen, das sich auf dem lokalen Clientsystem befindet. Aber zuerst erstellen wir ein Verzeichnis, um die NFS-Freigabe zu mounten.
$ sudo mkdir p /mnt/client_share
Um die NFS-Freigabe zu mounten, führen Sie den folgenden Befehl aus. Denken Sie daran, dass 192.168.2.102 die IP-Adresse des NFS-Servers ist.
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
Sie können überprüfen, ob die Remote-NFS-Freigabe gemountet wurde, indem Sie Folgendes ausführen:
$ sudo mount | grep -i nfs
Um die Mount-Freigabe bei einem Neustart dauerhaft zu machen, müssen Sie die Datei /etc/fstab bearbeiten Datei und fügen Sie den Eintrag unten an.
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
Speichern und schließen Sie die Datei.
Testen der Einrichtung von NFS-Server und -Client
An diesem Punkt sind wir mit allen Konfigurationen fertig. Wir müssen jedoch unser Setup testen und sicherstellen, dass alles funktioniert. Also erstellen wir zuerst eine Testdatei im Share-Verzeichnis des NFS-Servers und prüfen, ob sie im gemounteten NFS-Verzeichnis des Clients vorhanden ist.
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
Gehen Sie jetzt zum Client-System und prüfen Sie, ob die Datei auf der Client-Seite existiert.
$ ls -l /mnt/client_share/
Toll! Aus der Ausgabe können wir deutlich erkennen, dass die Datei existiert. Machen wir jetzt das Gegenteil. Wir werden eine Datei auf dem NFS-Client-System erstellen und prüfen, ob vom NFS-Server aus darauf zugegriffen werden kann.
Erstellen Sie auf dem Client die Datei wie gezeigt:
$ sudo touch /mnt/client_share/client_nfs_file.txt
Gehen Sie jetzt zurück zum Server und prüfen Sie, ob die Datei im NFS-Freigabeverzeichnis vorhanden ist
$ ls -l /mnt/nfs_shares/docs
Fantastisch! Wir können die Datei anzeigen und darauf zugreifen.
Wie Sie sehen, können Sie problemlos Dateien sowohl auf dem NFS-Server als auch auf dem NFS-Client erstellen und sie nahtlos zwischen den beiden Systemen sowie anderen Client-Systemen freigeben, die für den Zugriff auf die Freigaben konfiguriert wurden. Und damit sind wir heute am Ende unseres Tutorials angelangt. In diesem Handbuch haben wir Ihnen gezeigt, wie Sie den NFS-Server und das Client-System-Setup auf CentOS 8 und RHEL 8 installieren und einrichten.