GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So konfigurieren Sie einen NFS-Server und mounten NFS-Freigaben unter Ubuntu 18.04

Network File System (NFS) ist ein beliebtes verteiltes Dateisystemprotokoll, mit dem Benutzer Remote-Verzeichnisse auf ihrem Server bereitstellen können. Mit dem System können Sie Speicherplatz an einem anderen Ort nutzen und mühelos von mehreren Servern auf denselben Speicherplatz schreiben. Es funktioniert daher ziemlich gut für Verzeichnisse, auf die Benutzer häufig zugreifen müssen. Dieses Tutorial erklärt den Vorgang des Einhängens einer NFS-Freigabe auf einem Ubuntu 18.04-Server in einfachen und leicht verständlichen Schritten.

Vorläufige Informationen

Für die Zwecke dieses Tutorials würde es eine Verzeichnisfreigabekonfiguration zwischen zwei Ubuntu 18.04-Servern geben, die beliebig groß sein könnten. Für jeden dieser Server benötigen Sie jedoch ein Konto, das mit sudo eingerichtet wurde Privilegien. Der Server, der seine Verzeichnisse freigeben soll, wird als Host bezeichnet , während der Server, der diese Verzeichnisse bereitstellen soll, als Client bezeichnet wird. 3. Aus Gründen der Einheitlichkeit und Einfachheit werden im gesamten Tutorial die folgenden IP-Adressen verwendet, um auf die Host- und Serverwerte zu verweisen:

  • Host: 192.168.0.100
  • Client: 192.168.0.101

Benutzer müssen die oben genannten Werte durch ihre unterschiedlichen Host- und Client-Werte ersetzen. Wir sind jetzt bereit, die Schritte zum Mounten einer NFS-Freigabe auf Ubuntu 18.04 LTS zu lernen.

Herunterladen und Installieren der Komponenten

Zu Beginn ist es wichtig, die erforderlichen Komponenten sowohl auf den Host- als auch auf den Client-Servern zu installieren. Ausdrücklich auf dem Hostserver müssten Sie den nfs-kernel-server installieren -Paket, mit dem Sie Ihre Verzeichnisse freigeben können. Da dies der erste Schritt ist, den Sie in dieser Sitzung mit apt durchführen, müssen Sie vor der Installation damit beginnen, den lokalen Paketindex zu aktualisieren (wie unten angegeben):

sudo apt-get update
sudo apt-get install nfs-kernel-server

Nach der Installation dieser Pakete können Sie zum Client-Computer wechseln. Auf dem Client-Computer müssten Sie ein Paket namens nfs-common installieren , das NFS-Funktionalität bietet, ohne dass die Serverkomponenten eingeschlossen werden müssen. Auch hier müssen Sie den lokalen Paketindex vor der Installation aktualisieren, um sicherzustellen, dass Sie aktualisierte Informationen haben (wie unten gezeigt):

sudo apt-get update
sudo apt-get install nfs-common

Damit sind Sie am Ende dieses Schritts angelangt und können nun mit dem nächsten fortfahren.

Erstellen des Freigabeverzeichnisses auf dem Hostserver

Für die Zwecke dieses Tutorials würde es ein Experiment geben, bei dem zwei unterschiedliche Verzeichnisse gemeinsam genutzt werden. Das erste freigegebene Verzeichnis ist das /home-Verzeichnis Benutzerdaten enthalten. Das zweite wäre ein allgemeines Verzeichnis, das speziell für NFS erstellt wird, um die richtigen Einstellungen und Prozesse zu demonstrieren. Dasselbe würde sich unter /var/nfs befinden Als /home-Verzeichnis bereits existiert, lassen Sie uns einfach fortfahren und mit dem Erstellen des Verzeichnisses /var/nfs beginnen , indem Sie den folgenden Befehl verwenden:

sudo mkdir /var/nfs

Wir haben jetzt ein neues Verzeichnis, das ausdrücklich für die gemeinsame Nutzung mit entfernten Hosts vorgesehen ist. Der Besitz dieses Verzeichnisses ist jedoch noch nicht ideal. Wir müssen einem Benutzer in unserem System mit dem Namen nobody die Benutzereigenschaft zuweisen . Wir müssen den Gruppenbesitz auch einer Gruppe auf dem System mit dem Namen nogroup zuweisen . Dies kann durch Eingabe des folgenden Befehls erfolgen:

sudo chown nobody:nogroup /var/nfs

Es ist wichtig, hier zu beachten, dass wir den Besitz nur für die Verzeichnisse sorgfältig ändern müssen, die besonders für die gemeinsame Nutzung verwendet werden. Beispielsweise darf der Besitz des Home-Verzeichnisses (/home-Verzeichnis) nicht geändert werden, da dies zahlreiche Probleme für Benutzer verursachen würde, die auf dem Host-Server vorhanden sind.

Konfigurieren der NFS-Exporte auf dem Hostserver

Mit den erstellten und zugewiesenen Verzeichnissen können wir nun in die NFS-Konfigurationsdatei eintauchen, um die gemeinsame Nutzung dieser Ressourcen einzurichten. Dazu müssen Sie /etc/exports öffnen Datei im Texteditor mit Root-Rechten mit dem folgenden Befehl:

sudo nano /etc/exports

Die angezeigten Dateien enthalten einige Kommentare, die Sie über die allgemeine Struktur jeder Konfigurationszeile informieren. Im Wesentlichen würde die Syntax der folgenden ähneln:

directory_to_share client (share_option2,...,share_optionM)

Ziel ist es hier, für jedes der Verzeichnisse, die freigegeben werden müssen, eine Zeile anlegen zu können. Da die IP in unserem gewählten Beispiel zufällig 192.168.0.100 lautet, sollten die Zeilen in etwa so aussehen:

/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)

Nehmen wir uns nun etwas Zeit, um die in den obigen Zeilen angegebenen Optionen zu verstehen.

  • w :Diese Option erlaubt dem Client-Computer sowohl Lese- als auch Schreibzugriff auf das Volume.
  • synchronisieren :Es zwingt NFS, Änderungen auf die Festplatte zu schreiben, bevor es antwortet, was zu einer stabileren und konsistenteren Umgebung führt. Dies liegt hauptsächlich daran, dass die Antwort den tatsächlichen Zustand des Remote-Volumes repliziert.
  • nosubtreecheck :Diese Option vermeidet die Teilbaumprüfung, ein Prozess, der den Host zwingt, bei jeder Anfrage zu prüfen, ob die Datei tatsächlich noch im exportierten Baum verfügbar ist. Es kann zu Problemen führen, wenn eine Datei umbenannt wird, während der Client sie geöffnet hat. Aus dem gleichen Grund ist es in fast allen Fällen ratsam, die Teilbaumprüfung zu deaktivieren.
  • Norootsquash :Standardmäßig übersetzt NFS Anfragen von einem Root-Benutzer aus der Ferne in einen nicht privilegierten Benutzer auf dem Server. Dies ist als Sicherheitsfunktion gedacht, die es einem Root-Konto auf dem Client nicht erlaubt, das Dateisystem des Hosts als Root zu verwenden. Diese Art von Direktive deaktiviert dies für eine bestimmte Anzahl von Shares.

Nachdem Sie alle erforderlichen Änderungen vorgenommen haben, müssen Sie die Änderungen ziemlich vorhersehbar vornehmen und diese Änderungen speichern, bevor Sie die Datei schließen. Anschließend müssen Sie die NFS-Tabelle erstellen, die die Exporte Ihrer Freigaben enthält, indem Sie den folgenden Befehl verwenden:

sudo exportfs -a

Der NFS-Dienst läuft jedoch noch nicht. Sie können dasselbe starten, indem Sie den folgenden Befehl eingeben:

sudo service nfs-kernel-server start

Der obige Befehl soll Ihre Freigaben den Clients zur Verfügung stellen, die Sie konfiguriert hätten. Sie können jetzt mit dem nächsten Schritt fortfahren.

Erstellen der Mount-Punkte und Mount-Remote-Freigaben auf dem Client-Server

Wenn der Hostserver konfiguriert ist und seine Verzeichnisfreigaben verfügbar macht, müssen Sie jetzt Ihren Client vorbereiten. Hier müssten Sie die Remote-Freigaben mounten, daher müssen Sie einige Mount-Punkte erstellen. Sie würden das herkömmliche /mnt verwenden Erstellen Sie zunächst und anschließend ein Verzeichnis mit dem Namen NFS darunter zur Konsolidierung der Aktien. Hier sollen die tatsächlichen Verzeichnisse ihrem Standort auf dem Hostserver entsprechen. Benutzer können jedes Verzeichnis und die erforderlichen übergeordneten Verzeichnisse mit dem folgenden Befehl erstellen:

sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs

Nachdem Sie einen angemessenen Platz zum Unterbringen der entfernten Freigaben geschaffen haben, sind Sie nun in der Lage, sie einzuhängen, indem Sie den Host-Server adressieren, der für die Zwecke dieses Tutorials 5.6.7.8 ist, wie unten gezeigt:

sudo mount 192.168.0.100:/home /mnt/nfs/home
sudo mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

Diese sollten es Ihnen ermöglichen, die Freigaben vom Host-Computer auf dem Client-Computer bereitzustellen. Sie können dies überprüfen, indem Sie sich den verfügbaren Speicherplatz auf dem Client-Server ansehen (wie unten angegeben):

df -h

Filesystem Size Used Avail Use% Mounted on /dev/vda 59G 1.3G 55G 3% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 324K 396M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user 192.168.0.100:/home 59G 1.3G 55G 3% /mnt/nfs/home

Wie unten ersichtlich ist, ist nur eine der beabsichtigten Freigaben sichtbar, da beide exportierten Freigaben auf demselben Dateisystem auf dem Remote-Server vorhanden sind, was bedeutet, dass sie denselben Speicherpool teilen. Für die Avail und Verwendung % Genauer gesagt darf nur einer der Anteile in die Berechnungen aufgenommen werden. Wenn Sie dennoch alle von Ihnen gemounteten NFS-Freigaben anzeigen möchten, können Sie den folgenden Befehl eingeben:

mount -t nfs

Der obige Befehl wirft alle NFS-Mounts auf, auf die derzeit auf dem Client-Computer zugegriffen werden kann, was Sie zum Ende dieses Schritts bringt, und es ist jetzt an der Zeit, mit dem nächsten fortzufahren.

Testen des NFS-Zugriffs

Sie können den Freigabezugriff testen, indem Sie etwas in Ihre Freigaben schreiben, zum Beispiel eine Testdatei in eine Ihrer Freigaben (wie unten gezeigt):

sudo touch /mnt/nfs/home/test_home

Hier werden wir auch eine Testdatei in die andere Freigabe schreiben, um einen wichtigen Unterschied zu demonstrieren:

sudo touch /mnt/nfs/var/nfs/test_var_nfs

Bitte sehen Sie sich den Eigentümer der Datei im gemounteten Home-Verzeichnis (wie unten gezeigt) genau an, um den Unterschied zu verstehen:

ls -l /mnt/nfs/home/test_home
-rw-r--r-- 1 root   root      0 Apr 10 09:15 test_home

Wie man sieht, gehört die Datei root, weil Sie den root_squash deaktiviert haben Option auf diesem Mount, die die Datei als unbekannter Nicht-Root-Benutzer geschrieben hätte. Bei der anderen Testdatei, die mit aktiviertem root_squash gemountet wurde, werden Sie etwas ganz anderes bemerken (wie unten erklärt):

ls -l /mnt/nfs/var/nfs/test_var_nfs
-rw-r--r-- 1 nobody nogroup 0 Apr 10 09:15 test_var_nfs

Diese Datei wurde eindeutig dem niemand zugewiesen user und die nogroup Gruppe. Daher entspricht dies der voreingestellten Konfiguration. Lassen Sie uns nun zum nächsten Schritt übergehen.

Automatisches Einbinden von NFS-Verzeichnissen aus der Ferne

Sie haben die Möglichkeit, das Mounten der Remote-NFS-Freigaben automatisch zu machen, indem Sie sie zur fstab hinzufügen Datei auf dem Client. Sie müssen diese Datei mit Root-Rechten in Ihrem Texteditor öffnen, indem Sie den folgenden Befehl verwenden:

sudo nano /etc/fstab

Ganz unten in der Datei müssen Sie für jede der Freigaben eine Zeile hinzufügen, die in etwa so aussehen würde wie unten angegeben:

192.168.0.100:/home      /mnt/nfs/home   nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0

Die hier angegebenen Optionen finden Sie in der Manpage, die das NFS-Mounting in der fstab beschreibt Datei, indem Sie den folgenden Befehl verwenden:

man nfs

Dadurch können Sie die Remote-Partitionen beim Booten automatisch einhängen. Es kann eine Weile dauern, bis die Verbindung hergestellt ist und die Freigaben verfügbar sind (Geduld ist hier eine Tugend!!)

Unmounten einer NFS-Remote-Freigabe

Wenn Sie das Remote-Verzeichnis nicht länger auf Ihrem System einhängen müssen, können Sie es einfach aushängen, indem Sie sich aus der Verzeichnisstruktur der Freigabe herausbewegen und aushängen, indem Sie den folgenden Befehl verwenden:

cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs

Dadurch können Sie die Remote-Freigaben entfernen und nur Ihren lokalen Speicher zugänglich machen:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /	
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  320K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

Wie klar ist, stehen die NFS-Freigaben jetzt nicht als Speicherplatz zur Verfügung. Dies bringt Sie zum Ende des Tutorials.

Schlussfolgerung

NFS bietet einen einfachen und schnellen Mechanismus für den Zugriff auf entfernte Systeme über ein Netzwerk. Das Protokoll steht jedoch unverschlüsselt da. Wenn Sie beabsichtigen, dies in einer Produktionsumgebung zu verwenden, ist es ratsam, das Routing von NFS über SSH oder eine VPN-Verbindung in Betracht zu ziehen, um eine weitaus sicherere Erfahrung zu schaffen.


Ubuntu
  1. So konfigurieren Sie einen NFS-Server und mounten NFS-Freigaben unter Ubuntu 14.04

  2. So konfigurieren Sie einen NFS-Server und mounten NFS-Freigaben unter Ubuntu 14.10

  3. So installieren und konfigurieren Sie den Algo VPN-Server unter Ubuntu 20.04

  4. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie den Redis-Server in Ubuntu

So installieren und konfigurieren Sie Postfix unter Ubuntu 18.04

So installieren Sie NFS-Server und -Client unter Ubuntu

So installieren und konfigurieren Sie LAMP Server unter Ubuntu

So installieren und konfigurieren Sie den OpenLDAP-Server unter Ubuntu 16.04

So installieren und konfigurieren Sie VNC auf Ubuntu Server 20.04

So installieren und konfigurieren Sie einen Linux Ubuntu NFS-Server