NFSv4 verringert Latenzen gegenüber NFSv3 (insbesondere über WLAN)

Bild von Sven

Kurz zu meiner Motivation:

Weil ich es lieben und schätzen gelernt habe, auf vielen/allen Rechner das gleiche Home-Verzeichnis zu haben, liegt bei mir zu Hause /home auf meinem Server. Dies wird dann von den diversen anderen Rechner per NFS (bisher V3) gemountet.

Meine Workstation ist aufgrund der Lage in der Wohnung per WLAN mit dem Server verbunden, was an sich kein Problem ist (die Geschwindigkeit reicht vollkommen aus, vielleicht mal beim DVD brennen nervt's - wenn das Image auf dem Server liegt).

Allerdings gibt es ein paar Programme, die IMHO viel zu häufig auf das Dateisystem zugreifen, dazu gehört eben Firefox/Iceweasel. Das Ergebnis war, dass man bis zu 3 Sekunden warten musste, bis sich ein neues Tag geöffnet hat - grausam! Versuche mit lokalem Home-Verzeichnis und Firefox/Iceweasel bzw. NFS-Home und Opera haben gezeigt, dass es eindeutig an dieser Kombination lag.

Da ich mich vor längerer Zeit auch schon mal beruflich mit NFSv4/NFS4 auseinander gesetzt habe und daher wusste, dass genau diese vielen Round-Trips zwischen Server und Client reduziert wurden, dachte ich mir, probier's doch "mal einfach schnell aus". Pustekuchen! Leider gibt's zu viele Anleitungen, die auf alten Ständen aufsetzen und nicht funktionieren. Deswegen hier eine Lösung für Debian/Lenny (NFS-Tools 1.1.2).

  1. Vorbereitung IDMAP - Server & Client
    NFSv4/NFS4 arbeitet auf der Leitung nicht mehr mit User-IDs, sondern mit "User-Strings", welche wie E-Mail-Adressen aussehen. Dazu gibt's den (rpc.)idmapd, welcher die Umsetzung auf beiden Seiten vornimmt.

    % cat >/etc/idmapd.conf <<EOF
    [General]
    
    Verbosity = 0
    Pipefs-Directory = /var/lib/nfs/rpc_pipefs
    Domain = homenfs.domainname.local
    
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nogroup
    
  2. Server einrichten
    Benötigte Pakete installieren:

    root@server% aptitude install nfs-kernel-server
    

    Anlegen der neuen Export-Struktur:

    root@server% mkdir -p /exports/{home,data}
    

    Dauerhafter Bind-Mount der zu exportierenden Verzeichnisse:

    root@server% cat >>/etc/fstab <<EOF
    /home  /exports/home  none  bind  0 0
    /data  /exports/data  none  bind  0 0
    EOF
    

    Exportieren der neuen Struktur:

    root@server% cat >>/etc/exports <<EOF
    /exports       192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash,fsid=0,crossmnt)
    /exports/home  192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
    /exports/data  192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
    EOF
    

    Starten der NFS- und IDMAP-Dienste:

    root@server% /etc/init.d/nfs-common restart
    root@server% /etc/init.d/nfs-kernel-server restart
    
  3. Client einrichten
    Benötigte Pakete installieren:

    root@server% aptitude install nfs-common
    

    Dauerhaftes Mounten der Verzeichnisse:

    root@client% cat >>/etc/fstab <<EOF
    server:/home  /home/  nfs4  defaults  0 0
    server:/data  /data/  nfs4  defaults  0 0
    EOF
    root@client% mount -a
    
  4. Glücklich sein
    Man merkt zwar immernoch einen kleinen Unterschied zwischen lokalem und NFS-Home-Verzeichnis, aber das nur gelegentlich. Auf jeden Fall kann man nun auch wieder mit Firefox/Iceweasel gut arbeiten ;-)

Trackback URL for this post:

http://www.velt.de/trackback/237

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • You may link to Gallery2 items on this site using a special syntax.

Weitere Informationen über Formatierungsoptionen

To combat spam, please enter the code in the image.
Inhalt abgleichen
Powered by Olark