Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:nfs

Dies ist eine alte Version des Dokuments!


NFS auf 2 Servern installieren

Ziel:
Zwei Ubuntu-Server sollen gegenseitig Daten über NFS austauschen.
Beide Server greifen mit einem gemeinsamen technischen User nfsync auf die Freigaben zu.
Dateien können gelesen, geschrieben, geändert und gelöscht werden.

Beispiel:
ubuntu01 exportiert: /media/daten/ubuntu01-share
ubuntu03 exportiert: /home/ubuntu03-share
auf ubuntu01 wird das Share von ubuntu03 nach /mnt/ubuntu03-share gemountet
auf ubuntu03 wird das Share von ubuntu01 nach /mnt/ubuntu01-share gemountet

Platzhalter:
IP_UBUNTU01 = IP-Adresse von ubuntu01
IP_UBUNTU03 = IP-Adresse von ubuntu03
UID_VON_nfsync / GID_VON_nfsync = Werte aus id nfsync

  1. NFS-Pakete installieren

Auf beiden Servern ausführen:

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

  1. NFS-User auf erstem Server anlegen

Auf z.B. ubuntu01:

sudo adduser nfsync

oder ohne Login-Shell:

sudo useradd -m -s /usr/sbin/nologin nfsync

UID und GID anzeigen:

id nfsync

Die ausgegebenen Werte für UID und GID notieren.

  1. Gruppe auf zweitem Server anlegen

Auf dem zweiten Server die Gruppe mit derselben GID wie auf dem ersten Server anlegen:

sudo groupadd -g GID_VON_nfsync nfsync

  1. Gleichen User auf zweitem Server anlegen

Auf dem zweiten Server den User mit derselben UID und GID anlegen:

sudo useradd -m -u UID_VON_nfsync -g GID_VON_nfsync -s /usr/sbin/nologin nfsync

Prüfen:

id nfsync

Auf beiden Servern müssen UID und GID identisch sein.

  1. Exportverzeichnis auf ubuntu01 erstellen

sudo mkdir -p /media/daten/ubuntu01-share
sudo chown nfsync:nfsync /media/daten/ubuntu01-share
sudo chmod 770 /media/daten/ubuntu01-share

Hier liegen die eigenen Daten von ubuntu01, die über NFS freigegeben werden.

  1. Exportverzeichnis auf ubuntu03 erstellen

sudo mkdir -p /home/ubuntu03-share
sudo chown nfsync:nfsync /home/ubuntu03-share
sudo chmod 770 /home/ubuntu03-share

Hier liegen die eigenen Daten von ubuntu03, die über NFS freigegeben werden.

  1. /etc/exports auf ubuntu01 konfigurieren

sudo nano /etc/exports

Eintrag ergänzen:

/media/daten/ubuntu01-share IP_UBUNTU03(rw,sync,no_subtree_check,all_squash,anonuid=UID_VON_nfsync,anongid=GID_VON_nfsync)

Bedeutung:
rw = Lesen und Schreiben erlaubt
sync = synchron schreiben
no_subtree_check = weniger Probleme bei Unterverzeichnissen
all_squash = alle Zugriffe werden auf den anonymen User gemappt
anonuid / anongid = UID/GID des Users nfsync

  1. /etc/exports auf ubuntu03 konfigurieren

sudo nano /etc/exports

Eintrag ergänzen:

/home/ubuntu03-share IP_UBUNTU01(rw,sync,no_subtree_check,all_squash,anonuid=UID_VON_nfsync,anongid=GID_VON_nfsync)

  1. Exporte neu einlesen

Auf beiden Servern ausführen:

sudo exportfs -ra

  1. Exportliste prüfen

sudo exportfs -v

Kontrollieren, ob beide Verzeichnisse korrekt exportiert sind.

  1. UFW: NFS auf ubuntu01 erlauben

sudo ufw allow from IP_UBUNTU03 to any port nfs

  1. UFW: NFS auf ubuntu03 erlauben

sudo ufw allow from IP_UBUNTU01 to any port nfs

  1. Mountpoint auf ubuntu01 anlegen (für ubuntu03)

sudo mkdir -p /mnt/ubuntu03-share

Dieser Ordner ist nur der lokale Mountpoint auf ubuntu01.
Hier keine eigenen Daten ablegen.

  1. Mountpoint auf ubuntu03 anlegen (für ubuntu01)

sudo mkdir -p /mnt/ubuntu01-share

Dieser Ordner ist nur der lokale Mountpoint auf ubuntu03.
Hier keine eigenen Daten ablegen.

  1. Test-Mount auf ubuntu01 (Share von ubuntu03)

sudo mount -t nfs4 IP_UBUNTU03:/home/ubuntu03-share /mnt/ubuntu03-share

Danach zeigt /mnt/ubuntu03-share die Daten von /home/ubuntu03-share auf ubuntu03 an.

  1. Test-Mount auf ubuntu03 (Share von ubuntu01)

sudo mount -t nfs4 IP_UBUNTU01:/media/daten/ubuntu01-share /mnt/ubuntu01-share

Danach zeigt /mnt/ubuntu01-share die Daten von /media/daten/ubuntu01-share auf ubuntu01 an.

  1. Mounts prüfen

mount | grep nfs

zusätzlich:

ls -l /mnt/ubuntu03-share
ls -l /mnt/ubuntu01-share

  1. Funktionstest: Datei von ubuntu01 nach ubuntu03 schreiben

Auf ubuntu01:

sudo -u nfsync touch /mnt/ubuntu03-share/test_von_ubuntu01.txt

Auf ubuntu03 prüfen:

ls -l /home/ubuntu03-share

Die Datei sollte dort sichtbar sein und dem User nfsync gehören.

  1. Funktionstest: Datei von ubuntu03 nach ubuntu01 schreiben

Auf ubuntu03:

sudo -u nfsync touch /mnt/ubuntu01-share/test_von_ubuntu03.txt

Auf ubuntu01 prüfen:

ls -l /media/daten/ubuntu01-share

Die Datei sollte dort sichtbar sein und dem User nfsync gehören.

  1. Dauerhafter Mount auf ubuntu01 (/etc/fstab)

sudo nano /etc/fstab

Zeile ergänzen:

IP_UBUNTU03:/home/ubuntu03-share /mnt/ubuntu03-share nfs4 rw,_netdev,auto 0 0

  1. Dauerhafter Mount auf ubuntu03 (/etc/fstab)

sudo nano /etc/fstab

Zeile ergänzen:

IP_UBUNTU01:/media/daten/ubuntu01-share /mnt/ubuntu01-share nfs4 rw,_netdev,auto 0 0

  1. fstab-Einträge testen

sudo umount /mnt/ubuntu03-share 2>/dev/null
sudo umount /mnt/ubuntu01-share 2>/dev/null
sudo mount -a

Wenn keine Fehlermeldung erscheint, sind die Einträge korrekt.

  1. Rechte und Ownership prüfen

ls -ld /media/daten/ubuntu01-share /home/ubuntu03-share
ls -l /mnt/ubuntu01-share /mnt/ubuntu03-share

Dateien, die über NFS erzeugt wurden, sollten als User/Gruppe nfsync erscheinen.

  1. Wichtiger Hinweis

Die NFS-Exports bleiben auf den Servern:

ubuntu01: /media/daten/ubuntu01-share
ubuntu03: /home/ubuntu03-share

Gemountet wird immer nur auf die lokalen Mountpoints:

ubuntu01: /mnt/ubuntu03-share
ubuntu03: /mnt/ubuntu01-share

Nicht auf das Export-Verzeichnis selbst mounten, da sonst die lokalen Daten an dieser Stelle überdeckt werden.

  1. Mount wieder lösen

sudo umount /mnt/ubuntu03-share
sudo umount /mnt/ubuntu01-share

  1. Fehlerdiagnose

Exportliste anzeigen:

sudo exportfs -v

Aktive NFS-Mounts prüfen:

mount | grep nfs

Erreichbare Exporte eines Servers anzeigen:

showmount -e IP_UBUNTU01
showmount -e IP_UBUNTU03

ubuntu/nfs.1775988493.txt.gz · Zuletzt geändert: von franz

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki