Edit History Actions

NFSv4 mit Ubuntu

english version

NFSv4 mit Ubuntu

Getestet mit:

  • Server:
    • Ubuntu Alternate Intrepid Ibex (8.10)

    • Ubuntu Alternate Jaunty Jackalope (9.04)

  • Client:
    • Kubuntu Jaunty Jackalope (9.04)

    • Kubuntu Karmic Koala (9.10 beta)

Ich hatte ein paar schwierigkeiten mit diesem HowTo: https://help.ubuntu.com/community/NFSv4Howto/ Irgendwie wollte der Server nur das NFSv4 Protokoll zur Verfügung stellen. Ich hab einige man files gelesen, ein paar Einstellungen geändert und plötzlich hat das NFSv4 Protokoll funktioniert. Ich hatte eigentlich nur Sachen geändert, welche die Performance verringern aber die Datenintegrität erhöhen (das ist mir wichtiger). Da ich nicht weiss, welche Änderung zum Erfolg geführt hat gebe ich hier mal alle Einstellungen an, die ich gemacht habe. Das folgende entspricht fast dem Ohne-Kerberos-Teil des oben genannten HowTos. Ich habe das ganze auf Ubuntu 8.10 alternate (auf dem server) und Kubuntu 9.04 (client) ausprobiert.

Installation

Auf dem System, dass als NFS Client funtionieren soll:

# apt-get install nfs-common

Auf dem System, dass als NFS Server funktionieren soll:

# apt-get install nfs-kernel-server

Es gibt auch ein nfs-user-server package. Es soll bessere Fehlermeldungen geben, aber die Performance soll nicht so gut sein.

Konfiguration ohne Kerberos

Diese Konfiguration sollte nicht in einem öffentlich zugänglichen Netzwerk benutzt werden, wenn die Daten auf dem Server nicht öffentlich sein sollen. Für ein privates LAN hinter einem NAT ohne Weiterleitung zu Port 2049 und mit gut abgesichertem (oder ohne) WLAN sollte es ok sein.

Konfiguration des NFS Servers

Vorbemerkung: Nach dem konfigurieren: Am besten den Server komplett neu starten. Aus irgendeinem Grund ist sonst nur die NFS Protokollversion 3 aktiv.

Es muss ein Pseudodateisystem mit den Verzeichnissen erstellt werden, die exportiert (freigegeben) werden sollen. Das geht einfach durch mounten der Verzeichnisse in ein anderes Dateisystem mit der --bind Option. [Mehr Infos hier (englisch)].

Pseudodateisystem um die User-Verzeichnisse im /home Verzeichnis zu exportieren (freizugeben):

# mkdir /export
# mkdir /export/users

Zum sofortigen benutzen:

# mount --bind /home /export/users

Wenn die exports nach einem Neustart verfügbar sein sollen, diese zeile zu /etc/fstab hinzufügen:

/home   /export/users   none    bind  0  0

Nun würde man mit dem exportfs Befehl dem NFS Server sagen, dass er daraus sein Pseudodateisystem machen soll, auf Ubuntu/Debian Systemen gibt es aber ein init Skript um den Server zu starten und die exports einzurichten. Dieses init Skript kann über folgende Konfigurationsdateien beeinflusst werden:

  • /etc/default/nfs-kernel-server:

    NEED_SVCGSSD=no
  • /etc/default/nfs-common:

    NEED_STATD=no
    NEED_IDMAPD=yes
    NEED_GSSD=no
  • Um die Dateien in dem Subnetz 192.168.1.0/24 freizugeben, folgende Zeile in /etc/exports einfügen. 192.168.1.0/24 kann z.B. durch einen einzelnen Hostnamen oder * (die ganze Welt glaube ich) ersetzt werden:

    /export/users    192.168.1.0/24(rw,sync,fsid=0,insecure,no_subtree_check)
  • Serverdienst (neu)starten:
    # /etc/init.d/nfs-kernel-server restart

NFSv4 Client

  • Den Export vom Server zur sofortigen Verwendung mounten (<NFS-SERVER> durch den Hostnamen des Servers ersetzen):

    # mkdir /nfs-home
    # mount -t nfs4 <NFS-SERVER>:/ /nfs-home
  • Eintrag in /etc/fstab, damit der Export auch nach einem Neustart verwendet werden kann:

    <NFS-SERVER>:/   /nfs-home   nfs4    _netdev,auto  0  0

    Die auto Option mountet beim Neustart und die _netdev Option wartet bis die Netzwerkgerätemodule geladen wurden.

Bei Fehlern mal folgendes versuchen:

  • # /etc/init.d/nfs-common restart


CategoryLinux CategoryUbuntu