Michael Koflers Blog
WD NAS, rsync und Linux
Auf der NAS-Festplatte läuft Linux (BusyBox) und Samba. Der Zugriff auf die Festplatte erfolgt normalerweise über Windows-Netzwerkverzeichnisse (also Samba-shares). NFS wird auch unterstützt, aber darauf gehe ich hier nicht ein.
Grundsätzlich funktioniert alles bestens, d.h., ich kann die Festplatte im lokalen Netzwerk unter Linux, Mac OS X und Windows nutzen. Probleme gibt es allerdings unter Linux, wenn ich dort ein Netzwerkverzeichnis mit cifs in das lokale Dateisystem einbinde und dann versuche, mit rsync -a ein Verzeichnis auf die NAS-Festplatte zu kopieren. Dabei treten alle möglichen Fehler auf, am häufigsten failed to set times on <dateiname>.
Nach langem Suchen habe ich schließlich die Ursache für diesen Fehler gefunden. Die auf dem Gerät installierte Samba-Version 3.0.23 enthält einen bekannten Fehler in der Implementierung der DFS-Funktionen. DFS steht für Distributed Filesystem und erlaubt es, auf die Netzwerkverzeichnisse mehrerer Server einheitlich zuzugreifen. (Details können Sie in der Samba-Dokumentation nachlesen.)
Der DFS-Fehler ist an sich wäre nicht schlimm (ich habe keinen Bedarf für DFS), er verursacht aber Komplikationen im Zusammenhang mit CIFS unter Linux. (Das Common Internet File System erlaubt es, ein Netzwerkverzeichnis in das Linux-Dateisystem einzubinden.) Betroffen davon ist vor allem rsync.
Abhilfe
Es gibt drei Lösungsansätze. Die beste Lösung bestünde darin, auf dem NAS-Gerät eine aktuellere Samba-Version zu installieren. Ich habe aber keine Ahnung, wie ein solches Update zu bewerkstelligen wäre.
Variante zwei besteht darin, Linux-Client-seitig die mount-Option nodfs zu verwenden (also mount -t cifs -o user=xxx,password=yyy,uid=1000,gid=1000,iocharset=utf8,nodfs //wd-nas/share /media/dir).
Zu guter Letzt können Sie sich als root auf dem NAS-Gerät einzuloggen und in den globalen Abschnitt von /etc/samba/smb.conf die Zeile msdfs root = no einzufügen. Als einziger Editor steht vi zur Verfügung. Anschließend muss Samba neu gestartet werden (mit /etc/init.d/S90smbd restart). Ich habe mich für diese Variante entschieden, und seither funktioniert rsync anstandslos.
PS: Weil ich schon über das WD MyBook schreibe: Bei entsprechender Konfiguration ist es möglich, auf dieses Gerät via SSH zuzugreifen. Für rsync via SSH ist die CPU der NAS-Festplatte aber zu langsam. Die Datenübertragungsgeschwindigkeit sinkt dann von ohnedies mageren ca. 8 MByte/s auf rund 1 MByte/s.