Articles tagged "nfsv4"

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

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 ;-)