GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie den NFS-Server unter CentOS 7 / RHEL 7 ein

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 :Listet die verfügbaren Freigaben auf der Remote-Server

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.


Cent OS
  1. So richten Sie einen SFTP-Server unter CentOS ein

  2. So installieren Sie Puppet unter CentOS 8 / RHEL 8

  3. SysLog-Server auf CentOS 6 / RHEL 6 einrichten

  4. Wie richte ich einen NTP-Server in CentOS ein?

  5. So richten Sie einen Squid-Proxyserver unter CentOS/RHEL 7 ein

So richten Sie Jenkins unter CentOS 8 / RHEL 8 ein

So richten Sie einen SVN-Server unter CentOS ein

So richten Sie Icinga Web 2 unter CentOS 8 / RHEL 8 ein

So installieren Sie Zabbix Server 4.x unter CentOS 6 / RHEL 6

So richten Sie einen zentralisierten SysLog-Server unter CentOS 8 / RHEL 8 ein

So richten Sie HAProxy unter CentOS 8 ein