NFS steht für Network File System und hilft Ihnen dabei, Dateien und Ordner zwischen Linux-/Unix-Systemen gemeinsam zu nutzen. Es wurde 1990 von SUN Microsystems entwickelt. NFS ermöglicht Ihnen, eine Remote-Freigabe lokal bereitzustellen.
Diese Anleitung hilft Ihnen bei der Einrichtung des NFS-Servers unter CentOS 7 / RHEL 7.
Vorteile von NFS
- Datei-/Ordnerfreigabe zwischen *nix-Systemen
- Erlaubt das lokale Mounten entfernter Dateisysteme
- Kann als zentrales Speichersystem fungieren
- Es kann als Speicherdomäne (Datenspeicher) für VMware und andere Virtualisierungsplattformen verwendet werden.
- Ermöglicht Anwendungen, Konfigurations- und Datendateien mit mehreren Knoten zu teilen.
- Ermöglicht aktualisierte Dateien in der gesamten Freigabe.
Wichtige Dienste
Das Folgende sind die wichtigen NFS-Dienste, die in nfs-utils-Paketen enthalten sind.
rpcbind :Der rpcbind-Server wandelt RPC-Programmnummern in universelle Adressen um.
nfs-server :Ermöglicht Clients den Zugriff auf NFS-Freigaben.
nfs-lock / rpc-statd :Sperrung von NFS-Dateien. Implementieren Sie die Wiederherstellung der Dateisperre, wenn ein NFS-Server abstürzt und neu startet.
nfs-idmap :Es übersetzt Benutzer- und Gruppen-IDs in Namen und übersetzt Benutzer- und Gruppennamen
in IDs
Wichtige Konfigurationsdateien
Sie würden hauptsächlich an den folgenden Konfigurationsdateien arbeiten, um NFS-Server und -Clients einzurichten.
/etc/exports:Dies ist die Hauptkonfigurationsdatei, steuert, welche Dateisysteme auf entfernte Hosts exportiert werden, und legt Optionen fest.
/etc/fstab:Diese Datei wird verwendet, um zu steuern, welche Dateisysteme, einschließlich NFS-Verzeichnisse, gemountet werden, wenn das System bootet.
/etc/sysconfig/nfs:Diese Datei wird verwendet, um zu steuern, auf welchen Ports die erforderlichen RPC-Dienste laufen.
/etc/hosts.allow und /etc/hosts.deny:Diese Dateien heißen TCP-Wrapper, regeln den Zugriff auf den NFS-Server. Es wird von NFS verwendet, um zu entscheiden, ob eine Verbindung von einer anderen IP-Adresse akzeptiert wird oder nicht.
Umgebung
Hier werde ich für diese Demo mindestens CentOS 7 verwenden. Diese Anleitung sollte auch auf Oracle Linux- und Fedora-Systemen funktionieren.
NFS-Server
Hostname: server.itzgeek.local (CentOS 7)
IP-Adresse: 192.168.1.10/24
NFS-Client
Hostname: client.itzgeek.local (CentOS 7)
IP-Adresse: 192.168.1.20/24
NFS-Server konfigurieren
Installieren Sie den NFS-Server
Installieren Sie das folgende Paket für den NFS-Server mit dem Befehl yum.
yum install -y nfs-utils
Sobald die Pakete installiert sind, aktivieren und starten Sie die NFS-Dienste.
systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind
NFS-Freigabe erstellen
Lassen Sie uns nun ein Verzeichnis erstellen, das für den NFS-Client freigegeben werden soll. Hier erstelle ich ein neues Verzeichnis namens nfsfileshare in der Partition /.
Sie können Ihr bestehendes Verzeichnis auch mit NFS teilen.
mkdir /nfsfileshare
Erlauben Sie dem NFS-Client, das erstellte Verzeichnis zu lesen und zu schreiben.
chmod 777 /nfsfileshare/
Wir müssen die Datei /etc/exports ändern, um einen Eintrag des Verzeichnisses /nfsfileshare zu erstellen, das Sie freigeben möchten.
vi /etc/exports
Erstellen Sie eine NFS-Freigabe wie unten.
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/nfsfileshare :gemeinsames Verzeichnis
192.168.1.20 :IP-Adresse des Client-Rechners. Anstelle einer IP-Adresse können wir auch den Hostnamen verwenden. Es ist auch möglich, den Bereich der Clients mit einem Subnetz wie 192.168.1.0/24 zu definieren.
rw :Schreibberechtigung für freigegebenen Ordner
synchronisieren :Alle Änderungen am entsprechenden Dateisystem werden sofort auf die Festplatte geschrieben; auf die jeweiligen Schreiboperationen wird gewartet.
no_root_squash : Standardmäßig wird jede Dateianfrage, die vom Benutzer root auf dem Client-Rechner gestellt wird, als von Benutzer none auf dem Server behandelt. (Welcher UID die Anfrage genau zugeordnet wird, hängt von der UID des Benutzers „nobody“ auf dem Server ab, nicht vom Client.) Wenn no_root_squash ausgewählt ist, hat root auf dem Client-Rechner die gleiche Zugriffsebene auf die Dateien auf dem System als root auf dem Server.
Sie können alle Optionen in der Manpage man exports oder hier kennenlernen.
Exportieren Sie die freigegebenen Verzeichnisse mit dem folgenden Befehl.
exportfs -r
Extras:
exportfs -v:Zeigt eine Liste von freigegebenen Dateien und Exportoptionen auf einem Server an.
exportfs -a:Exportiert alle in /etc/exports aufgelisteten Verzeichnisse.
exportfs -u:UnExport eines oder mehrerer Verzeichnisse.
exportfs -r:ReExport aller Verzeichnisse nach Änderung von /etc/exports.
Nach der Konfiguration des NFS-Servers müssen wir dieses freigegebene Verzeichnis im NFS-Client einhängen.
Firewall konfigurieren
Wir müssen die Firewall auf dem NFS-Server konfigurieren, damit der NFS-Client auf die NFS-Freigabe zugreifen kann. Führen Sie dazu die folgenden Befehle auf dem NFS-Server aus.
firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
NFS-Client konfigurieren
Installieren Sie den NFS-Client
Wir müssen NFS-Pakete auf dem NFS-Client installieren, um eine entfernte NFS-Freigabe bereitzustellen. Installieren Sie NFS-Pakete mit dem folgenden Befehl.
yum install -y nfs-utils
Überprüfen Sie die NFS-Freigabe
Bevor Sie die NFS-Freigabe mounten, bitte ich Sie, die auf dem NFS-Server verfügbaren NFS-Freigaben zu überprüfen, indem Sie den folgenden Befehl auf dem NFS-Client ausführen.
Ersetzen Sie die IP-Adresse durch die IP-Adresse oder den Hostnamen Ihres NFS-Servers.showmount -e 192.168.1.10
Ausgabe:
Export list for 192.168.1.10: /nfsfileshare 192.168.1.20
Laut Ausgabe ist /nfsfileshare auf dem NFS-Server (192.168.1.10) für den NFS-Client (192.168.1.20) verfügbar.
Extras:
showmount -e :Zeigt die verfügbaren Freigaben auf Ihrem lokalen Rechner (NFS-Server).
showmount -e
NFS-Freigabe bereitstellen
Erstellen Sie nun ein Verzeichnis auf dem NFS-Client, um die NFS-Freigabe /nfsfileshare zu mounten, die wir auf dem NFS-Server erstellt haben.
mkdir /mnt/nfsfileshare
Verwenden Sie den folgenden Befehl, um eine NFS-Freigabe /nfsfileshare vom NFS-Server 192.168.1.10 in /mnt/nfsfileshare auf dem NFS-Client zu mounten.
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
Überprüfen Sie die gemountete Freigabe auf dem NFS-Client mit dem Befehl mount.
mount | grep nfs
Ausgabe:
ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Außerdem können Sie den Befehl df -hT verwenden, um die gemountete NFS-Freigabe zu überprüfen.
df -hT
Ausgabe:
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 1.2G 49G 3% / devtmpfs devtmpfs 485M 0 485M 0% /dev tmpfs tmpfs 496M 0 496M 0% /dev/shm tmpfs tmpfs 496M 6.7M 490M 2% /run tmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 47G 33M 47G 1% /home /dev/sda1 xfs 1014M 154M 861M 16% /boot tmpfs tmpfs 100M 0 100M 0% /run/user/0 192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Erstellen Sie eine Datei im bereitgestellten Verzeichnis, um den Lese- und Schreibzugriff auf die NFS-Freigabe zu überprüfen.
touch /mnt/nfsfileshare/test
Wenn der obige Befehl keinen Fehler zurückgibt, haben Sie ein funktionierendes NFS-Setup.
Automatisches Mounten von NFS-Freigaben
Um die Freigaben bei jedem Neustart automatisch einzuhängen, müssten Sie die /etc/fstab-Datei Ihres NFS-Clients ändern.
vi /etc/fstab
Fügen Sie einen Eintrag wie unten hinzu.
# # /etc/fstab # Created by anaconda on Wed Jan 17 12:04:02 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Speichern und schließen Sie die Datei.
Starten Sie den Client-Rechner neu und prüfen Sie, ob die Freigabe automatisch gemountet wird oder nicht.
reboot
Überprüfen Sie die gemountete Freigabe auf dem NFS-Client mit dem Befehl mount.
mount | grep nfs
Ausgabe:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) 192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Wenn Sie dieses freigegebene Verzeichnis von Ihrem NFS-Client aushängen möchten, nachdem Sie mit der Dateifreigabe fertig sind, können Sie dieses bestimmte Verzeichnis mit dem Befehl umount aushängen.
umount /mnt/nfsfileshare
Schlussfolgerung
Sie haben NFS-Server und NFS-Client auf CentOS 7 / RHEL 7 erfolgreich eingerichtet. Wenn Sie keine statischen Bereitstellungen verwenden möchten, können Sie AutoFS unter CentOS 7 so konfigurieren, dass NFS-Freigaben nur bereitgestellt werden, wenn ein Benutzer darauf zugreift.