Ich benutze NFS seit Jahren in begrenztem Umfang. Ich war mit dem Konzept vertraut und hatte auf NFS-Freigaben zugegriffen, aber ich hatte noch nie eine konfiguriert. Die Chancen stehen gut, dass ich damit nicht alleine bin. Ich dachte, ich würde lernen, wie man alles aufbaut, und Sie sogar alle mitnehmen. Beginnen wir mit dem Anfängerleitfaden zum Erlernen von NFS.
Was ist NFS?
Network File System (NFS) ist ein verteiltes Dateisystem, das es verschiedenen Remote-Systemen ermöglicht, auf eine Dateifreigabe zuzugreifen. Wir alle wissen, dass Dateien aus Sicherheitsgründen und zur einfachen Sicherung auf einem zentralen Server gespeichert werden sollten. NFS bietet uns einen Dateifreigabedienst, der einfach zu verwalten ist und den Clientzugriff auf Ressourcen steuert.
Was wird benötigt?
Bevor wir beginnen können, müssen wir ein paar Voraussetzungen schaffen. Zunächst einmal brauchen wir zwei unterschiedliche Systeme, die über das Netzwerk miteinander kommunizieren können. Da NFS eine Server-zu-Client(s)-Beziehung verwendet, verwenden wir Folgendes:
- NFS-Server - server.example.com - 172.25.1.5
- NFS-Client – client.example.com – 172.25.1.4
Sie können den ping
verwenden Befehl, um die Kommunikation zwischen den beiden Systemen zu bestätigen. Ich habe diese beiden Maschinen in einem NAT-Netzwerk und habe die Verbindungen in beide Richtungen getestet.
Stellen Sie danach sicher, dass unsere beiden Systeme auf dem neuesten Stand sind. Da es sich bei diesen Systemen um RHEL 8.2 und Fedora 32 handelt, verwenden wir den folgenden Befehl sowohl auf dem Server als auch auf dem Client:
[root@rhel tcarrigan]# sudo yum -y update
Und schließlich müssen wir die nfs-utils
installieren Paket auf unsere beiden Systeme.
[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
*Hinweis:Das Paket ist im obigen Beispiel bereits installiert.
Lassen Sie uns nun mit der Konfiguration des Servers beginnen.
Server konfigurieren
Schritt 1:Starten und aktivieren Sie die neu installierten nfs-utils
Dienst.
[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service
Schritt 2:Bestätigen Sie den nfs-server
Der Dienst ist eingerichtet und läuft.
[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
Main PID: 61026 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 50657)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)
Schritt 3:Überprüfen Sie die NFS-Version (Sie können diese Informationen in Spalte zwei sehen).
[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
*Beachten Sie, dass Sie die NFS-Daemon-Konfigurationsdateien unter /etc/nfs.conf
finden . Sie finden die Konfigurationsdatei für den Mount auch unter /etc/nfsmount.conf
.
Der NFS-Dienst ist jetzt auf Ihrem Server eingerichtet und wird ausgeführt. Als Nächstes erstellen wir eine NFS-Freigabe.
Erstellen und exportieren Sie die Freigabe
Zuerst müssen wir einen Ordner für die Freigabe festlegen. Da noch keines auf meinem System existiert, werde ich ein Verzeichnis zum Teilen erstellen.
[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs
Nun habe ich aus einigen Versuchen und Fehlern und dann gut geschriebenen Ressourcen gelernt, dass Sie eine Menge Kopfschmerzen vermeiden können, indem Sie die Berechtigungen und den Besitz so ändern, dass sie wie folgt übereinstimmen:
[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/
*Hinweis:Dies ist möglicherweise aus Sicherheitsgründen in einer Produktionsumgebung nicht möglich. Stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie alle Beschränkungen von einer Datei oder einem Verzeichnis entfernen.
Als nächstes müssen wir eine /etc/exports
erstellen Datei.
[root@server docs]# vi /etc/exports
Machen Sie in der neuen Datei folgenden Eintrag:
/test/nfs_share 172.25.1.0/24(rw,sync,no_all_squash,root_squash)
Um die hier verwendeten Parameter besser zu verstehen, wollen wir sie nacheinander aufschlüsseln.
- rw - Erlaubt uns, die NFS-Freigabe zu lesen und zu schreiben.
- sync - Erfordert das Schreiben von Änderungen auf die Festplatte, bevor andere Vorgänge abgeschlossen werden.
- no_all_squash - Bildet alle UIDs und GIDs von der Client-Anfrage auf die identischen UIDs und GIDs auf dem NFS-Server ab.
- root_squash - Ordnet Anfragen vom clientseitigen Root-Benutzer einer anonymen UID/GID zu.
Nachdem wir die Freigabe erstellt haben, exportieren wir sie an den/die Client(s).
[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share
Beachten Sie, dass ich hier das gesamte Subnetz abgebildet habe. Sie können hier nur eine einzelne IP oder einen einzelnen Hostnamen angeben, wenn Sie dies bevorzugen.
Ändern Sie die Firewall
Wir haben den Server installiert und dann die Freigabe erstellt und exportiert. Als nächstes konfigurieren wir einen Tunnel durch die Firewall. Wir werden Regeln für nfs
hinzufügen , rpc-bind
, und mountd
. Vergessen Sie nicht, die Firewall-Konfiguration neu zu laden, wenn Sie fertig sind.
Hier zu sehen:
[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success
Nachdem die Serverseite abgeschlossen ist, können wir uns nun auf den Client-Rechner konzentrieren.
Client konfigurieren
*Hinweis:Alle weiteren Schritte werden auf dem Client-Rechner ausgeführt.
Da wir unser System bereits aktualisiert und die nfs-utils
installiert haben Paket, sollte dies ziemlich einfach sein.
Wir beginnen damit, einen Eintrag in /etc/hosts
zu erstellen für den NFS-Server. Es sollte ungefähr so aussehen:
[root@client]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost
172.25.1.5 localhost
Sehen wir uns nun an, ob etwas vom NFS-Server freigegeben wird. Wenn Sie den vorherigen Abschnitten gefolgt sind, sollten Sie /test/nfs_share/docs
sehen als freigegebenes Verzeichnis.
[root@client ~]# showmount --exports nfs-server
Export list for nfs-server:
/test/nfs_share/docs 172.25.1.0/24
Erstellen Sie als Nächstes ein Verzeichnis auf dem Client-Rechner, um die Remote-Freigabe zu mounten.
[tcarrigan@client ~]$ sudo mkdir p /test/client_share
Nachdem wir nun ein Mount-Verzeichnis erstellt haben, wollen wir die Freigabe mounten.
[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share
Führen Sie den folgenden Befehl aus, um die Freigabe zu überprüfen:
[tcarrigan@client ~]$ sudo mount | grep -i nfs
Um schließlich sicherzustellen, dass der Mount über Neustarts hinweg bestehen bleibt, fügen Sie die folgende Zeile zu /etc/fstab
hinzu Datei:
172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share nfs defaults 0 0
Leichter Tag.
Konzeptnachweis
Lassen Sie uns als Höhepunkt unserer Bemühungen die konfigurierte Freigabe testen. Erstellen Sie eine Datei auf dem Server unter /test/nfs_share/docs
mit dem Namen test_doc
.
[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
Mal sehen, ob unser test_doc
wird über NFS auf unseren Client-Rechner exportiert.
Auf dem Client-Rechner:
[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$
Hier sehen wir das test_doc
existiert auf dem NFS-Server.
Um in die andere Richtung zu testen, erstelle ich auf dem Client eine Datei mit dem Namen client-test-doc
.
[tcarrigan@client docs]$ vi client-test-doc
Lassen Sie uns zum Server springen und sehen, ob wir die neu erstellte Datei sehen können.
NFS-Server:
[tcarrigan@server docs]$ ls -lrt
total 8
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
-rw-rw-r--. 1 tcarrigan tcarrigan 5 Jul 6 13:25 client-test-doc
Wir können sowohl die Originaldatei test_doc
sehen sowie die neu erstellte Datei client-test-doc
.
Herzlichen Glückwunsch zum Einrichten eines funktionierenden NFS-Server/Client-Paares.
[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ]