NFS steht für Network File System und hilft Ihnen, Dateien und Ordner zwischen Linux / Unix-Systemen freizugeben, die 1990 von SUN Microsystems entwickelt wurden. Mit NFS können Sie eine Remote-Freigabe lokal bereitstellen.
Diese Anleitung hilft Ihnen beim Einrichten des NFS-Servers unter CentOS 7 / RHEL 7.
- Vorteile von NFS
- Wichtige Dienste
- Wichtige Konfigurationsdateien
- Umgebung
- NFS-Server
- NFS-Client
- NFS-Server konfigurieren
- NFS-Server installieren
- NFS-Freigabe erstellen
- Firewall konfigurieren
- NFS-Client konfigurieren
- NFS-Client installieren
- NFS-Freigabe prüfen
- Mount NFS Share
- NFS-Freigaben automatisch einhängen
- Fazit
Vorteile von NFS
- Datei- / Ordnerfreigabe zwischen * Nix-Systemen
- Ermöglicht das lokale Mounten von Remote-Dateisystemen
- Kann als zentrales Speichersystem fungieren
- Es kann als Speicherdomäne (Datenspeicher) für VMware und andere Virtualisierungsplattformen verwendet werden.
- Ermöglicht es Anwendungen, Konfigurations- und Datendateien mit mehreren Knoten zu teilen.
- Ermöglicht die Aktualisierung von Dateien in der gesamten Freigabe.
Wichtige Dienste
Die folgenden wichtigen NFS-Dienste sind in nfs-utils-Paketen enthalten.
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: Sperren 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/exporte: Es ist die Hauptkonfigurationsdatei, steuert, welche Dateisysteme auf Remote-Hosts exportiert werden, und gibt Optionen an.
/etc/fstab: Diese Datei wird verwendet, um zu steuern, welche Dateisysteme, einschließlich NFS-Verzeichnisse, beim Systemstart eingehängt werden.
/etc/sysconfig/nfs: Diese Datei wird verwendet, um zu steuern, auf welchen Ports die erforderlichen RPC-Dienste ausgeführt werden.
/etc/hosts.erlauben und /etc/hosts.verweigern: Diese Dateien werden TCP-Wrapper genannt, steuert den Zugriff auf den NFS-Server. Es wird von NFS verwendet, um zu entscheiden, ob eine Verbindung von einer anderen IP-Adresse akzeptiert werden soll oder nicht.
Umgebung
Hier werde ich CentOS 7 minimal für diese Demo verwenden. Dieses Handbuch sollte auch auf Oracle Linux- und Fedora-Systemen funktionieren.
NFS-Server
Hostname: Server.itzgeek.lokale (CentOS 7)
IP-Adresse: 192.168.1.10/24
NFS-Client
Hostname: Client.itzgeek.lokale (CentOS 7)
IP-Adresse: 192.168.1.20/24
NFS-Server konfigurieren
NFS-Server installieren
Installieren Sie das folgende Paket für 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 rpcbindsystemctl enable nfs-server rpcbind
NFS-Freigabe erstellen
Lassen Sie uns nun ein Verzeichnis erstellen, das für den NFS-Client freigegeben werden soll. Hier werde ich ein neues Verzeichnis namens nfsfileshare in der / Partition erstellen.
Sie können Ihr vorhandenes Verzeichnis auch für NFS freigeben.
mkdir /nfsfileshare
Erlauben Sie dem NFS-Client, das erstellte Verzeichnis zu lesen und in dieses zu schreiben.
chmod 777 /nfsfileshare/
Wir müssen die Datei /etc/exports ändern, um das Verzeichnis /nfsfileshare einzugeben, das Sie freigeben möchten.
vi /etc/exports
Erstellen Sie eine NFS-Freigabe wie unten beschrieben.
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/ nfsfileshare: freigegebenes Verzeichnis
192.168.1.20: IP-Adresse des Client-Rechners. Wir können auch den Hostnamen anstelle einer IP-Adresse verwenden. Es ist auch möglich, den Bereich der Clients mit Subnetz wie 192.168.1.0 / 24 zu definieren.
rw: Beschreibbare Berechtigung zum freigegebenen Ordner
sync: Alle Änderungen am entsprechenden Dateisystem werden sofort auf die Festplatte gespült; Die entsprechenden Schreiboperationen werden abgewartet.
no_root_squash: Standardmäßig wird jede Dateianforderung, die vom Benutzer root auf dem Clientcomputer gestellt wird, wie von Benutzer nobody auf dem Server behandelt. (Welche UID genau der Anforderung zugeordnet ist, 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 Clientcomputer dieselbe Zugriffsebene auf die Dateien auf dem System wie 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 der freigegebenen Dateien und Exportoptionen auf einem Server an.
exportfs -a: Exportiert alle Verzeichnisse, die in /etc/exports aufgelistet sind.
exportfs -u: UnExport eines oder mehrerer Verzeichnisse.
exportfs -r: Exportiert alle Verzeichnisse erneut, nachdem /etc/exports geändert wurde.
Nach der Konfiguration des NFS-Servers müssen wir dieses freigegebene Verzeichnis im NFS-Client bereitstellen.
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 mountdfirewall-cmd --permanent --add-service rpc-bindfirewall-cmd --permanent --add-service nfsfirewall-cmd --reload
NFS-Client konfigurieren
NFS-Client installieren
Wir müssen NFS-Pakete auf dem NFS-Client installieren, um eine Remote-NFS-Freigabe bereitzustellen. Installieren Sie NFS-Pakete mit dem folgenden Befehl.
yum install -y nfs-utils
NFS-Freigabe prüfen
Vor dem Mounten der NFS-Freigabe 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.
showmount -e 192.168.1.10
Ausgabe:
Export list for 192.168.1.10:/nfsfileshare 192.168.1.20
Gemäß der 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) an.
showmount -e <server-ip oder Hostname>: Listet die verfügbaren Freigaben auf dem Remote-Server auf
Erstellen Sie nun ein Verzeichnis auf dem NFS-Client, um die NFS share /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 bereitzustellen.
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)
Sie können auch 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% /devtmpfs tmpfs 496M 0 496M 0% /dev/shmtmpfs tmpfs 496M 6.7M 490M 2% /runtmpfs 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% /boottmpfs tmpfs 100M 0 100M 0% /run/user/0192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Erstellen Sie eine Datei im eingehängten 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.
NFS-Freigaben automatisch einhängen
Um die Freigaben bei jedem Neustart automatisch einzuhängen, müssen Sie die Datei /etc/fstab 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 0UUID=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 0192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Speichern und schließen Sie die Datei.
Starten Sie den Clientcomputer 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 das freigegebene Verzeichnis von Ihrem NFS-Client aushängen möchten, nachdem Sie mit der Dateifreigabe fertig sind, können Sie das jeweilige Verzeichnis mit dem Befehl umount aushängen.
umount /mnt/nfsfileshare
Fazit
Sie haben den NFS-Server und den NFS-Client unter CentOS 7 / RHEL 7 erfolgreich eingerichtet. Wenn Sie keine statischen Mounts verwenden möchten, können Sie AutoFS unter CentOS 7 so konfigurieren, dass NFS-Freigaben nur dann bereitgestellt werden, wenn ein Benutzer darauf zugreift.