Nach einigen Stunden Webrecherche und testen habe ich nun endlich eine Möglichkeit gefunden, zuverlässig Backups via Time Machine auf ein Gerät mit dem NAS-System FreeNAS zu realisieren.
Wie vielleicht bekannt ist, hat Apple mit Mac OS X 10.5.2 die Möglichkeit offiziell gestrichen, Backups mittels Time Machine auf Netzwerkvolumes vorzunehmen, die keine Time Capsule beziehungsweise AirPort Extreme mit angeschlossener USB-Festplatte sind. Das ist insofern ärgerlich, dass Time Capsule mit maximal 1 TB erhältlich und die Geschwindigkeit der Datenübertragung aufgrund der internen USB-Anbindung der Festplatte eher niedrig ist. Insbesondere das initiale Backup dauert eine halbe Ewigkeit.
Wer FreeNAS nicht kennt: es handelt sich dabei um ein System, dass auf FreeBSD basiert, also ein UNIX ist, und speziell für den Einsatz auf NAS-Systemen zugeschnitten ist. Die Konfiguration erfolgt hierbei vollständig über eine übersichtliche Weboberfläche. Dieses Projekt basiert auf M0n0wall, einer ebenfalls auf FreeBSD basierenden integrierten Firewall-Lösung. Die Installation von FreeNAS kann auf mehrere Arten und Weisen erfolgen. So ist es möglich, das System direkt von einer CD-ROM zu starten und die Konfigurationsdateien auf einem MS-DOS-formatierten Datenträger, wie einem USB-Stick, einer CF-Karte oder einer Floppy abzuspeichern. Wer, so wie ich, kein optisches Laufwerk in seinem NAS hat, kann das System auch auf einem USB-Stick oder einer Festplatte installieren. Ich habe die Installation auf einem USB-Stick gewählt. Mein NAS startet also von diesem Stick und speichert sämtliche Konfigurationsdaten auf ebendiesem. Voraussetzung dafür ist aber, dass das BIOS das Starten von USB-Geräten erlaubt. Außerdem muss der USB-Stick vor der Installation mit FAT oder FAT32 formatiert werden und darf erst nach (!) dem Start der Live-CD angestöpselt werden. Danach sollte die Installation einwandfrei laufen. Mein Eigenbau-NAS verfügt über ein Board mit Via C7 1 GHz, 1 GB RAM und zwei 1 TB großen Stromspar-Festplatten von Western Digital. Außerdem steckt ein 1‑Gbit-NIC von Intel in der Maschine.
Nach der Installation von FreeNAS muss zuerst die IP des oder der Netzwerkschnittstellen gesetzt werden. Das geht ganz einfach über das Textmenü des Systems. Jetzt kann man sich von einem beliebigen Rechner aus über einen beliebigen Webbrowser mit dem NAS verbinden und die weitere Konfiguration vornehmen. Dazu gibt man einfach die soeben eingegebene IP-Adresse in das Adressfeld des Browsers ein. Der Benutzername lautet in der Voreinstellung admin, das Kennwort freenas. FreeNAS verfügt in der aktuellen Version über die folgenden Dienste:
- CIFS/SMB
- FTP
- TFTP
- SSH
- NFS
- AFP
- Rsync
- Unison
- iSCSI Target
- UPnP (Mediaserver)
- iTunes/DAAP
- Dynamic DNS
- SNMP
- USV
- Webserver
- BitTorrent (Webversion von Transmission)
All diese Dienste lassen sich äußerst bequem über die Weboberfläche konfigurieren, nur in den seltensten Fällen besteht die Notwendigkeit, per Texteditor Hand an irgendwelche Konfigurationsdateien zu legen. Ich selbst nutze viele dieser Dienste und alle laufen einwandfrei.
Nach der Installation muss man zunächst die verbaute(n) Festplatte(n) für die Benutzung vorbereiten. Ich gehe davon aus, dass die Festplatten leer sind und noch über kein Dateisystem verfügen. FreeBSD verwendet GEOM zur Erstellung und für das Management von RAID-Systemen, die sich ebenfalls ganz bequem über die Weboberfläche einrichten lassen. Da ich eine Weile gebraucht habe, um die korrekte Reihenfolge für die Erstellung eines RAID herauszufinden, hier eine kleine Anleitung:
- Es müssen die Festplatten über den Menüpunkt Festplatten -> Management hinzugefügt werden. Welche Einstellungen ihr hierbei wählt, bleibt euch überlassen, nur muss das Dateisystem auf Software RAID eingestellt werden, damit die Platten nachher einem RAID-Verbund hinzugefügt werden können.
- Über den Menüpunkt Festplatten -> Software RAID fügt ihr dann die Platten zu eurem RAID-Verbund hinzu. Welchen RAID-Modus ihr hierbei wählt, ist euch überlassen. GEOM Stripe/Mirror/Raid5 ist die althergebrachte Lösung unter FreeBSD zur Erstellung von RAIDs, GEOM Vinum ist recht neu, soll aber laut diverser Webquellen stabil sein. Ich habe GEOM Vinum gewählt.
- Danach müsst ihr euer RAID formatieren, das geht ganz einfach über den Menüpunkt Festplatten -> Formatieren. Unter “Festplatte” wählt ihr euer RAID aus, als Dateisystem solltet ihr auf jeden Fall das native Dateisystem unter UNIX, UFS, wählen. Alle anderen Dateisysteme werden nicht offiziell unterstützt.
- Unter Festplatten -> Einhängepunkt wählt ihr nun einen Namen für den Mountpoint. Dieser spielt für die spätere Benutzung kaum eine Rolle, Dateifreigaben via CIFS bzw. AFP werden unter diesem Namen im Explorer bzw. Finder angezeigt. Der Partitionstyp sollte bei einem neu angelegten RAID auf GPT stehen, das Dateisystem wählt ihr entsprechend eurer Einstellung aus 3., in meinem Falle also UFS. Alle weiteren Einstellungen könnt ihr, sofern ihr es nicht besser wisst, auf Standard belassen.
Nachdem ihr euer RAID für die Benutzung erstellt habt, könnt ihr euch nun an die Konfiguration der von euch benötigten Dienste machen. Die Dialoge sind selbsterklärend, deswegen folgen hier auch keine weiteren Erläuterungen von mir. Für viele der Dienste macht es aber Sinn, einen lokalen Benutzer zu erzeugen, mit dem ihr euch später am NAS anmeldet. Dies geht über den Menüpunkt Zugriff -> Benutzer & Gruppen. Solltet ihr später Zugriff per SSH auf die Maschine wünschen, achtet darauf, dass ihr den Haken ganz unten, Voller Kommandozeilenzugang für Benutzer!, setzt. Außerdem sollte euer Benutzer Mitglied der Gruppe wheel sein, wenn ihr euch mit dem Befehl “su root” zum Root-Benutzer machen wollt. Im Normalfall sollte das nicht nötig sein, aber man kann ja nie wissen 😉
Nun zu Time Machine: wenn man schon ein NAS mit rund 2 TB Festplattenkapazität sein Eigen nennt, das auch noch per Gigabit im Heimnetz angebunden ist, macht es durchaus Sinn, seine Time Machine-Backups auf diesem NAS abzulegen. Dank der Anleitung von Alper Iseri war das glücklicherweise nicht weiter schwierig. Wie eingangs erwähnt, mag Apple das aber nicht, deswegen muss man OS X erst mal mit dem Terminalbefehl
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
dazu überreden, auch nicht-unterstützte Netzwerkvolumes für Time Machine zu akzeptieren. Testet danach gleich mal, ob es funktioniert, indem ihr Time Machine über die Systemeinstellungen öffnet und ein Volume auswählt. Taucht euer NAS dort auf, ist soweit schon mal alles in Butter. Wenn ihr jetzt aber versucht, eine Sicherung auf ebendieses Gerät vorzunehmen, werdet ihr leider enttäuscht, Time Machine bricht mit einer Fehlermeldung ab. Um dieses Problem zu beheben, gebt ihr folgendes Kommando im Terminal ein:
hdiutil create ‑size $GRÖSSEg ‑fs HFS+J ‑type SPARSEBUNDLE ‑volname “iMac Backup” COMPUTERNAME_MACADRESSE.sparsebundle
GRÖSSE muss hierbei durch eine Zahl ersetzt werden. Das kleine g steht für Gigabyte. Der hier angegebene Wert bestimmt die Maximalgröße des mit diesem Befehl angelegten Images. Über den Schalter ‑fs wird festgelegt, dass als Dateisystem für dieses Image HFS Journaled verwendet werden soll. ‑volname legt den Namen des Images fest, der im Finder angezeigt werden soll, also beispielsweise “iMac Backup”. Den Computernamen findet ihr den Sharing-Einstellungen in den Systemeinstellungen von Mac OS. Solltet ihr Leerzeichen in eurem Computernamen verwenden, müsst ihr nach dem jeweiligen Wort einen Backslash, \ (Tastenkombination Shift-Alt‑7), eingeben. Also zum Beispiel “Ulfs\ iMac”. Die MAC-Adresse bekommt ihr am Terminal mittels des Befehls “ifconfig” oder über Netzwerk in den Systemeinstellungen. Die MAC-Adresse muss hierbei ohne die Doppelpunkte angegeben werden. Da dieses Backup an die MAC-Adresse gebunden ist, solltet ihr nicht versuchen, das Backup über eine andere Netzwerkschnittstelle zu verwenden. Habt ihr also bei der Erstellung des Images eure LAN-Schnittstelle verwendet, versucht bitte nicht später die WLAN-Schnittstelle zu benutzen. Sollte alles geklappt haben, kopiert ihr nun dieses Sparse-Bundle in das Hauptverzeichnis eurer Netzwerkfreigabe. Solltet ihr AFP eingerichtet haben, dürfte euer Finder euch das System auch gleich anzeigen und ihr könnt euch verbinden. Wichtig ist, dass das Image direkt ins Hauptverzeichnis kopiert wird, Unterverzeichnisse werden nicht unterstützt. Das funktioniert natürlich auch für mehrere Macs.
Jetzt könnt ihr Time Machine anweisen, dass es euer NAS als Backup-Volume verwenden soll. Kurz nach dem Start des Backups dürfte Mac OS das von euch erstellte Image mounten und mit der Sicherung beginnen. Der Benutzername und das Kennwort, das Time Machine beim ersten Mal haben möchte, entspricht dem Benutzernamen und dem zugehörigen Kennwort des Benutzers, den ihr auf dem NAS angelegt habt.
Solltet ihr in eurem Log folgenden Fehler bekommen
afpd[pid]: bad function 4F
habt ihr auch schon den Grund dafür gefunden, dass Time Machine sein Image nicht selbst erstellen kann. Laut einem Beitrag in den FreeNAS-Foren ist diese Funktion in der netatalk-Version von FreeNAS noch nicht implementiert. Diese Meldung könnt ihr aber getrost ignorieren, das Image besteht ja bereits. In Zukunft soll diese Funktion aber nachgerüstet werden.
afpd[pid]: bad function 4C
ist ein Fehlercode, den Spotlight generiert. Auch den könnt ihr ignorieren.
Könntest du ein Feedback geben wie sich dein FreeNas Server als Time Machine in den letzten zwei Jahren bewährt hat?
LG Eric