Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
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
2. 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.
3. 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\\
4. 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.
5. 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.
6. 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.
7. /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
8. /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)\\
9. Exporte neu einlesen
Auf beiden Servern ausführen:
\\
sudo exportfs -ra\\
10. Exportliste prüfen
\\
sudo exportfs -v\\
Kontrollieren, ob beide Verzeichnisse korrekt exportiert sind.
11. UFW: NFS auf ubuntu01 erlauben
\\
sudo ufw allow from IP_UBUNTU03 to any port nfs\\
12. UFW: NFS auf ubuntu03 erlauben
\\
sudo ufw allow from IP_UBUNTU01 to any port nfs\\
13. 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.
14. 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.
15. 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.
16. 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.
17. Mounts prüfen
\\ mount | grep nfs\\
zusätzlich:
\\ ls -l /mnt/ubuntu03-share\\ ls -l /mnt/ubuntu01-share\\
18. 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.
19. 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.
20. 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\\
21. 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\\
22. 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.
23. 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.
24. 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.
25. Mount wieder lösen
\\ sudo umount /mnt/ubuntu03-share\\ sudo umount /mnt/ubuntu01-share\\
26. 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\\