How To – einen NFS Server und Client auf einem Ubuntu 10.04 aufsetzen
Version 1.0
Autor: Falko Timme <ft [at] falkotimme [dot] com>
[1] Folge mir auf Twitter [2]
Diese Anleitung erklärt wie man einen NFS Server und Client auf einem Ubuntu 10.04 Betriebssystem aufsetzt. NFS steht für Network File System; über NFS kann ein Client auf eine entfernte Freigabe zugreifen (lesen und schreiben), als ob es die lokale Festplatte wäre. Man greift damit auf ein (freigegebenes) Laufwerk zu, zum Beispiel um Daten zu teilen und zu verwalten.
Diese Anleitung kommt ohne Gewähr!
1 Vorbemerkung
Ich benutze hier zwei Ubuntu Systeme:
- NFS Server: server.example.com, IP Adresse: 192.168.0.100
- NFS Client: client.example.com, IP Adresse: 192.168.0.101
Wir müssen als root eingeloggt sein um die Anleitung auszuführen. Wir können entweder alle Befehle mit sudo vorweg eingeben, oder loggen uns gleich als root ein.
sudo su
2 Installation NFS
Server:
Wir führen auf dem NFS Server nun aus:
aptitude install nfs-kernel-server nfs-common portmap
Client:
Auf dem Client installieren wir NFS folgendermaßen:
aptitude install nfs-common portmap
3 Verzeichnisse auf dem Server exportieren
Server:
Ich würde gerne /home und /var/nfs für den Client zugänglich machen, hierfür müssen wie sie auf dem Server „exportieren“.
Wenn ein Client eine NFS Freigabe nutzt, passiert dies normalerweise als der Benutzer nobody. Normalerweise gehört das Verzeichnis /home nicht nobody (und ich empfehle das auch nicht zu ändern!), und da wir jedoch sowohl lesen als auch auf /home schreiben wollen, geben wir für NFS an dass der Zugang als root geschieht, was nicht nötig wäre wenn Deine /home Freigabe nicht nur read-only wäre. Das Verzeichnis /var/nfs existiert noch nicht, also erstellen wir es und ändern den Besitz auf nobody und nogroup:
mkdir /var/nfs
chown nobody:nogroup /var/nfs
Nun müssen wir /etc/exports verändern, hier „exportieren“ wir quasi die NFS Freigabe. Wir spezifizieren /home und /var/nfs als NFS Freigaben und teilen NFS mit einen Zugang zu /home als root zu ermöglichen (um mehr über /etc/exports zu erfahren, über Formate und Optionen, schau Dir dieses an):
man 5 exports
vi /etc/exports
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(Die no_root_squash Option ermöglicht es dass der Zugriff auf /home als root passiert.)
Jedes Mal wenn wir /etc/exports verändern, müssen wir Folgendes ausführen:
exportfs -a
…um die Änderungen durchzuführen.