Fileserver, Buildserver, NAS im Eigenbau (Teil 3 von 3)

Davor: Fileserver, Buildserver, NAS im Eigenbau (Teil 2 von 3)

Mittlerweile ist es schon einige Wochen her, dass ich begonnen habe mir ein NAS zu bauen. Die Variante aus meinem letzten Post ist aber doch nicht so geworden wie ich mir das eigentlich vorgestellt hatte.

Ich habe daher meinen Plan verworfen eine “All-In-One” – Lösung zu bauen, der Buildserver wird viel zu selten benötigt und der damit höhere Stromverbrauch macht schon einiges aus.

Meine neue Idee sieht folgender Maßen aus:

  • Neues Gehäuse kaufen, am besten einen Tower mit 5,25″ Schächten
  • Neues Netzteil kaufen, mein altes ist Schrott
  • Ein Mainboard mit 6 x Sata (im besten Fall)
  • etwas zusätlichen RAM (8 – 16 GB)
  • 3 x 4TB Festplatten
  • 1 x USB-Stick für das Betriebssystem (FreeNAS)

Nach ein paar Stunden stöbern bei Amazon habe ich mich für folgende Produkte entschieden:

Gehäuse: MS-Tech CA-0210 Rev B PC-Gehäuse (Midi Tower, ATX)

Das MS-Tech Gehäuse ist ziemlich günstig (rund 35 Euro) und hat dazu auch noch sehr viel Platz (9 Schächte), und optisch finde ich es auch ansprechend.

Netzteil: MS-Tech MS-N850VAL Netzteil (850 Watt)

850 Watt mögen vielleicht etwas überdimensioniert sein, aber eventuell werde ich mein NAS nocheinmal umbauen und dann kommt dieses Netzteil in den Buildserver. Abgesehen davon war es recht günstig (ca 41 Euro), und die 850 Watt sind ja auch die maximale Leistung, trozdem gibt es hier sicher Stromsparpotential mit einem effizienterem Netzteil.

Mainboard & Prozessor: Gigabyte GA-78LMT-USB3 Mainboard Sockel AM3+ (ATX, AMD Phenom/Athlon, 4x DDR3 Speicher, 6x SATA II, 4x USB 3.0)

Das ausgewählte Mainboard kostet rund 53 Euro und hat 6 x Sata, 4 x DDR3 Slots und dazu noch ein paar PCI und PCIe  Kartenslots (diese werde ich für die SATA PCIe “Raid” Karten brauchen). Für den AM3+ Sockel habe ich eine AMD® Athlon II X2 270 3.4GHz CPU ausgewählt.

Bevor jetzt Kritik aufkommt: Die Idee ist es nicht, einfach nur Netzwerkspeicher für meine PCs zuhause zur Verfügung zu stellen. Ich möchte schon dass die Kapazitäten meines Heimnetzwerks so gut wie möglich ausgenutzt werden. Daher ist diese Variante eines NAS nicht die Stromsparendste, aber sicher ein sehr guter Kompromiss bezüglich Preis,Leistung und Stromverbrauch.

Ich habe mich ausgiebig in den FreeNAS Foren und dem Wiki informiert, da gibt es unter anderem folgende Empfehlungen für ein System:


While FreeNAS® is available for both 32-bit and 64-bit architectures, 64-bit hardware is recommended for speed and performance.
The best way to get the most out of your FreeNAS® system is to install as much RAM as possible.
For systems with large disk capacity (greater than 8 TB), a general rule of thumb is 1 GB of RAM for every 1 TB of storage.

Diese Empfehlungen gelten allerdings nur wenn man ZFS (ein Dateisystem, näheres dazu) verwenden will. Würde man mit Linux ein NAS aufsetzen und ein Dateisystem wie etx3 oder ext4 verwenden, benötigt man solche Spezifikationen nicht. Allerdings wird man auch nicht dieselbe Leistung herausbekommen.

Mein NAS hat derzeit folgende Spezifikationen:

  • 10 x SATA3 (6 x Onboard und 4 x PCIe Controller)
  • 32 GB RAM
  • AMD Athlon 2
  • 5 x 2 TB und 3 x 4 TB Festplatten

Hier ein paar Bilder vom Aufbau der Hardware:

Als nächstes habe ich mir einen USB Stick (16GB) mit FreeNAS darauf erstellt. Dazu folgt man einfach der Anleitung auf der FreeNAS Webseite. Für alle die bisher noch nicht wirklich mitbekommen haben was dieses FreeNAS eigentlich ich ist, von dem ich hier die ganze Zeit schreibe:

FreeNAS basiert auf FreeBSD und ist ein Betriebssystem entwickelt für NAS – Systeme. Das System ist relativ leichtgewichtig und kommt mit viel verschiedener Hardware klar (verschiedenste Festplatten-Controller, Raid-Controller, etc). Es ist frei verfügbar und wird aktiv weiterentwickelt. Der Wiki dazu ist, wie ich finde, toll dokumentiert, auch wenn es anfangs etwas viel Information auf einmal ist. FreeNAS bietet keine grafische Oberfläche. Es gibt lediglich ein Kommandozeilen-Menü, welches aber hauptsächlich dazu da ist, die Netzwerkeinstellungen zu konfigurieren. Die Konfiguration des Systems erfolgt dann über ein Webinterface im Browser.

Bei mir steckt das NAS an einem PowerLan- Adapter, denn mein Router steht zu weit weg um direkt das LAN-Kabel anzuschließen. FreeNAS unterstützt übrigens kein WLAN.

IMG_20131002_214602

Nachdem das System gestartet ist (das kann etwas dauern, da alles vom USB-Stick geladen werden muss und auch die Hardware erkannt werden muss) sieht man folgendes Menü:

IMG_20131002_220022

Soweit so gut. Im Bild sieht man dass das System unter 192.168.1.140/ erreichbar ist. Da das LAN-Interface mit DHCP konfiguriert wurde und die IP-Adresse automatisch vom Router bezogen wurde, gab es hier für mich nichts mehr zu konfigurieren. Daher habe ich einfach am Router die Adresse fix vergeben (damit das NAS immer unter derselben Adresse erreichbar ist) und habe im Browser die Adresse für das Webinterface meines neuen NAS eingegeben.

overview

Das Webinterface ist großartig. Nachdem Login gelangt man auf eine Seite mit der Systeminformation. Am besten man klickt sich einmal etwas durch das Webinterface um sich etwas umzusehen. Nach ein paar Minuten habe ich dann (mit Hilfe der FreeNAS Webseite)  einen Pool erstellt.

volume

Einen Pool kann man sich als virtuelle Festplatte vorstellen. Im Hintergrund sorgt ZFS dafür dass die Platten im RAID, bzw mehrere Platten in mehreren RAIDs werkeln können. Als Benutzer kann man dann “Ordner” erstellen und diesen verschiedene Rechte geben, bzw verschiedene Freigaben erstellen.

Ich habe mir folgende Volumes erstellt:

  • Backups (für System Backups)
  • Git-Repos (für Softwareprojekte, bzw Versionierung verschiedenster Dokumente/Projekte)
  • Musik
  • VMs (für die virtuellen Maschinen)
  • Videos
  • jails (wird vom System automatisch erstellt wenn man zb ein Plugin wie OwnCloud oder ähnliches verwendet)

In meinem NAS sind 2 RAIDs, vom Typ RAID-Z1 zu einem Pool zusammengefasst:

  • 3 x 4TB, davon sind rund 7,8 TB benutzbar
  • 5 x 2TB davon run 7,6 TB benutzbar

Ingsesamt also rund 15,4 TB. Etwas schmerzt es schon, dass von den 3 x 4 TB nur 2 Drittel verfügbar sind. Aber das ist der Preis der Datensicherheit 😉

RAID-Z1 erlaubt es mir, das von zb 3 Platten eine komplett ausfallen darf und trozdem aber keine Daten verloren gehen. Die Daten werden beim Schreiben auf die Platten aufgeteilt und einfach gesagt, mit Quersummen abgelegt. Aus diesen Quersummen können dann bei einem Plattenausfall Daten der ausgefallenen Platte rekonstruiert werden.

Das bedeutet in meinem Fall, es darf eine 2TB Platte und auch eine 4 TB Platte kaputtgehen. Diese müsste ich dann austauchen, ZFS bindet dann die Platte wieder in den RAID-Verbund ein und kann dann weiterarbeiten.

Nachdem alle Volumes erstellt sind, kann man (je nach Anwendungsfall) verschiedene Freigaben erstellen. Ich habe, da ich nur Linux und Unix-Systeme (und Android..) im Haushalt habe hauptsächlich NFS-Freigaben erstellt, welche ich automatisch ins Dateisystem des Medienpcs, Laptops etc.. einhänge.

Dann habe ich mir ein Script geschrieben, welches auf Github zur Verfügung steht.

Das Script prüft ob mein Laptop mit meinem Heimnetzwerk verbunden ist und die ihm zugewiesene IP-Adresse besitzt. Danach prüfe ich noch ob die NFS-Freigabe eingehängt ist und dann starte ich den Synchronisationsvorgang mit rsync. Wenn der Vorgang beendet ist, erstelle ich noch eine Datei mit einem Zeitstempel, damit ersichltich ist, wann dieses Backup erstellt wurde. Das Script habe ich zu meinen Cronjobs hinzugefügt.

Das Script lässt sich leicht anpassen, so habe ich zb eines für den PC meiner Freundin adaptiert, sie soll ja auch was vom NAS haben 😉

Natürlich kann man auch eine Apple CIFS Share erstellen und dann mit TimeMachine die Backups erstellen, oder Windowsfreigaben erstellen, dazu gibt es genug Anleitungen im Internet.

Nachtrag:

Soviel zu meinem NAS-Build. Mittlerweile werkelt mein NAS schon einige Wochen und ich hatte noch keine Probleme. Das System warnt mich angeblich via e-Mail sobald eine Festplatte nicht mehr den S.M.A.R.T. Status “Healthy” hat (zumindest habe ich das so konfiguriert) also mal sehen und hoffen das keine Festplatte so bald kaputt geht. Ansonsten kann ich mich nicht beklagen: Die Zugriffszeiten und Kopier + Streamingraten sind traumhaft, die Grenzen sind quasi nur durch mein Netzwerk vorgegeben.

Mittlerweile habe ich es auch geschafft mir einen Stromzähler für die Steckdose zuzulegen und das NAS daran anzustecken. Im Betrieb ohne Plattenzugriffe braucht das NAS etwa 65 Watt. Das ist schon etwas viel, wenn man bedenkt das ein kleines Synology-NAS nur rund 4 Watt braucht (im Standby). Allerdings kann man beide Systeme nicht wirklich vergleichen, da mein Build um ein vielfaches mehr Power hat und auch schnellere Zugriffszeiten. Ich werde mir aber demnächst mal die BIOs – Einstellungen ansehen und probieren ob mit CPU Undervolting etc sich noch etwas Strom sparen lässt. Näheres dazu werde ich natürlich hier am Blog dokumentieren.

Bei Fragen und Anregungen, hinterlasst mir bitte einen Kommentar.

2 thoughts on “Fileserver, Buildserver, NAS im Eigenbau (Teil 3 von 3)

  1. Pingback: Fileserver, Buildserver, NAS im Eigenbau (Teil 2 von 3) |

  2. Pingback: Fileserver, Buildserver, NAS im Eigenbau (Teil 1 von n) |

Leave a Reply

Your email address will not be published. Required fields are marked *