Website-Suche

So installieren Sie NFS-Server und -Client auf RHEL-Distributionen


Unter Linux gibt es einige Dateifreigabeprotokolle, mit denen Speicher und Dateien in einem Netzwerk gemeinsam genutzt werden können. Die am weitesten verbreiteten sind Samba und NFS.

Samba ist eine beliebte Open-Source-Anwendungssuite, die in einer Client-Server-Architektur arbeitet. Es bietet plattformübergreifende Kompatibilität und ermöglicht eine nahtlose Dateifreigabe zwischen Linux-, Windows- und macOS-Betriebssystemen. Auf eine auf einem Linux-System gehostete Dateifreigabe kann von verschiedenen Plattformen aus zugegriffen werden, was die Zusammenarbeit fördert.

Ein weiteres weit verbreitetes Dateifreigabeprotokoll ist NFS, kurz für Network File Share. Genau wie Samba funktioniert es auf einem Client-Server-Modell und ermöglicht einem Benutzer, Verzeichnisse und Dateien über ein Netzwerk mit mehreren Remote-Client-Benutzern zu teilen.

In diesem Handbuch erfahren Sie, wie Sie den NFS-Server und -Client auf RHEL-basierten Distributionen wie Fedora, CentOS Stream, Rocky Linux und AlmaLinux installieren.

NFS-Dienste

Derzeit gibt es drei Versionen von NFS, die neueste ist NFSv4, die Funktionen wie die Möglichkeit bietet, über das Internet und über eine Firewall hinweg zu arbeiten. Darüber hinaus gibt es NFSv3 und NFSv2, das älteste Protokoll.

Der NFS-Dienst besteht aus dem NFS-Server und dem Client. Der NFS-Server umfasst die folgenden Schlüsseldateien:

  • nfs-server – Dadurch können Client-Systeme auf die über NFS freigegebenen Dateien zugreifen.
  • rpcbind – konvertiert RPC-Programme in universelle Adressen.
  • nfs-idmap – Führt die Übersetzung der Benutzer- und Gruppen-IDs in Namen und der Benutzer- und Gruppennamen in IDs durch.
  • Portmap – Dies ist ein Server, der RPC-Programmnummern in IP-Portnummern umwandelt.
  • nfslock – Im Falle eines NFS-Serverabsturzes startet der nfslock die erforderlichen RPC-Prozesse.

NFS-Konfigurationsdienste

Hier sind einige der wichtigsten Konfigurationsdateien für NFS:

  • /etc/exports – Die Hauptkonfigurationsdatei, die die Dateisysteme oder Verzeichnisse festlegt, die exportiert werden sollen und auf die Remote-Benutzer zugreifen sollen.
  • /etc/fstab – Dies ist eine Datei, die Einträge der gemounteten Partitionen enthält. In NFS enthält die Datei Einträge von NFS-Freigabeverzeichnissen oder Dateisystemen, die dauerhaft gemountet sind und einen Neustart beibehalten können.
  • /etc/sysconfig/nfs – Es definiert die Ports, die während der Ausführung von RPC-Diensten benötigt werden.

NFS-Server- und Client-Setup

Um NFS-Freigaben einzurichten, benötigen wir mindestens zwei Linux/Unix-Maschinen. Hier in diesem Tutorial verwende ich zwei Server.

  • NFS-ServerRHEL 9 mit IP 10.128.15.213
  • NFS-ClientRHEL 9 mit IP 10.128.15.214

Installieren Sie NFS auf Server und Client

Zu Beginn müssen Sie sich bei beiden Knoten (NFS-Server und -Client) anmelden und die NFS-Dienste installieren. Aktualisieren Sie zunächst die Paketinformationen wie gezeigt. Der folgende dnf-Befehl aktualisiert außerdem alle spannenden Pakete auf ihre neuesten Versionen.

sudo dnf update 

Sobald das Update abgeschlossen ist, fahren Sie fort und installieren Sie die erforderlichen NFS-Dienste.

sudo dnf install rpcbind nfs-utils -y

Der nächste Schritt besteht darin, die NFS-Dienste wie gezeigt zu aktivieren.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Stellen Sie sicher, dass Sie auch die NFS-Dienste starten.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Es ist wichtig zu überprüfen, ob alle NFS-Dienste ausgeführt werden.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

Stellen Sie sicher, dass Sie auch die Firewall wie folgt konfigurieren, um eingehende NFS-Dienste zuzulassen.

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

Erstellen Sie ein NFS-Freigabeverzeichnis

Nachdem alle NFS-Dienste installiert sind und wie erwartet ausgeführt werden, ist es an der Zeit, das NFS-Freigabeverzeichnis zu erstellen. Dabei handelt es sich um das Verzeichnis, das Dateien enthält, auf die NFS-Clients im Netzwerk zugreifen.

In diesem Fall erstellen wir in unserem Home-Verzeichnis ein NFS-Freigabeverzeichnis mit dem Namen my_nfsshare.

mkdir -p /home/tecmint/my_nfsshare

Als nächstes weisen Sie Verzeichnisberechtigungen zu. Zu Demonstrationszwecken werden wir globale Berechtigungen zuweisen, die NFS-Clients Lese-, Schreib- und Ausführungsberechtigungen erteilen.

sudo chmod 777 -R /home/tecmint/my_nfsshare

Exportieren Sie ein NFS-Freigabeverzeichnis

Der nächste Schritt besteht darin, das NFS-Freigabeverzeichnis zu exportieren. Um dies zu erreichen, müssen wir einen Eintrag in der Datei /etc/exports vornehmen. Greifen Sie daher mit Ihrem bevorzugten Texteditor auf die Datei zu. In diesem Fall verwenden wir den Vim-Editor.

sudo vim /etc/exports

Fügen Sie den folgenden Eintrag hinzu. Ersetzen Sie unbedingt die Server-IP durch die IP-Adresse Ihres NFS-Servers.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

Exportieren Sie abschließend das NFS-Freigabeverzeichnis oder Dateisystem.

sudo exportfs -rv

Führen Sie den folgenden Befehl aus, um die NFS-Freigaben anzuzeigen.

showmount -e localhost

Konfigurieren Sie den NFS-Client

Die verbleibende Phase dieser Übung besteht darin, den NFS-Client für den Zugriff auf das freigegebene Verzeichnis zu konfigurieren. Vergewissern Sie sich zunächst, dass Sie die Exportliste oder NFS-Freigaben auf dem NFS-Server anzeigen können.

showmount -e 10.128.15.213

Der nächste Schritt besteht darin, die NFS-Freigabe vom Server auf dem Client bereitzustellen. Dazu müssen wir zunächst ein Mount-Verzeichnis erstellen. In diesem Fall erstellen wir ein Verzeichnis namens nfs_backup.

mkdir nfs_backup

Anschließend mounten wir die NFS-Freigabe in dem Mount-Verzeichnis, das wir gerade im Root-Home-Verzeichnis erstellt haben

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

Um die NFS-Freigabe beizubehalten, bearbeiten Sie die Datei /etc/fstab.

vim /etc/fstab

Fügen Sie dann den folgenden Eintrag hinzu.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

Speichern und beenden Sie die Konfigurationsdatei.

Testen des NFS-Setups

Der letzte Schritt besteht darin, zu überprüfen, ob das NFS-Setup wie erwartet funktioniert. Wir erstellen einige Dateien auf dem Server und überprüfen deren Verfügbarkeit auf der NFS-Client-Seite.

Auf der Serverseite erstellen wir die Dateien im NFS-Freigabeverzeichnis.

sudo touch my_nfsshare/file{1..4}.txt

Um zu überprüfen, ob die Dateien erstellt wurden, führen wir den Befehl ls aus:

ls -l my_nfsshare/

Überprüfen Sie auf der Clientseite, ob die Dateien im Mount-Verzeichnis verfügbar sind, ohne dass eine Dienstaktualisierung oder ein Neustart von Diensten erforderlich ist, wie in der folgenden Ausgabe dargestellt.

ls -l nfs_backup/

Entfernen des NFS-Mounts

Wenn Sie das gemountete Verzeichnis auf Ihrem System nicht mehr benötigen, können Sie es auf der Clientseite mit dem folgenden umount-Befehl unmounten:

umount ~/nfs_backup

NFS-Freigabebefehle

Einige weitere wichtige Befehle für NFS.

  • showmount -e – Zeigt die verfügbaren Freigaben auf Ihrem lokalen Computer an
  • showmount -e ip-address – Listet die verfügbaren Freigaben auf dem Remote-Server auf
  • showmount -d – Listet alle Unterverzeichnisse auf
  • exportfs -v – Zeigt eine Liste der freigegebenen Dateien und Optionen auf einem Server an
  • exportfs -a – Exportiert alle in /etc/exports aufgeführten Freigaben oder den angegebenen Namen
  • exportfs -u – Deexportiert alle in /etc/exports aufgeführten Freigaben oder den angegebenen Namen
  • exportfs -r – Aktualisiert die Serverliste nach der Änderung von /etc/exports
Abschluss

Dies schließt unsere Anleitung zur Installation des NFS-Servers und -Clients auf RedHat-basierten Distributionen ab. Wir haben die NFS-Dienste auf dem Server installiert, ein NFS-Freigabeverzeichnis erstellt und schließlich das Freigabeverzeichnis auf dem Client gemountet. Zuletzt haben wir das NFS-Setup überprüft, indem wir clientseitig auf die auf dem Server erstellte Datei zugegriffen haben.