Ein Grund für den Umstieg auf Freetz bei meiner FRITZ!Box war die Möglichkeit, via NFS einen besseren Datendurchsatz bei Netzwerkfreigaben zu bekommen. Schon damals bei meiner NSLU2 mit Debian hatte ich gemerkt, dass ich mit NFS deutlich mehr über die Leitung bekomme als mit Samba. Gerade bei Systemen mit einer schwachen CPU macht sich der Unterschied bemerkbar, die NSLU2 konnte über Samba gerade mal 3,5MB/s verarbeiten, über NFS jedoch gleich schon rund 5 MB/s. Einen ähnlichen Effekt erhoffte ich mir jetzt für Freetz, denn die ursprüngliche Performance der FRITZ!Box als Fileserver war alles andere als berauschend.
Um Support für NFS auf die gefreetzte FRITZ!Box zu bekommen, müsst ihr nfs-utils und NFSD_CGI in das Freetz-Image einbauen. Eine entsprechende Anleitung für Freetz habe ich ja schon hier im Blog gebracht. Ich konzentriere mich daher lieber auf die Konfiguration von NFS und die Auswirkungen auf die Netzwerkperformance der Box. Um Freetz auf die FRITZ!Box zu bekommen, lest euch zuvor bitte in den genannten Artikel zu Freetz ein.
Freigaben via NFS einrichten und konfigurieren
Nach der Aufnahme der beiden Module in euer Freetz-Image und einem anschließenden Neustart, könnt ihr NFS unter http://fritz.box:81/cgi-bin/conf/nfsd konfigurieren. Die Konfigurationen für die exports, hosts.allow, hosts.deny und Co. könnt ihr dabei aus der nfsd-Doku von Freetz übernehmen. Nehmt am besten auch den SSH-Server Dropbear mit in euer Image auf, so könnt ihr später ganz einfach über SSH mit der FRITZ!Box arbeiten, um etwa die Dateirechte auf dem externen Datenträger zu korrigieren.

Wichtig dabei ist allerdings, dass ihr als freizugebendes Medium Platten verwendet, die mit Ext3 oder ReiserFS formiert sind (Ext4 ginge natürlich auch, allerdings hatte ich Probleme beim Einbinden von mit Ext4 formatierten Partitionen, von daher gebe empfehle ich eher Ext3 als Dateisystem). Mit hoher Wahrscheinlichkeit müsst ihr auf dem Laufwerk auch noch die Dateirechte korrigieren, ich logge mich dazu via SSH auf der FreetzBox ein und übergebe die Daten dem User „ftp“ und der Gruppe „users“.
$ ssh root@fritz.box
$ cd /var/media/ftp/
# Bitte passt den Pfad zur Platte an, bei mir nennt sie sich datengrab
$ chown ftp:users datengrab -R
$ find datengrab/ -type d -exec chmod 775 {} +
$ find datengrab/ -type f -exec chmod 664 {} +
Danach könnt ist auf Seiten der FRITZ!Box alles erledigt. Ihr müsst nun auf eurem Linux-System den NFS-Client installieren und die Freigabe bei euch einbinden. Auf einem Debian/Ubuntu-System installiert ihr dafür erst einmal das Paket nfs-common, legt dann einen Mount-Punkt an (nichts anderes als ein Verzeichnis, in das die Freigabe geladen wird) und bearbeitet dann die Datei /etc/fstab so dass die NFS-Freigabe der FRITZ!Box geladen wird.
$ sudo apt-get install nfs-common
$ sudo mkdir /media/fritzbox
$ gksudo gedit /etc/fstab
Der Eintrag in die fstab sähe z.B. so aus. Den Pfad zu Freigabe und zum Mountpunkt müsst ihr natürlich noch an eure Situation anpassen. Den Rest könnt ihr direkt übernehmen und ans Ende der fstab kopieren.
# Freetzbox über NFS mounten
fritz.box:/var/media/ftp/datengrab /media/fritzbox nfs vers=3,rw,rsize=65536,wsize=65536 0 0Nach dem Speichern der Datei, könnt ihr über das folgende Kommando alle über die fstab eingetragenen Mount-Vorgänge neu einlesen lassen, so spart ihr euch noch einen Neustart oder das manuelle Ausführen eines längeren mount-Kommandos.
$ sudo mount -a
Nun sollte die Netzwerkfreigabe der FreetzBox unter /media/fritzbox erscheinen. Testet am besten kurz aus, ob ihr dort lesen und schreiben könnt. Sollte das nicht der Fall sein, so wird vermutlich noch etwas mit den Dateirechten nicht stimmen.
Was bringt nun NFS auf der FRITZ!Box?
Zum Abschluss komme ich nun auf die ursprüngliche Frage zurück, lohnt sich der Aufwand eigentlich? Der springende Punkt dabei ist natürlich die Übertragungsrate von Daten zur FRITZ!Box. Ursprünglich hing an meiner unmodifizierte FRITZ!Box eine mit NTFS formatierte USB-Platte. Subjektiv beurteilt war diese Lösung grottig langsam, Transfers größerer Datenmengen von 3-4 GB dauerten Stunden und auch das Einlesen von Verzeichnissen mit vielen Dateien/Ordner war zeitraubend. Nach dem Freetzen und Umstellen auf Ext3 als Dateisystem und NFS als Dateifreigabe sieht das nun deutlich anders aus…
$ time cp 1gb.test /media/fritzbox_samba/
real 4m56.363s
$ time cp ubuntu-11.04-desktop-i386.iso /media/freetz_nfs/
real 1m58.300s
$ time cp ubuntu-11.04-desktop-i386.iso /media/freetz_samba/
real 2m14.387s
Errechne ich nun aus diesen Zeiten eine Datenübertragungsrate, so kommt wieder NFS vor Samba ans Ziel. Immerhin ist NFS nach wie vor rund 0,7 MB/s schneller als Samba, allerdings ist der Unterschied nicht mehr so gravierend wie damals mit meiner NLSU2.
| Transfer über | Dateisystem | Dateigröße | Dauer | Transferrate |
|---|---|---|---|---|
| NFS (Freetz) | Ext3 | 718583808 | 118 s | 5,80 MB/s |
| SMB (Freetz) | Ext3 | 718583808 | 134 s | 5,11 MB/s |
| SMB (Fritz) | NTFS | 1000000000 | 290 s | 3,29 MB/s |
Die Verbesserten Übertragungsraten spürt man auch im Linux-Alltag. Natürlich spart man beim Kopieren größerer Datenmengen deutlich Zeit, aber auch das „Browsen“ mit Nautilus auf der Freigabe geht spürbar schneller. Vorher war immer eine kurze Denkpause nach dem Wechsel eines Verzeichnisses nötig, jetzt ist der Inhalt sofort da. Vorher dauerte das Einlesen eines Verzeichnisses mit VIELEN Dateien wirklich lange, jetzt ist auch dieses Verzeichnis sofort da. Der Umstieg auf Freetz und NFS ist daher auf jeden Fall lohnenswert.
Den gewaltigen Performance-Vorsprung gegenüber der ursprünglichen Konfiguration (NTFS und Original-Firmware) führe ich auf das Dateisystem NTFS zurück. Ich habe schon selbst bei mir auf meinem Desktop-Rechner mit Intel Core i3 festgestellt, dass NTFS unter Linux ziemlich auf die CPU geht, das ist natürlich fatal bei einem auf einem Embeded-Linux, bei dem nur eine leistungsschwache CPU zur Verfügung steht.
Ich hatte es leider verpasst die Netzwerkperformance einer freigegeben und mit FAT formatierten Platte zu messen, aber ich denke dass hier ein Plus an Geschwindigkeit definitiv messbar sein wird. Wer also mit den Übertragungsraten seiner FRITZ!Box nicht zufrieden ist, die Box jedoch nicht „freetzen“ möchte, der kann ja mal seine externe Platte auf FAT umstellen [UPDATE: Neuere FRITZ!Boxen können auch direkt mit Ext2 formatierte Laufwerke einbinden, vielleicht ist das die beste Option für ungefreetzte Boxen].






Schreibe einen Kommentar