Home-NAS auf dem Intel SS4200-EHW mit FreeNAS
Wie ich hier schon einmal beschrieben, habe ich bisher eine NSLU2 als Homeserver verwendet. Super Teil, aber die Performance beim Dateitransfer leidet doch sehr unter der schwachen CPU, die nicht einmal das 100MBit Netzwerkinterface ausreizt. Mehr als 5-6 Mbyte/s konnte ich nie erreichen. Irgendwann musste doch was neues her.
Hardware
Ich habe mich dann für das Intel® Entry Storage System SS4200-EHW entschieden. Dabei handelt es sich um ein recht gewöhnliches x86-System mit einer low voltage Celeron-CPU. Es bietet aber viele Vorteile:
Software
Als nächstes steht die Wahl des Betriebssystems an. Wegen verschiedener Features (Sicherheit, Snapshots, usw.) wollte ich ZFS einsetzen. Damit ist die Wahl des Betriebssystems eingeschränkter. Die Integration in Linux ist aus Lizenzgründen sehr ungünstig, von daher bleiben eigentlich nur FreeBSD und natürlich OpenSolaris. OpenSolaris bietet die bessere ZFS-Integration, ist allerdings etwas anspruchsvoller in den Systemanforderungen. Besonders die 2GB CF-Card wäre viel zu wenig. Eine Festplatte wäre da günstiger. Die andere Möglichkeit, FreeBSD, ist da sparsamer, aber auch hier könnten 2GB knapp werden. Als fertige Lösung bietet sich nun aber bei FreeBSD FreeNAS an. Von FreeNAS gibt es eine embedded-Version, die beim Booten das System in den RAM lädt. Nur die Konfigurationen werden zusätzlich auf die Karte geschrieben. Dadurch wird das System schneller, hat allerdings den Nachteil, dass es keine vollständige Installation ist.
Da FreeNAS aber alle Features bietet, die ich brauche, habe ich mich dafür entschieden. Damit ZFS stabil läuft, habe ich die 512MB RAM durch einen 2GB-Speicherriegel ersetzt.
Installation
Nicht ganz trivial ist die Installation, da das Gerät keine Grafikschnittstelle besitzt. Um einen Zugang auf das Gerät zu bekommen, habe ich nach einer Anleitung im SS4200-Wiki den seriellen Anschluss des Mainboards nach außen geführt. Mit einem Nullmodem-Kabel und PuTTY auf einem anderen Rechner konnte ich mit den Einstellungen 15200,8,N,1 zu dem Gerät verbinden. Im BIOS muss die Bootreihenfolge umgestellt werden und die Einstellungen für die serielle Verbindung auf 9600,8,N,1 verändert werden, da FreeNAS nur dies unterstützt.
Anschließend sollte theoretisch eine Installation von FreeNAS über ein externes USB-Laufwerk funktionieren. Das hat aber nicht geklappt, daher habe ich die CF-Card samt Adapter in einen anderen Rechner eingebaut und dort die Installation durchgeführt. Nach erneutem Umbau bootete FreeNAS dann auf dem Intel-NAS. Um über die serielle Konsole die Netzwerkkonfiguration durchzuführen (DHCP funktionierte nicht), muss im FreeNAS-Bootloader der Bootprozess abgebrochen werden und zur Kommandozeile gewechselt werden. Mit
Konfiguration
Die Konfiguration über das Webinterface ist größtenteils intuitiv und einfach. Ich habe ein raidz mit den 4 Platten angelegt. Den gesamten Pool exportiere ich als NFS-Freigabe. Zusätzlich gibt es Samba-Freigaben für lokal erstellte Nutzer. Mit einer zusätzlichen externen Festplatte werden die Benutzerordner und verschiedene andere Ordner jede Nacht per rsync und cronjob gesichert. Eine komplette Sicherung ist natürlich auf Grund der Größe des Datenpools von etwa 4 TB nicht möglich. Aber als zusätzliche Sicherung dient ja das raidz.
Performance
Die gefühlte Geschwindigkeit ist auf jeden Fall sehr gut. Mit dem Programm
Hardware
Ich habe mich dann für das Intel® Entry Storage System SS4200-EHW entschieden. Dabei handelt es sich um ein recht gewöhnliches x86-System mit einer low voltage Celeron-CPU. Es bietet aber viele Vorteile:
- Gigabit-Ethernet
- 4 SATA-Ports
- 2 eSATA-Ports
- 4 USB-Ports
Software
Als nächstes steht die Wahl des Betriebssystems an. Wegen verschiedener Features (Sicherheit, Snapshots, usw.) wollte ich ZFS einsetzen. Damit ist die Wahl des Betriebssystems eingeschränkter. Die Integration in Linux ist aus Lizenzgründen sehr ungünstig, von daher bleiben eigentlich nur FreeBSD und natürlich OpenSolaris. OpenSolaris bietet die bessere ZFS-Integration, ist allerdings etwas anspruchsvoller in den Systemanforderungen. Besonders die 2GB CF-Card wäre viel zu wenig. Eine Festplatte wäre da günstiger. Die andere Möglichkeit, FreeBSD, ist da sparsamer, aber auch hier könnten 2GB knapp werden. Als fertige Lösung bietet sich nun aber bei FreeBSD FreeNAS an. Von FreeNAS gibt es eine embedded-Version, die beim Booten das System in den RAM lädt. Nur die Konfigurationen werden zusätzlich auf die Karte geschrieben. Dadurch wird das System schneller, hat allerdings den Nachteil, dass es keine vollständige Installation ist.
Da FreeNAS aber alle Features bietet, die ich brauche, habe ich mich dafür entschieden. Damit ZFS stabil läuft, habe ich die 512MB RAM durch einen 2GB-Speicherriegel ersetzt.
Installation
Nicht ganz trivial ist die Installation, da das Gerät keine Grafikschnittstelle besitzt. Um einen Zugang auf das Gerät zu bekommen, habe ich nach einer Anleitung im SS4200-Wiki den seriellen Anschluss des Mainboards nach außen geführt. Mit einem Nullmodem-Kabel und PuTTY auf einem anderen Rechner konnte ich mit den Einstellungen 15200,8,N,1 zu dem Gerät verbinden. Im BIOS muss die Bootreihenfolge umgestellt werden und die Einstellungen für die serielle Verbindung auf 9600,8,N,1 verändert werden, da FreeNAS nur dies unterstützt.
Anschließend sollte theoretisch eine Installation von FreeNAS über ein externes USB-Laufwerk funktionieren. Das hat aber nicht geklappt, daher habe ich die CF-Card samt Adapter in einen anderen Rechner eingebaut und dort die Installation durchgeführt. Nach erneutem Umbau bootete FreeNAS dann auf dem Intel-NAS. Um über die serielle Konsole die Netzwerkkonfiguration durchzuführen (DHCP funktionierte nicht), muss im FreeNAS-Bootloader der Bootprozess abgebrochen werden und zur Kommandozeile gewechselt werden. Mit
set console="comconsole"und dann
bootwird die Ausgabe auf die serielle Konsole umgeleitet und der Bootprozess fortgesetzt. So ist es dann möglich die IP-Adresse des Systems herauszufinden und auf das Webinterface zuzugreifen. Mit dem Editor des Webinterfaces habe ich in der Datei
/etc/ttysdie Zeile
ttyd0 "/usr/libexec/getty std.9600" dialup off securein
ttyd0 "/usr/libexec/getty std.9600" vt100 on secureabgeändert. Anschließend kann ebenfalls über das Webinterface das Kommando
kill -HUP 1abgesetzt werden und damit der Login über die serielle Konsole ermöglicht werden. Mit
/bin/sh /etc/rc.initialwird dann die Konfiguration gestartet und es kann alles wichtige eingestellt werden.
Konfiguration
Die Konfiguration über das Webinterface ist größtenteils intuitiv und einfach. Ich habe ein raidz mit den 4 Platten angelegt. Den gesamten Pool exportiere ich als NFS-Freigabe. Zusätzlich gibt es Samba-Freigaben für lokal erstellte Nutzer. Mit einer zusätzlichen externen Festplatte werden die Benutzerordner und verschiedene andere Ordner jede Nacht per rsync und cronjob gesichert. Eine komplette Sicherung ist natürlich auf Grund der Größe des Datenpools von etwa 4 TB nicht möglich. Aber als zusätzliche Sicherung dient ja das raidz.
Performance
Die gefühlte Geschwindigkeit ist auf jeden Fall sehr gut. Mit dem Programm
tiobenchhabe ich die Geschwindigkeit gemessen.
Sequential Reads: 72,70 Mbyte/s Random Reads: 0,66 Mbyte/s Sequential Writes: 39,98 Mbyte/s Random Writes: 0,83 Mbyte/sEinige dieser Werte scheinen allerdings durch meine CPU begrenzt zu sein. Leider fehlt mir der Vergleich um die Daten beurteilen zu können, aber damit ist das NAS schonmal schneller als meine lokalen Platten (die zugegeben nicht besonders schnell sind).
Barahir - 22. Jan, 10:00