Network File System (NFS), auch bekannt als Client / Server-Dateisystem, ist ein beliebtes, plattformübergreifendes und verteiltes Dateisystemprotokoll, mit dem lokale Dateisysteme über das Netzwerk exportiert werden, sodass Clients Verzeichnisse und Dateien über ein Netzwerk für andere freigeben und mit ihnen interagieren können, als wären sie lokal eingebunden.
In CentOS /RHEL 8 sind die unterstützten NFS-Versionen NFSv3 und NFSv4 und die Standard-NFS-Version ist 4.2 mit Unterstützung für Zugriffssteuerungslisten (ACLs), serverseitiges Kopieren, spärliche Dateien, Platzreservierung, 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:
- CentOS 8 Installationsanleitung
- RHEL 8 Minimale Installation
- Aktivieren Sie das RHEL-Abonnement in RHEL 8
- Legen Sie eine statische IP-Adresse in CentOS / RHEL fest 8
Unsere Testumgebung:
NFS Server IP:10.20.20.8NFS Client IP:10.20.20.9
Einrichten des NFS-Servers unter CentOS 8
1. Installieren Sie zunächst die 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 verwandte Tools wie das Showmount-Programm enthalten.
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. Starten Sie nach Abschluss der Installation den nfs-Server-Dienst, aktivieren Sie ihn automatisch beim Systemstart und überprüfen Sie seinen Status mithilfe der systemctl-Befehle.
# 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, z. B. nfsd, nfs-idmapd, rpcbind, rpc.mountd, lockd, rpc.in: statd, rpc.rquotad und rpc.idmapd wird automatisch gestartet.
Die Konfigurationsdateien für den NFS-Server sind:
- / usw./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 werden wir vier Dateisysteme erstellen, von denen drei von Mitarbeitern aus drei Abteilungen verwendet werden: Personalwesen, Finanzen und Marketing zum Freigeben von Dateien und eines für Root-Benutzersicherungen.
# mkdir -p /mnt/nfs_shares/{Human_Resource,Finance,Marketing}# mkdir -p /mnt/backups# ls -l /mnt/nfs_shares/
4. Exportieren Sie dann die obigen Dateisysteme in die Konfigurationsdatei NFS server /etc/exports, um lokale physische Dateisysteme zu ermitteln, auf die NFS-Clients zugreifen können.
Hier sind einige der Exportoptionen (lesen Sie man exports für weitere Informationen und Exportoptionen):
- rw – ermöglicht sowohl Lese- als auch Schreibzugriff auf das Dateisystem.
- sync – weist den NFS-Server an, bei Anforderung Vorgänge (Schreiben von Informationen auf die Festplatte) zu schreiben (gilt standardmäßig).
- all_squash – ordnet alle UIDs und GIDs von Clientanforderungen dem anonymen Benutzer zu.
- no_all_squash – wird verwendet, um alle UIDs und GIDs von Clientanforderungen 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
bedeutet export oder Unexport aller Verzeichnisse, -r
bedeutet Reexport aller Verzeichnisse, Synchronisieren von /var/lib/nfs/etab mit /etc/exports und Dateien unter /etc/exports.d, und -v ermöglicht ausführliche Ausgabe.
# exportfs -arv
6. Führen Sie den folgenden Befehl aus, um die aktuelle Exportliste anzuzeigen. Beachten Sie, dass die Tabelle Exporte auch einige der Standardexportoptionen anwendet, die nicht explizit definiert sind, wie im folgenden Screenshot gezeigt.
# exportfs -s
7. Wenn der firewalld-Dienst ausgeführt wird, müssen Sie als Nächstes den Datenverkehr zu den erforderlichen NFS-Diensten (mountd, nfs, rpc-bind) über die Firewall zulassen und dann die Firewallregeln wie folgt neu laden, um die Änderungen zu übernehmen.
NFS-Client auf Clientsystemen einrichten
8. Installieren Sie nun auf den Clientknoten die erforderlichen Pakete, um auf NFS-Freigaben auf den Clientsystemen zuzugreifen. Führen Sie den entsprechenden Befehl für Ihre Distribution aus:
# dnf install nfs-utils nfs4-acl-tools $ sudo apt install nfs-common nfs4-acl-tools
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. Erstellen Sie als Nächstes ein lokales Dateisystem / Verzeichnis zum Mounten des Remote-NFS-Dateisystems und mounten Sie 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. Führen Sie den folgenden Befehl aus, um den entsprechenden Eintrag in die Datei /etc/fstab einzugeben, damit die Einhängung auch nach einem Neustart des Systems bestehen bleibt.
# 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 einwandfrei funktioniert, indem Sie eine Datei auf dem Server erstellen und prüfen, ob die Datei im Client angezeigt werden kann.
# touch /mnt/backups/file_created_on_server.text # ls -l /mnt/backups/file_created_on_server.text
Und machen Sie dann das Gegenteil.
# touch /mnt/backups/file_created_on_client.text # ls -l /mnt/backups/file_created_on_client.text
13. Zum Aushängen des Remote-Dateisystems auf der Clientseite.
# umount /mnt/backups
Beachten Sie, dass Sie das Remote-Dateisystem nicht aushängen können, wenn Sie darin arbeiten, wie im folgenden Screenshot gezeigt.