NFS ermöglicht es einem Linux-Server, Verzeichnisse mit anderen UNIX-Clients über das Netzwerk gemeinsam zu nutzen. NFS-Server exportiert ein Verzeichnis und einen NFS-Client mountet dieses Verzeichnis. RHEL 7 unterstützt zwei Versionen von NFS – NFSv3 und NFSv4.
NFS-Server und RPC-Prozesse
den nfs-server starten process startet den NFS-Server und andere RPC-Prozesse. RPC-Prozesse beinhalten:
– rpc.statd :implementiert das Überwachungsprotokoll (NSM) zwischen NFS-Client und NFS-Server
– rpc.mountd :NFS-Mount-Daemon, der die Serverseite der Mount-Anfragen von NFSv3-Clients implementiert.
– rpc.idmapd :Ordnet NFSv4-Namen und lokale UIDs und GIDs zu
– rpc.rquotad :stellt Benutzerquoteninformationen für entfernte Benutzer bereit.
Konfigurieren des NFS-Servers
1. Installieren Sie die erforderlichen nfs-Pakete, falls noch nicht auf dem Server installiert:
# rpm -qa | grep nfs-utils
# yum install nfs-utils rpcbind
2. Aktivieren Sie die Dienste beim Booten:
# systemctl enable nfs-server # systemctl enable rpcbind
# systemctl enable nfs-lock
In RHEL7.1 (nfs-utils-1.3.0-8.el7) funktioniert die Aktivierung von nfs-lock nicht (keine solche Datei oder Verzeichnis). es muss nicht aktiviert werden, da rpc-statd.service statisch ist.
# systemctl enable nfs-idmap
In RHEL7.1 (nfs-utils-1.3.0-8.el7) funktioniert dies nicht (keine solche Datei oder Verzeichnis). es muss nicht aktiviert werden, da nfs-idmapd.service statisch ist.
3. Starten Sie die NFS-Dienste:
# systemctl start rpcbind # systemctl start nfs-server # systemctl start nfs-lock # systemctl start nfs-idmap
4. Überprüfen Sie den Status des NFS-Dienstes:
# systemctl status nfs
5. Erstellen Sie ein freigegebenes Verzeichnis:
# mkdir /test
6. Exportieren Sie das Verzeichnis. Das Format der /etc/exports-Datei ist:
dir client1 (options) [client2(options)...]
Zu den Client-Optionen gehören (Standardwerte werden zuerst aufgeführt):
ro / rw :
a) ro :Clients nur Lesezugriff auf die Freigabe gewähren.
b) rw :Clients Lese-/Schreibzugriff auf die Freigabe gewähren.
sync / async :
a) sync :Der NFS-Server antwortet auf die Anfrage erst, nachdem Änderungen, die durch vorherige Anfragen vorgenommen wurden, auf die Festplatte geschrieben wurden.
b) async :gibt an, dass der Server nicht warten muss.
wdelay / no_wdelay
a) wdelay :Der NFS-Server verzögert das Festschreiben von Schreibanfragen, wenn er vermutet, dass eine weitere Schreibanfrage unmittelbar bevorsteht.
b) no_wdelay :Verwenden Sie diese Option, um die Verzögerung zu deaktivieren. Die Option no_wdelay kann nur aktiviert werden, wenn standardmäßig sync Option ist aktiviert.
no_all_squash / all_squash :
a) no_all_squash :ändert nicht die Zuordnung von entfernten Benutzern.
b) all_squash :um alle entfernten Benutzer einschließlich root zu squashen.
root_squash / no_root_squash :
a) root_squash :verhindern, dass remote verbundene Root-Benutzer Root-Zugriff haben. Effektives Squashing von Remote-Root-Privilegien.
b) no_root_squash :Root-Squashing deaktivieren.
Beispiel:
# vi /etc/exports /test *(rw)
7. Freigabe exportieren :
# exportfs -r
-r exportiert Einträge in /etc/exports erneut und synchronisiert /var/lib/nfs/etab mit /etc/exports. /var/lib/nfs/etab ist die Master-Exporttabelle. Andere Optionen, die mit dem exportfs-Befehl verwendet werden können, sind:
-a : exports entries in /etc/exports but do not synchronize with /var/lib/nfs/etab -i : ignore entries in /etc/exports and uses command line arguments. -u : un-export one or more directories -o : specify client options on command line
8. Starten Sie den NFS-Dienst neu:
# systemctl restart nfs-server
Konfigurieren des NFS-Clients
1. Installieren Sie die erforderlichen nfs-Pakete, falls noch nicht auf dem Server installiert:
# rpm -qa | grep nfs-utils
# yum install nfs-utils
2. Verwenden Sie den mount-Befehl, um exportierte Dateisysteme zu mounten. Syntax für den Befehl:
mount -t nfs -o options host:/remote/export /local/directory
Beispiel :
# mount -t nfs -o ro,nosuid remote_host:/home /remote_home
Dieses Beispiel bewirkt Folgendes:
– Es mountet /home vom Remote-Host (remote_host) auf dem lokalen Mount-Punkt /remote_home.
– Das Dateisystem wird schreibgeschützt gemountet und Benutzer werden daran gehindert, ein setuid-Programm auszuführen ( -o ro,nosuid-Optionen).
3. Aktualisieren Sie /etc/fstab, um NFS-Freigaben beim Booten einzuhängen.
# vi /etc/fstab remote_host:/home /remote_home nfs ro,nosuid 0 0
Firewall-Dienste müssen auf dem NFS-Server aktiv sein
Damit der NFS-Server funktioniert, aktivieren Sie die Dienste nfs, mountd und rpc-bind in der entsprechenden Zone in der Anwendung firewall-config oder verwenden Sie firewall-cmd :
# firewall-cmd --add-service=nfs --zone=internal --permanent # firewall-cmd --add-service=mountd --zone=internal --permanent # firewall-cmd --add-service=rpc-bind --zone=internal --permanent