Einrichten eines NFS-Servers und -Clients unter CentOS

NFS steht für „Network File System“ und ist ein verteiltes Dateisystemprotokoll, das für den Austausch von Dateien und Ordnern zwischen Linux-basierten Betriebssystemen verwendet wird. Mit NFS kannst du ein entferntes Dateisystem lokal über ein Netzwerk einhängen. Mit NFS kannst du Dateien und Verzeichnisse für mehrere Rechner freigeben und die Dateien über die Freigabe aktualisieren. NFS ist die beste Wahl für dich, wenn du nach einer zentralisierten Speicherlösung suchst.

In diesem Lernprogramm zeigen wir dir, wie du einen NFS-Server und -Client unter CentOS 8 einrichtest.

Voraussetzungen

  • Zwei Server, auf denen CentOS 8 läuft.
  • Eine statische IP-Adresse 172.20.10.4 wird auf dem NFS-Server und 172.20.10.3 auf dem NFS-Client konfiguriert.
  • Ein Root-Passwort ist auf beiden Servern konfiguriert.

Erste Schritte

Standardmäßig ist SELinux in CentOS 8 Server aktiviert. Daher musst du es zuerst deaktivieren.

Dies kannst du tun, indem du die Datei /etc/selinux/config bearbeitest:

nano /etc/selinux/config

Nimm die folgenden Änderungen vor:

SELINUX=disabled

Speichere und schließe die Datei. Starte dann dein System neu, um die Änderungen zu übernehmen.

NFS-Server installieren

Standardmäßig ist das NFS-Paket im Standard-Repository von CentOS 8 verfügbar. Du kannst es installieren, indem du den folgenden Befehl ausführst:

dnf install nfs-utils

Nachdem du den NFS-Server installiert hast, starte den NFS-Dienst und aktiviere ihn so, dass er nach einem Neustart des Systems startet:

systemctl start nfs-server
systemctl enable --now nfs-server

Du kannst den Status des NFS-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status nfs-server

Du solltest die folgende Ausgabe sehen:

? nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Thu 2019-11-07 02:07:09 EST; 1s ago
  Process: 9721 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 9699 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
  Process: 9698 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 9721 (code=exited, status=0/SUCCESS)

Nov 07 02:07:09 centos8 systemd[1]: Starting NFS server and services...
Nov 07 02:07:09 centos8 systemd[1]: Started NFS server and services.

NFS-Freigabe erstellen

In diesem Abschnitt erstellen wir zwei Verzeichnisse /nfsshare/data und /nfsshare/backup und geben sie per NFS frei.

Erstelle zunächst die erforderlichen Verzeichnisse mit den folgenden Befehlen:

mkdir -p /nfsshare/data
mkdir -p /nfsshare/backup

Gib den Verzeichnissen mit dem folgenden Befehl volle Berechtigung:

chmod -R 777 /nfsshare

Als nächstes musst du die erstellten Verzeichnisse exportieren, indem du die Datei /etc/exports bearbeitest:

nano /etc/exports

Füge die folgenden Zeilen ein:

/nfsshare/data  172.20.10.0/24(rw,sync,no_subtree_check)
/nfsshare/backup  172.20.10.0/24(ro,sync,no_subtree_check,no_root_squash)

Speichere und schließe die Datei. Führe dann den folgenden Befehl aus, um dein Verzeichnis im Netzwerk freizugeben:

exportfs -ra

Du musst den obigen Befehl jedes Mal ausführen, wenn du die Datei /etc/exports änderst.

Du kannst die aktiven Exporte mit dem folgenden Befehl sehen:

exportfs -v

Du solltest die folgende Ausgabe sehen:

/nfsshare/data	172.20.10.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/nfsshare/backup
		172.20.10.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash)

Firewall konfigurieren

Als Nächstes musst du SSH (für Verwaltungszwecke) und den NFS-Dienst über Firewalld zulassen, um auf die NFS-Freigabe vom entfernten System zuzugreifen. Führe den folgenden Befehl aus, um SSH und den NFS-Dienst über Firewalld zuzulassen:

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

NFS Client installieren

Melde dich beim NFS-Client-System an und installiere das NFS-Client-Paket mit dem folgenden Befehl:

dnf install nfs-utils

Sobald die Installation abgeschlossen ist, kannst du die auf dem NFS-Server verfügbaren NFS-Freigaben mit dem folgenden Befehl überprüfen:

showmount -e 172.20.10.4

Du solltest die folgende Ausgabe sehen:

Export list for 172.20.10.4:
/nfsshare/backup 172.20.10.0/24
/nfsshare/data   172.20.10.0/24

Einhängen der NFS-Freigaben auf dem Client

Als Nächstes erstellst du zwei Verzeichnisse auf dem Client-Rechner, in die du die NFS-Freigaben einhängen möchtest.

mkdir /home/backup
mkdir /home/data

Hänge die Verzeichnisse auf dem NFS-Server mit den folgenden Befehlen ein:

mount -t nfs4 172.20.10.4:/nfsshare/data /home/data
mount -t nfs4 172.20.10.4:/nfsshare/backup /home/backup

Jetzt kannst du die eingehängten NFS-Freigaben mit dem folgenden Befehl überprüfen:

df -h

Du solltest die folgende Ausgabe sehen:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/sda1                      92G   36G   51G  42% /
none                          4.0K     0  4.0K   0% /sys/fs/cgroup
none                          5.0M     0  5.0M   0% /run/lock
none                          1.9G   65M  1.9G   4% /run/shm
none                          100M   44K  100M   1% /run/user
/dev/sda5                     184G  104G   71G  60% /home
172.20.10.4:/nfsshare/data     13G  1.8G   11G  14% /home/data
172.20.10.4:/nfsshare/backup   13G  1.8G   11G  14% /home/backup

Wenn du die NFS-Freigaben aushängen willst, führe folgende Befehle aus:

umount /home/data
umount /home/backup

NFS-Freigaben aushängen

Wenn du die NFS-Freigaben bei jedem Neustart automatisch einhängen willst, bearbeite die Datei /etc/fstab auf dem Client-Rechner:

nano /etc/fstab

Füge die folgenden Zeilen hinzu:

172.20.10.4:/nfsshare/data /home/data nfs4    rw,sync,hard,intr  0     0
172.20.10.4:/nfsshare/backup /home/backup nfs4    rw,sync,hard,intr  0     0

Speichere und schließe die Datei, wenn du fertig bist.

Jetzt kannst du den Rechner neu starten und die Einhängepunkte bleiben auch nach dem Neustart erhalten.

Fazit

Herzlichen Glückwunsch! Du hast den NFS Server und Client unter CentOS 8 erfolgreich installiert und konfiguriert. Dein Server ist jetzt bereit, Dateien bereitzustellen. Denke daran, dass NFS nicht sehr sicher ist, deshalb wird empfohlen, die Kerberos-Authentifizierung zu aktivieren.

Das könnte dich auch interessieren …