Neulich habe ich mir in einem Anfall von Kauflust ein WD My Book bestellt, dieses wollte ich im Heimnetz via Wlan im RAID 1 Modus als Backup Volume für mein MacBook Pro sowie als Medienspeicher einsetzen. Nach dem Auspacken musste ich erstmal mit Entsetzen feststellen, daß die ganze angepriesene Software manuell im Netz besorgt werden muß, da das NAS laut Bedienungsanleitung für den Mac mit HFS+ formatiert werden muß, was ich auch prompt tat.
Der nächste Schock: mein Router, eine Fritz!Box 7170, kann nur externe USB-Speicher unter FAT oder FAT32 einbinden. Zu blöd, daß FAT32 maximale Dateigrößen von 4 Gigabyte verwalten kann – zu wenig, da ein Time Machine Backup initial erstmal mindestens genauso groß ist wie der auf dem System-Volume belegte Speicherplatz plus „padding“, in meinem Fall also mindestens 190 Gigabyte.
Erfreulicherweise fand ich auf makeuseof.com eine Lösung für das Problem. Sie heißt sparseimage. Ein mitwachsendes Image, welches auch auf FAT32 läuft, les- und schreibbar ist und vor allem auch für Time Machine via Terminal als Backup Volume gesetzt werden kann. Hierfür nutzt man hdiutil, um ein neues sparseimage zu erzeugen (man kann die maximale Größe begrenzen):
hdiutil create -size 300g -type SPARSEBUNDLE -fs "HFS+J" TimeMachineBackup.sparsebundle
Danach kopiert man das Image auf das Netzlaufwerk, mountet es mit Doppelklick und sagt Time Machine, daß es das Image als Speicherort verwenden soll:
sudo tmutil setdestination /Volumes/TimeMachineBackup
Anders als bei makeuseof beschrieben, habe ich das Mounten on boot mit folgendem Applescript umgesetzt:
tell application "Finder"
open location "smb://username:password@fritz.box/WD-MyBookDuo0A10-02"
end tell
delay 5
do shell script "hdiutil attach -mountpoint /Volumes/TimeMachineBackup/ /Volumes/WD-MyBookDuo0A10-02/TimeMachineBackup.sparsebundle"
Dabei ist WD-MyBookDuo0A10-02
der von der Fritz!Box erzeugte Laufwerksname, da ich das NAS in mehrere Partitionen geteilt habe.
Nun hatte ich also fröhlich das NAS in FAT32 formatiert und Time Machine lief auch wirklich an… nur, zu meinem Entsetzen super langsam. Auch ein Wechsel auf USB3 direkt über Kabel brachte keine signifikante Verbesserung. Nach weiterer Recherche zum Thema Time Machine und sparseimage fand ich noch zwei heiße Tips.
Sparseimage besteht intern aus sogenannten bands, chunks mit einer Defaultgröße von 8 Megabyte. Da bei größeren Backups diese schnell sehr viele werden können, kann man Performance verbessern indem man die Größe der bands im sparseimage erhöht.
Auch dies war leider nicht das Optimum, aber bei stackexchange (wo auch sonst) wurde ich fündig: unter El Capitan scheinen die I/O low priority operations zurückgestellt zu werden, was bei Time Machine und vielen kleinen Dateien (node_modules zb…) zu der Verlangsamung führt. Mit dem Terminal Kommando
sudo fs_usage backupd
kann man sehen, welche Operationen „THROTTLED“ sind (ctrl + c zum Verlassen des rasanten Schauspiels). Nun das Backup kurz angehalten und mit
sudo sysctl debug.lowpri_throttle_enabled=0
das Verhalten geändert. Diese Operation brachte es bei mir! Leider ist die Verbindung über einen 802.11a Wlan Router alles andere als toll, ich werde mich nach einem schnelleren Router umsehen.