Website-Suche

So richten Sie NFS-Server und -Client unter CentOS 8 ein


Network File System (NFS), auch bekannt als Client/Server-Dateisystem, ist ein beliebtes, plattformübergreifendes und verteiltes Dateisystemprotokoll, das zum Exportieren lokaler Dateisysteme über das Netzwerk verwendet wird dass Clients Verzeichnisse und Dateien über ein Netzwerk mit anderen teilen und mit ihnen interagieren können, als wären sie lokal gemountet.

In CentOS/RHEL 8 sind die unterstützten NFS-Versionen NFSv3 und NFSv4 und die Standard-NFS-Version ist 4.2, die Unterstützung für Zugriffskontrolllisten bietet ( ACLs), serverseitiges Kopieren, Sparse-Dateien, Speicherplatzreservierung, beschriftetes NFS, Layoutverbesserungen und vieles mehr.

In diesem Artikel erfahren Sie, wie Sie den NFS-Server und den NFS-Client auf CentOS/RHEL 8-Linux-Distributionen installieren und konfigurieren.

Voraussetzungen:

  1. CentOS 8 Installationshandbuch
  2. RHEL 8 Minimalinstallation
  3. Aktivieren Sie das RHEL-Abonnement in RHEL 8
  4. Legen Sie eine statische IP-Adresse in CentOS/RHEL 8 fest

Unsere Testumgebung:

NFS Server IP:	10.20.20.8
NFS Client IP:	10.20.20.9	

Einrichten eines NFS-Servers unter CentOS 8

1. Beginnen Sie zunächst mit der Installation der erforderlichen Pakete auf dem NFS-Server. Bei den Paketen handelt es sich um nfs-utils, die einen Daemon für den Kernel-NFS-Server und zugehörige Tools wie das Programm showmount bereitstellen.

Führen Sie den folgenden Befehl aus, um das Paket auf dem NFS-Server zu installieren (verwenden Sie sudo, wenn Sie das System als Nicht-Root-Benutzer verwalten).

dnf install nfs-utils

2. Sobald die Installation abgeschlossen ist, starten Sie den nfs-server-Dienst, aktivieren Sie ihn für den automatischen Start beim Systemstart und überprüfen Sie dann seinen Status mit den systemctl-Befehlen.

systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service

Beachten Sie, dass die anderen Dienste, die zum Ausführen eines NFS-Servers oder zum Mounten von NFS-Freigaben erforderlich sind, wie z. B. nfsd, nfs-idmapd, rpcbind, rpc.mountd, lockd, rpc.statd, rpc.rquotad und rpc.idmapd > wird automatisch gestartet.

Die Konfigurationsdateien für den NFS-Server sind:

  • /etc/nfs.conf – Hauptkonfigurationsdatei für die NFS-Daemons und -Tools.
  • /etc/nfsmount.conf – eine NFS-Mount-Konfigurationsdatei.

3. Erstellen Sie als Nächstes die Dateisysteme, die auf dem NFS-Server exportiert oder freigegeben werden sollen. Für diesen Leitfaden erstellen wir vier Dateisysteme, von denen drei von Mitarbeitern aus drei Abteilungen verwendet werden: Personalwesen, Finanzen und Marketing, um Dateien gemeinsam zu nutzen, und eines für Root-Benutzer-Backups.

mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
mkdir  -p /mnt/backups
ls -l /mnt/nfs_shares/

4. Exportieren Sie dann die oben genannten Dateisysteme in die Konfigurationsdatei /etc/exports des NFS-Servers, um lokale physische Dateisysteme zu ermitteln, auf die NFS-Clients zugreifen können.

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

Hier sind einige der Exportoptionen (lesen Sie man exports für weitere Informationen und Export-Optionen):

  • rw – ermöglicht sowohl Lese- als auch Schreibzugriff auf das Dateisystem.
  • sync – weist den NFS-Server an, auf Anfrage Schreibvorgänge auszuführen (Informationen auf die Festplatte zu schreiben) (gilt standardmäßig).
  • all_squash – ordnet alle UIDs und GIDs von Clientanfragen dem anonymen Benutzer zu.
  • no_all_squash – wird verwendet, um alle UIDs und GIDs von Client-Anfragen identischen UIDs und GIDs auf dem NFS-Server zuzuordnen.
  • root_squash – ordnet Anfragen vom Root-Benutzer oder UID/GID 0 vom Client der anonymen UID/GID zu.

5. Um das obige Dateisystem zu exportieren, führen Sie den Befehl exportfs mit dem Flag -a aus. Dies bedeutet, dass alle Verzeichnisse exportiert oder nicht exportiert werden. - r bedeutet, alle Verzeichnisse erneut zu exportieren und /var/lib/nfs/etab mit /etc/exports und Dateien unter /etc/exports.d zu synchronisieren und -v ermöglichen eine ausführliche Ausgabe.

exportfs -arv

6. Um die aktuelle Exportliste anzuzeigen, führen Sie den folgenden Befehl aus. Beachten Sie, dass die exports-Tabelle auch einige der standardmäßigen exports-Optionen anwendet, die nicht explizit definiert sind, wie im folgenden Screenshot gezeigt.

exportfs  -s

7. Wenn Sie als Nächstes den Dienst firewalld ausgeführt haben, müssen Sie Datenverkehr zu den erforderlichen NFS-Diensten zulassen (mountd, nfs , rpc-bind) über die Firewall und laden Sie dann die Firewall-Regeln wie folgt neu, um die Änderungen zu übernehmen.

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

Einrichten des NFS-Clients auf Clientsystemen

8. Installieren Sie nun auf den Client-Knoten die erforderlichen Pakete, um auf NFS-Freigaben auf den Client-Systemen zuzugreifen. Führen Sie den entsprechenden Befehl für Ihre Distribution aus:

dnf install nfs-utils nfs4-acl-tools         [On CentOS/RHEL]
sudo apt install nfs-common nfs4-acl-tools   [On Debian/Ubuntu]

9. Führen Sie dann den Befehl showmount aus, um Mount-Informationen für den NFS-Server anzuzeigen. Der Befehl sollte das exportierte Dateisystem auf dem Client ausgeben, wie im Screenshot gezeigt.

showmount -e 10.20.20.8

9. Als nächstes erstellen Sie ein lokales Dateisystem/Verzeichnis zum Mounten des Remote-NFS-Dateisystems und mounten es als NTF-Dateisystem.

mkdir -p /mnt/backups
mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

10. Bestätigen Sie dann, dass das Remote-Dateisystem gemountet wurde, indem Sie den Befehl mount ausführen und nfs-Mounts filtern.

mount | grep nfs

11. Um die Bereitstellung auch nach einem Systemneustart dauerhaft zu ermöglichen, führen Sie den folgenden Befehl aus, um den entsprechenden Eintrag in die Datei /etc/fstab einzugeben.

echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
cat /etc/fstab

12. Testen Sie abschließend, ob das NFS-Setup ordnungsgemäß funktioniert, indem Sie eine Datei auf dem Server erstellen und prüfen, ob die Datei auf dem Client angezeigt wird.

touch /mnt/backups/file_created_on_server.text     [On NFS Server]
ls -l /mnt/backups/file_created_on_server.text     [On NFS client]

Dann machen Sie es umgekehrt.

touch /mnt/backups/file_created_on_client.text     [On NFS Client]
ls -l /mnt/backups/file_created_on_client.text     [On NFS Server]

13. Um das Remote-Dateisystem auf der Clientseite abzuhängen.

umount /mnt/backups

Beachten Sie, dass Sie das Remote-Dateisystem nicht unmounten können, wenn Sie darin arbeiten, wie im folgenden Screenshot gezeigt.

Das ist es! In dieser Anleitung haben wir gezeigt, wie man einen NFS-Server und -Client in CentOS/RHEL 8 installiert und konfiguriert. Wenn Sie Gedanken oder Fragen haben, verwenden Sie das Kommentarformular unten, um mit uns Kontakt aufzunehmen.