Storage Server

Für unser Heim habe ich einen Storage Server aufgebaut und eingerichtet. Dieser basiert auf FreeNAS, was wiederum auf FreeBSD, also Unix, basiert. FreeNAS ist ein schönes Fast-Fertig-NAS, mit dem man einen Rechner sehr einfach in ein NAS verwandeln kann. NAS steht für Network Attached Storage, also im Netzwerk verfügbarer Speicherplatz. In erster Linie soll dieser Server also unsere Daten (Backups, gemeinsame Dateien, …) unterbringen und den Zugriff von jedem PC im Netzwerk ermöglichen, abhängig von Benutzerrechten. Der Server hat keinen Monitor, aber kann über eine Weboberfläche von jedem PC im Netzwerk aus konfiguriert und überwacht werden. Zudem ist der Zugriff über eine SSH-Konsole möglich. Weiterhin habe ich von Hand einen Printserver installiert, weil FreeNAS soetwas leider nicht enthält. Dabei konnte ich mich schön an Unix herantasten, da ich bisher noch keinen (konfigurierenden) Kontakt damit hatte.

Im Artikel zeige ich den Aufbau des Servers, welche Hardwarekomponenten ich gewählt habe und warum, wie FreeNAS installiert wird und insbesondere die manuelle Installation des Printservers, sowie weitere Kniffe.

Einleitung

Bevor ich den Server etwa im August 2011 aufgebaut habe, werkelte ein Netzwerk-USB-Hub von Belkin an dessen Stelle. Mit diesem Gerät konnte man bis zu 15 USB-Geräte ins Netzwerk bringen und mit den PCs verbinden. Diese haben das Gerät dann so gesehen, als sei es lokal am PC angeschlossen.

Bildquelle: http://www.belkin.com/de/

 

So waren einige externe Festplatten und auch der Drucker an diesem Gerät angeschlossen. Mit der Software, die auf dem PC installiert sein musste, konnte man die Geräte per einfachem Klick verbinden. Der Drucker wurde bei Druckaufträgen sogar automatisch verbunden.


Das funktionierte soweit auch ganz gut, bis auf kleine Probleme:

  • Langsame Transferraten von max. 5 MB/s.
  • Die Belkin-Software ist nur für Windows und MacOS verfügbar. Für Linux konnte ich keinen Ersatztreiber finden. Windows Vista und 7 kommen mir nicht auf die Rechner, MacOS auch nicht, bleiben im Wesentlichen also nur Windows XP (derzeitig) und diverse Linux-Distributionen.
  • Geräte sind für weitere Personen blockiert, wenn eine Person sie nutzt.

Aus den genannten Gründen und auch, um es mal auszuprobieren, habe ich beschlossen, einen Server aufzubauen.

Hardware

Im folgenden Foto ist der größte Teil der verwendeten Hardware zu sehen. Zum Einsatz kam:

  • Gehäuse Lian Li PC-Q08 in schwarz. Es eignet sich perfekt für kleine Storage Server. Das Gehäuse stelle ich unterhalb genauer vor.
  • Mainboard Asus E35M1-I Deluxe, welches einen AMD E350-Prozessor onBoard hat. Das Mainboard stelle ich auch unten noch vor.
  • Netzteil be quiet! Pure Power L7 80+ mit 300 W und 120 mm-Lüfter. Da der Server sehr stromsparsam sein sollte, darf das Netzteil nicht zu viel Leistung haben, da es sonst zu sehr im ungünstigen Bereich fährt. Für den Start aller Festplatten muss kurzzeitig aber auch über 100 W bereitstehen. Außerdem hat das Netzteil einen halbwegs guten Wirkungsgrad.
  • 8 GB DDR3-RAM. Da das Dateisystem ZFS zur Anwendung kommt, wird viel RAM benötigt. Gerade im Sommer 2011 war RAM allerdings sehr günstig.
  • Card Reader für CF (Compact Flash) und eine 2 GB-CF-Karte, die ich noch rumliegen hatte. Der Card Reader wird in einen hinteren Gehäuseslot eingebaut und per SATA angeschlossen. Das Betriebssystem soll auf einer CF-Karte installiert werden. Ich möchte keine Festplatte im Dauerlauf haben, weil das viel Energie kostet. Bei der Installation von FreeNAS wird sogar empfohlen, es auf einen USB-Stick o.ä. zu installieren, da der Datenträger nicht mehr für Storage verwendet werden kann und eine große Festplatte dann verschwendet wäre. Die CF-Karte ist zwar nicht schnell, aber das wird lediglich die Bootzeit beeinflussen und sonst nicht auffallen. Und ein 24/7-Server wird ja nicht so oft gebootet.
  • Festplatten Samsung HD204UI EcoGreen F4 mit je 2 TB und 5400 rpm. Davon sind hier 2 Stück im Artikel zu sehen, ich habe aber nicht einmal einen Monat später noch eine dritte nachgerüstet. Auf die Festplatte gehe ich auch unten noch ein.


Das ist also das besagte Gehäuse PC-Q08 von Lian Li. Es sieht recht ordentlich aus, was für mich aber nur zweitrangig war. Hervorragend ist aber die Aufteilung im Inneren. Von vorne sieht es so aus:

Bildquelle: Lian-Li.com

 

Hier ein Blick ins Innere: Es ist Platz für ein MiniITX-Mainboard und 6x 3,5 „-Festplatten. Das war das Entscheidungskriterium für dieses Gehäuse. Weiterhin passt ein 5,25 “ Laufwerk hinein und ein Full Size ATX-Netzteil. Im Gehäuse sind bereits 2x 120 mm-Lüfter eingebaut.

Bildquelle: Lian-Li.com

 

Ansicht von hinten: Hier sieht man den Ausschnitt für die Mainboardblende, dann recht viel Platz über dem Mainboard, wodurch passivgekühlte Mainboards gut funktionieren sollten, und schließlich rechts den Ausschnitt für das Netzteil.

Bildquelle: Lian-Li.com

 

Noch ein Anblick auf die Frontseite, bzw. die Blende für das DVD-Laufwerk. Mein Server braucht kein solches Laufwerk. Zur Installation habe ich temporär eines angeschlossen, aber extra dafür eines kaufen wollte ich nicht.

Bildquelle: Lian-Li.com

 

Hier schonmal aus meinem Rückblick ein paar Worte zur Qualität des Gehäuses: Die Verarbeitungsqualität ist durchweg gut bis sehr gut, obgleich das Gehäuse an manchen Stellen nicht genügend durchdacht ist. Mängel gab es an mehreren Stellen:

  • Die Festplattenkäfige rasseln aneinander, weil sie nicht gegeneinander verschraubt sind. Als Abhilfe kann man etwas Dämmmaterial dazwischen befestigen.
  • Die Blende vom DVD-Laufwerk rasselt ebenfalls, wenn kein Laufwerk eingebaut wird. Muss man auch erst selbst dämmen.
  • PCI-Karten, die nicht in einen Slot im Mainboard greifen, lassen sich nicht gut befestigen. In meinem Fall wird der Card Reader in einen Slot geschraubt, ist aber nur an der Befestigungsschraube befestigt und nicht auf der gegenüberliegenden Seite eingehakt. Man muss von innen gegenhalten, wenn man eine Karte einschieben möchte.
  • Das Gehäuse ist anfällig für Fingerabdrücke, aber das muss bei der Farbe und dem Material in Kauf genommen werden.

Positiv fiel am Gehäuse auf:

  • Sehr gute Verarbeitung.
  • Kühlkonzept ist durchdacht und funktioniert bestens.
  • Die Festplatten sind auf einfache Weise aber durchaus wirkungsvoll im Käfig entkoppelt.
  • Man kommt überall gut dran, außer an das Mainboard, wenn ein Netzteil eingebaut ist. Dafür kann man das Netzteil aber mit 4 Rändelschrauben lösen und nach hinten herausziehen.

Das Mainboard von Asus ist die teuerste Komponente, aber es enthält auch alles, was ein Storage Server braucht, incl. der bereits enthaltenen CPU. Wichtige Kriterien bei der Entscheidung für dieses Mainboard waren:

  • Sparsame CPU, die aber genug Wumms hat, um Daten schnell zu übertragen. D.h. eine Intel Atom CPU kam nicht in Frage, da die für Datenübertragungen zu langsam sind. Hier steckt ein AMD E-350 Dual Core drinne, der deutlich mehr Dampf als eine Atom-CPU hat, aber mit nur 18 Watt maximaler Leistung angegeben ist. Das Mainboard benötigt deshalb keine eigenen Lüfter, allerdings schon recht imposante Kühlflächen.
  • Genügend SATA-Anschlüsse, da es ja um Storage geht, also viele Festplatten. In dem Fall sind 5 interne und ein externer verfügbar.
  • Gigabit LAN
  • Weiterhin war nur noch erforderlich, dass 8 GB RAM draufpassen sollen, da für ZFS viel benötigt wird und dass genügend USB-Anschlüsse vorhanden sind. Hier sollen die alten externen Platten angeschlossen werden, die dann zwar langsam sind, aber darauf kann der Server sich selbst sichern und das darf ja beliebig dauern.


Hier sieht man die Anschlussleiste des Mainboards.


Auch zum Mainboard habe ich im Rückblick Kommentare. Insgesamt bin ich sehr zufrieden.

Gut gefällt mir:

  • Mainboard läuft tatsächlich passiv gekühlt, also ist fast nicht auf zusätzliche Belüftung angewiesen. Ein minimaler Luftstrom (quasi ein Hauch) im Gehäuse ist bereits ausreichend.
  • Alle oben genannten Erwartungen wurden erfüllt.

Negativ fiel am Mainboard auf:

  • Die enthaltene WLAN-Karte ist nicht im Bios abschaltbar, wenn sie nicht gebraucht wird. Ich weiß nicht, wieviel Leistungsaufnahme sie im Betrieb ohne Verwendung hat, jedenfalls sicher mehr als 0, was Verschwendung ist.
  • Das Mainboard bootet nicht ohne Keyboard und/oder Maus. Das ist peinlich. Das EFI-Bios hat keine Einstellung hierzu. Nach meiner Einschätzung bleibt der Bootvorgang noch im Bereich des Bios hängen, also bevor das Betriebssystem geladen wird. Als Abhilfe habe ich einen USB-Funkempfänger von einer nicht mehr benutzen Notebookmaus eingesteckt, der so groß ist wie ein USB-Stick. Dann ist ein Pseudo-HID da.

Von dieser Festplatte, einer 2 TB Samsung HD204UI, sind 3 Stück in den Server gewandert. Es bleibt also Reserve für spätere Aufrüstungen. Aber vorerst reicht der Speicherplatz völlig aus, da ich kein Datensammler bin. Was ich nicht brauche/nutze, hebe ich nicht auf.

Interessehalber habe ich eine der Festplatten vorher mal an meinem Desktop-PC gebencht. Der Test ist nicht so besonders aussagekräftig, da der ATTO Disk Benchmark zur Beschönigung neigt. Aber man kommt bei großen Dateien deutlich über 100 MB/s, womit die Festplatten deutlich schneller sind als das verwendete Netzwerk.


Montage der Hardware

Die Montage der Hardware ist nicht spektakulär, deswegen reiße ich es hier mit ein paar Fotos ab. Hier ist das Mainboard bereits eingebaut. Unten hinten im Gehäuse sieht man den Card Reader für die Speicherkarte mit dem FreeNAS Betriebssystem. Hier sind nur 2 Festplatten eingebaut, weil die dritte erst einen knappen Monat später folgte. Von den beiden Lüftern habe ich nach ersten Praxistests den oberen abgeklemmt und den vorderen mit der im Mainboard integrierten Lüfterregelung „Q-FAN“ regeln lassen. Selbst unter Stress wird da nichts heiß, weshalb ein Lüfter auf Minimaltempo ausreicht. Die LEDs, die im vorderen Lüfter drinne sind, habe ich erstmal deaktiviert, da unsere Wohnung Glastüren hat und man das Licht nachts recht hell bis ins Schlafzimmer gesehen hat.



Hier nochmal eine Nahaufnahme des Card Readers, in den die Karte von außen eingesteckt wird.


Die beiden Festplattenkäfige haben im ersten Betrieb aneinander gerasselt. Darum habe ich zum Dämpfen etwas Schaummaterial dazwischengeklebt, wodurch das Problem beseitigt wurde.



Hier ist dann auch das Netzteil montiert.


Zwischen Netzteil und Mainboard ist genug Platz, so dass das Mainboard frei „atmen“ kann.


Blick von hinten unten auf das Case. Hier steckt bereits die CF-Karte im Card Reader.


Fertig.


Da ist der Betriebsort des Servers. Unauffällig und auch quasi geräuschlos werkelt er vor sich hin. Eine Etage tiefer im Regal stehen zwei externe Festplatten und ein Switch. Darunter sieht man unseren alten aber unkaputtbaren Drucker HP LaserJet 4, der ebenfalls am Server angeschlossen ist und mittels installiertem Printserver im Netzwerk verfügbar gemacht wird. In der Steckdosenleiste sieht man eine Funksteckdose, mit der der Drucker auch aus der Ferne ein-/ausgeschaltet wird. So braucht der faule Bediener nur noch dort hingehen, um das Papier abzuholen.


Noch ein paar Aufnahmen von verschiedenen Seiten.




Eine Nahaufnahme des blauen Power-Tasters, der gleichzeitig auch Power-LED ist und des Reset-Tasters, der gleichzeitig auch HDD-LED ist.


FreeNAS 8.0

FreeNAS ist, wie bereits eingangs erwähnt, ein freies NAS-System. Das bedeutet: Man installiert es einfach, dann kann anschließend der PC als NAS verwendet und von anderen PCs im Netzwerk im Browser und per SSH-Konsole konfiguriert werden. Im Hintergrund läuft FreeBSD, also eine Unix-Distribution. Ein Samba-Server stellt schließlich u.a. CIFS zur Verfügung, damit wird die Freigabe der Daten für Windows-PCs ermöglicht.

Bildquelle: FreeNAS

 

FreeNAS kann auf CD/DVD gebrannt werden und davon installiert werden. Alternativ tuts natürlich auch ein USB-Laufwerk. Hier ein Screen aus der Installation. Im Grunde ist alles einfach und selbsterklärend. Nach der Installation stellt man noch die Netzwerkschnittstelle ein, aber auch das wird menügeführt. Hier sollte man dem NAS bereits eine IP-Adresse oder DHCP zuweisen, sonst kann man anschließend nicht darauf zugreifen.


Nachdem FreeNAS installiert ist, kann es im Browser konfiguriert werden, indem einfach die IP-Adresse des Servers in die Adressleiste des Browsers eingegeben wird. Zunächst sollten Benutzer usw. angelegt werden. Darauf gehe ich hier aber nicht ein, weil es gute Anleitungen dazu gibt.

Als Lektüre empfehle ich u.a.:

Hier ein Screenshot von meinem bereits konfigurierten FreeNAS. Dort ist gerade eine Ansicht der angeschlossenen Festplatten zu sehen.


Und hier ein Screenshot des Taskmanagers. 8 GB RAM sind im Einsatz. Bei Kopieraktionen, besonders bei mehreren gleichzeitig, ist das RAM auch schnell aufgefressen. Das ist aber eine Eigenschaft von ZFS, da es sich immer so viel RAM nimmt, wie da ist.


Printserver unter FreeNAS 8.0 einrichten

Ein Printserver ist leider nicht in FreeNAS enthalten. Zwar ist es auch nicht Aufgabe eines Storage Servers, über einen Printserver zu verfügen, aber wenn man schon einen PC 24/7 abstellt, dann soll der diese Aufgabe doch bitte übernehmen.

Für FreeNAS 8 habe ich mich blöde gesucht und letztendlich keine zielführenden Hinweise oder gar eine Anleitung gefunden, wie man einen Printserver einrichtet. Lediglich auf instructables.com habe ich eine Anleitung für FreeNAS v0.69 gefunden. Technisch weichen die beiden Versionen von FreeNAS aber so stark voneinander ab, dass ich die Anleitung nicht einfach nachmachen konnte und den „Lösungsweg“ in vielen veränderten Details selbst finden musste, was letztendlich mit der Hilfe eines Arbeitskollegen auch gelang. Für einen Unix-Anfänger wie mich erstmal nicht einfach.

Bildquelle: Instructables.com

 

Ich möchte die Anleitung von instrucables.com nicht kopieren oder ersetzen, darum gehe ich hier nur auf die Abweichungen zu der Anleitung ein. Die Anleitung dort setzt sich aus 10 Schritten zusammen, die in der Reihenfolge auch ausgeführt werden. In den folgenden Unterkapiteln erkläre ich, was in den jeweiligen Schritten anders gemacht werden muss, als dort beschrieben.

Also: Das hier ist keine Anleitung. Es handelt sich nur um Abweichungen zur Anleitung von instructables.com!

Step 1: Preparation

In diesem ersten Schritt wird noch nichts getan, lediglich auf benötigte Software und eine benötigte Kerneldatei hingewiesen. Die Kerneldatei ulpt.ko bekommt man, wenn man sich ein FreeBSD-ISO-Image herunterlädt (und zwar hier). Unbedingt darauf achten, dass die FreeBSD-Version die gleiche, wie die in deiner FreeNAS-Version enthaltene FreeBSD-Version ist und unbedingt darauf achten, dass du die zu deinem Prozessortyp passende Variante herunterlädtst. In meinem Fall z.B. 8.0-RELEASE-amd64-bootonly.iso. Du lädst dann wahrscheinlich eine ISO-Datei herunter. Diese entpackst du, etwa mit WinRAR, und suchst dir die Datei ulpt.ko heraus. Zwar hast du so mehrere hundert Megabyte heruntergeladen, um dann an ein paar kB heranzukommen, aber immerhin hast du nun die passende Datei.

Step 2: Connect via SSH

Keine Anmerkungen, genauso durchführen. Bevor eine SSH-Verbindung möglich ist, muss SSH natürlich im Webinterface von FreeNAS konfiguriert und aktiviert werden.

Step 3: Put ulpt.ko In The Right Spot

Zunächst wird sich die Datei gar nicht so einfach ins System kopieren lassen, wie in der Anleitung beschrieben. Unter FreeNAS 8 ist das Dateisystem nämlich per standard schreibgeschützt gemounted. Es muss vorher in der SSH-Konsole folgender Befehl eingegeben werden:

/sbin/mount -uw /

Nun kann die Kernel-Datei vom Desktop-PC zum Server übertragen werden. Hier bietet sich FileZilla an, da es eine bequeme Navigation auf dem Dateisystem des Servers ermöglicht. Kopiere die Datei z.B. in folgendes Verzeichnis: /var/tmp/ulpt.ko

Aufgrund von Rechten kann die Datei nicht direkt an ihr Ziel kopiert werden. Darum wird sie nun mittels eines weiteren Befehls in der Konsole an das neue Ziel /boot/kernel/ulpt.ko verschoben, wo ja root-Rechte gelten.

mv /var/tmp/ulpt.ko /boot/kernel/ulpt.ko

Die Datei muss noch sinnvolle Dateiattribute erhalten, z.B. 755.

chmod 755 /boot/kernel/ulpt.ko

Step 4: Install LPRng

Schritt 4 funktioniert so wie dort beschrieben überhaupt nicht. Stattdessen geht man wieder zur FreeBSD-Seite und lädt dort manuell die Datei LPRng.tbz herunter. Die gibt es dort einzeln und sie steckt nicht in einem Archiv oder Iso. Auch hier wieder unbedingt auf die richtige FreeBSD-Version und den richtigen Prozessortyp achten. Die Datei wird dann ebenfalls mit FileZilla übertragen, z.B. nach /var/tmp/LPRng.tbz.

Nun wird der folgende Befehl ausgeführt und die Datei sollte installiert werden.

pkg_add /var/tmp/LPRng.tbz

Step 5: Configure Things to Load on Boot

Der Schritt 5 enthält zwei Anweisungen. Die erste mit der Überschrift „Load ulpt.ko Module“ wird wie angegeben durchgeführt. Für den zweiten Schritt, „Start LPRng“, gelten aber wieder Abweichungen: In FreeNAS 8 ist der Zugriff auf die Datei rc.conf nicht mehr über das Webinterface möglich, wie in der Anleitung beschrieben. Stattdessen wird die Datei im Editor in der SSH-Konsole bearbeitet.

Zudem muss noch ergänzt werden, dass FreeNAS bei jedem Boot einige Verzeichnisse, z.B. /etc, komplett überschreibt, so dass sie wieder im ursprünglichen Zustand sind. Werden also Dateien darin geändert, sind die Änderungen beim nächsten Boot verloren. Es ist also erforderlich, die „Originale“ zu bearbeiten, die in /conf/base liegen.

Im Editor öffnest du nun die richtige Datei mit folgendem Befehl:

nano /conf/base/etc/rc.conf

Ganz am Ende der Datei werden folgende beiden Zeilen angefügt:

lpd_enable="NO"
lprng_enable="YES"

Um den Editor nun zu verlassen, drückst du Strg+X. Dann bestätigst du die Speicherfrage mit Y und Enter.

Step 6: LPRng Configuration: 1 of 3 – printcap

Auch dieser Schritt funktioniert nicht nach Anleitung. Die Datei printcap existiert nicht wie angegeben in /etc, sondern in /usr/local/etc, was aber wiederum ein Link ist auf /etc/local. Die zugehörige Originaldatei liegt wieder im Abbild in /conf/base. Also im Editor öffnen mit:

nano /conf/base/etc/local/printcap

Eingefügt wird nun folgendes, wobei Zeilen beginnend mit # nur Kommentare sind. Darauf achten, dass der Drucker wirklich das Gerät ulpt0 ist, ansonsten anpassen.

# @(#)printcap HP Laserjet 4
lp|laserjet:\
:sd=/var/spool/lpd/bare:\
:sh:\
:lp=/dev/ulpt0:
#

Alle sonstigen Zeilen auskommentieren mit #. Wieder Strg+X, dann Y, dann Enter.

Auch die weiteren Anweisungen in diesem Schritt der Anleitung müssen wie folgt abgewandelt werden. Statt des im Artikel erzeugten Ordners wird folgender Ordner erzeugt und der Besitzer festgelegt.

mkdir -p -m 700 /conf/base/var/spool/lpd/bare
chown 1:1 /conf/base/var/spool/lpd/bare

Step 7: LPRng Configuration: 2 of 3 – lpd.perms

Alternativ zur angegebenen Datei wird folgende Datei bearbeitet:

nano /conf/base/etc/local/lpd.perms

Step 8: LPRng Configuration: 3 of 3 – lpd.conf

Alternativ zur angegebenen Datei wird folgende Datei bearbeitet:

nano /conf/base/etc/local/lpd.conf

Step 9: Start Things and Set Permissions When Printer Connects

Die in diesem Schritt beschriebene Datei liegt auch wieder woanders, nämlich statt in /usr/local/etc/devd/devd.conf ist sie in /etc/devd.conf zu finden, aber auch diese Datei muss wieder im gespiegelten Verzeichnis bearbeitet werden, also:

nano /conf/base/etc/devd.conf

An das Ende der Datei wird folgendes angehängt.

# start action when USB printer ulpt0 is plugged in
# wait 3 seconds and then start the spooler daemon
#
attach 100 {
device-name "ulpt0";
action "sleep 3; lpd;
checkpc -f;
chown 0:0 /dev/ulpt0;
chmod 666 /dev/ulpt0;
ln -s /etc/local/printcap /etc/printcap;";
};

Folgendes beachten und überprüfen:

  • In der Datei sind teils seitenlange Bereiche auskommentiert mit /* … */, was man leicht übersieht. Ein /* beginnt einen auskommentierten Bereich und ein */ beendet einen solchen Bereich. Der obige Code darf nicht in einem kommentierten Bereich landen, sonst wird er nicht ausgeführt.
  • Darauf achten, dass der Drucker auch wirklich das Gerät ulpt0 ist, sonst anpassen.

Den Softlink (in der Zeile „ln -s …„) habe ich übrigens erstellt, weil der Printserver die printcap-Datei immer im Verzeichnis /etc gesucht hat und sich davon nicht abbringen ließ, aber mit Softlink findet er sie auch an ihrem eigentlichen Ort.

Step 10: Connecting A Windows PC

Kann so durchgeführt werden, allerdings muss vorher FreeBSD einmal neugestartet werden, damit die modifizierten Dateien aus ihren Spiegelverzeichnissen übernommen werden.

Dann viel Erfolg, bei mir hat es schließlich so funktioniert. Bis heute arbeitet der Drucker zuverlässig und es gab nicht einmal Probleme.

Problem mit HDD SpinDown lösen

Mit meinen Samsung Festplatten gab es noch ein Problem mit FreeNAS. Und zwar sind sie vor jedem Zugriff hoch- und unmittelbar danach wieder heruntergefahren, sobald ein Energiesparmodus aktiv war, unabhängig davon wie er konfiguriert war. Das führte dazu, dass sämtliche Festplatten alleine beim Bootvorgang 10x oder öfter hoch- und herunterfuhren, incl. Stopp der Plattern. Da aber permanenter Betrieb aller Festplatten völlig bekloppt wäre, musste ich das Problem lösen.

In Anlehnung an ein FreeNAS Bug-Ticket ist folgende Lösung enstanden:

Zuerst wird wieder per SSH auf das FreeNAS verbunden. Weil nun eine Datei modifiziert werden soll, muss zuerst wieder das Dateisystem mit Schreibzugriff gemounted werden, weil es per Standard schreibgeschützt ist. Dazu folgendes Kommando eingeben:

/sbin/mount -uw /

Die Datei /etc/rc.d/ix-ataidle soll editiert werden, was aber, wie oben genannt, nur Wirkung bis zum nächsten Neustart hätte, weshalb wieder die Kopie in /conf/base modifiziert wird. Die Datei /conf/base/etc/rc.d/ix-ataidle wird mit einem Editor in der SSH-Konsole geöffnet.

nano /conf/base/etc/rc.d/ix-ataidle

Es wird folgende Zeile gesucht…

(sleep 60; /usr/local/sbin/ataidle ${disk_hddstandby} ${disk_disks}) > /dev/null 2>&1 &

… und ersetzt mit:

(sleep 60; /usr/local/sbin/ataidle -I ${disk_hddstandby} ${disk_disks}) > /dev/null 2>&1 &

Dann wird der Editor mit Strg+X wieder geschlossen und die Speicherfrage mit Y und Enter bestätigt.

Nun muss FreeNAS neugestartet werden.

Im Webinterface von FreeNAS sollte bei den Festplatten der Modus APM (Advanced Power Management) deaktiviert werden und in der separaten Einstellung kann dann eine Standby-Zeit eingestellt werden, die dann auch so funktioniert.

Fazit

Der entstandene Webserver arbeitet seit Monaten einwandfrei. Ich bin zufrieden damit. Neben den Festplatten ist noch ein USB-Stick mit 4 GB als Laufwerk eingebunden worden, weil wir auf die dort befindlichen Daten besonders häufig zugreifen und dann nicht jedesmal eine Festplatte hochgefahren werden muss.

Der Server hat keinerlei Temperaturprobleme und bietet stets genügend Leistung. Er benötigt im Mittel knapp 30 Watt Leistung an der Steckdose, also insgesamt. Dieses Mittel ist im Prinzip dann, wenn alle Festplatten aus sind, was meist der Fall ist. Einen flotten Storage Server mit nur 30 Watt so einfach zu realisieren finde ich beeindruckend. Kann ich jedem empfehlen.

FreeNAS kommt übrigens auch mit deutlich schwächerer, also alter Hardware aus, wenn man nicht so auf Performance achtet. So lassen sich alte PCs noch gut verwerten. Allerdings brauchen die meist ein Vielfaches an Strom. Ich rechne meist mit 1,75 € pro Watt und pro Jahr bei Dauerbetrieb. Wenn eine alte Kiste z.B. 120 Watt verbrennt, kosten die 90 Watt Differenz zu meinem Server pro Jahr ca. 160 €, wofür man natürlich wieder sparsamere Hardware kaufen könnte. Hier lohnt es, einmal nachzurechnen.

Insgesamt ist im Netzwerk also einiges komfortabler geworden (Backups, Speicherplatz „ohne Ende“ und überall im LAN, usw.). Die Investition hat sich gelohnt.

Mittelfristig will ich gucken, ob es möglich ist, FreeBSD im Hintergrund auf Version 8.2 zu aktualisieren, da Samba angeblich deutlich performanter laufen soll, was schnellere Übertragungszeiten und Zugriffszeiten ermöglicht. Zwar kann man jetzt nicht meckern, aber mehr wäre natürlich toll.

Dann hoffe ich, dass die Anleitung dem einen oder anderen helfen konnte, insbesondere mit der Printservergeschichte.

Gruß vom Mov

12 Gedanken zu „Storage Server

  1. Danke für die super Anleitung zur Installation der Printservers. Hatte am Anfang Probleme mit einem „Device Busy“ aber eine Änderung von ulpt0 auf unlpt0 in der Printcap und der devd.conf haben es gelöst.

  2. Hallo Mov,

    die Anleitung mit dem Printserver ist klasse!!! Bei mir hackt nur der Teil mit dem devd.

    Das attach greift irgendwie nicht und somit wird der lpd nicht gestartet. Es funktioniert wenn ich:
    1. lpd nach dem booten aus der cli starte
    2. devd neu starte

    aber eben nicht automatisch nach dem Bootvorgang. Kontrolliert habe ich mit „top“ und der lpd wid in der processliste einfach nicht angezeigt bis ich eine der beiden genannten Möglichkeiten anwende.

    Ich habe eine FreeNAS 8.0.3 – 64bit auf einem USB Stick.

    Hast du irgendeine Idee?

    Grüße

    Konstantin

    • Hast du alle Hinweise im Artikel dazu gelesen? Es gibt da ja einige potentielle Fehlermöglichkeiten.
      Ansonsten stimmt deine Annahme nicht, dass der lpd erst nach dem Bootvorgang gestartet wird, sondern währenddessen. Beobachte mal während des Bootens die Statusmeldungen in der Ausgabe, also wenn bei Booten der ganze Text durchläuft. Dort sollte der Start des lpd angezeigt werden und ggf. auch ein Fehler.

      Ansonsten prüfen:
      – richtige devd-Datei bearbeitet?
      – richtiges Druckergerät ausgewählt?
      – lprng kompatibel mit Drucker? Auf der Webseite von lprng gibts eine Kompatibilitätsliste, die allerdings sehr lang ist.

      Ggf. hat sich mit dem neuen FreeNAS etwas geändert, was ich derzeit nicht nachvollziehen kann. Denke aber nicht, dass eine kleine Unterrevision solch gravierende Unterschiede mit sich bringt.

  3. Hallo Movergan,

    Schönes Projekt. Ich hätte nur eine kurze Frage, wie schnell ist ein Schreib- bzw. Lesevorgang auf ZFS im Netzwerk?
    Ich habe ZFS-Fuse und überlege gerade von Ubuntu Server auf FreeBSD umzusteigen ;)

    Gruß

    • Lässt sich so universell nicht sagen. Das hängt von vielen Faktoren ab. Bestenfalls erreiche ich so knappe 50 MB/s. Ich vermute aber, dass z.B. der Realtek Chip im Storage Server da auch irgendwo ans Limit kommt. Die CPU ist dabei nämlich nicht gerade beschäftigt. Außerdem ist CIFS eine wesentliche Bremse, so dass dieser Wert gar nichts über die Leistungsfähigkeit von ZFS aussagt.
      Wie ich gelesen habe, soll FreeBSD ab 8.2 da ein Stück schneller sein. Bei mir werkelt noch 8.0.

      • Der LAN-Chip ist sicherlich noch nicht an seiner Leistungsgrenze, denn ich habe den selben auf einen Asus 880G Mainboard mit einem Athlon II 240e. Eine einzelte HDD mit ext4 drauf macht bei mir ~85MB/s lesend, was bei dem Model (ist ein älteres) fast der nativen Geschwindigkeit entspricht. (Getestet mit Samba).
        Na, bei mir wirds wohl am kleinen RAM liegen (nur 2GB).
        Wirst du 8.2 testen?

        • Kann sein, dass der Realtek Chip noch mehr kann. Habe von manchen anderen gelesen, dass sie auch 85 MB/s schaffen, auch mit FreeNAS. Andere schaffen aber irgendwie auch nur 5 oder 10 MB/s bei Gigabit. Keine Ahnung, ich liege zumindest im guten Mittelfeld, wobei manche PCs im Netzwerk langsamer unterwegs sind als andere.
          Für ZFS braucht man definitiv viel RAM, sonst leidet die Performance. 2 GB ist möglich, aber würde sicherlich keine 85 MB/s ermöglichen, bzw. nur kurz beim Start des Kopiervorgangs, aber dann bricht es nach einer Minute oder so gnadenlos ein.
          FreeBSD 8.2 würde ich gerne testen, aber ich vermute mal schwer, dass ich nicht einfach so den Kernel aktualisieren kann und FreeNAS dann noch läuft. Allerdings gibt es auch schon eine neue Unterunterversion von FreeNAS, in die vielleicht der neue Kernel eingepflegt wurde. Da ich aber zufrieden bin, warte ich einfach ab. Der große Batzen war ja am Anfang, als die Platten gefüllt wurden. Der tägliche Traffic ist ohnehin vergleichsweise gering, so dass es nicht auf 50 oder 85 MB/s ankommt.

          • Ja, wenn du zufrieden bist, passt es doch.
            Ich habe leider versäumt, günstigen RAM für meinen Server zu kaufen. Irgendwann muss ich dennoch aufrüsten. Mein täglicher Traffic ist etwas höher, da ich viele Bilder und all meine Projekte auf meinem Server liegen habe, was sich in kurzzeitigen hohen Belastungen auswirkt. Diese sind jedoch direkte Wartezeiten des Benutzers ;)
            Wie schon erwähnt, überlege ich einen Umstieg, da das Ubuntu sehr wartungsintensiv ist.

  4. Ist es wirklich nötig gewesen einen Server einzurichten? Ich habe bei meinem Router OpenWrt installiert und mit einem USB Hub dient der auch super als NAS und könnte auch einfach mit einem klick zu einen print server werden. Oder war ZFS der Grund? Ext3 reicht mir weiß aber gerade nicht wozu ZFS in der Lage ist.

    • Naja, die Gründe dafür stehen ja im Artikel. Eine vermutlich ähnliche Lösung wie dein Router mit USB-Hub bestand ja bei uns zuvor auch schon. Aber es ist kein echter Server, wo die Clients zeitgleich auf dieselben Daten zugreifen können, wo mit 50 MB/s und aufwärts kopiert werden kann und der selbstständig Backups vornehmen kann. Zudem wären auch FTP und dergleichen direkt über das Webinterface möglich. Da muss ich aber zugeben, dass es mir noch nicht erfolgreich gelungen ist, einen SFTP einzurichten. Und neben dem Problem, dass ich bei unserem Belkin USB Hub nicht mit Linux-Rechnern drauf gekommen wäre, war auch noch doof, dass ich nur externe Platten benutzen könnte, die sich selbst abschalten können müssen. Da der Speicherplatz erschöpft war, hätte ich dann noch mehr davon kaufen müssen. Dann lieber interne Platten in einem Server. Ist natürlich die Frage, was notwendig ist und was man einfach gerne hätte oder ausprobiert. Aber die 30 Watt machen uns sicher nicht arm.

    • Ich würde sagen, dein Router mit OpenWRT ist nichts anderes als der hier vorgestellte Server (mal abgesehen davon, das die Festplatten nur über USB angesprochen werden) mit wesentlich weniger Bums, was die Leistung angeht. Wenn du den Router zusätzlich weiterhin als Router verwendest kommt noch hinzu, das es vielleicht keine so gute Idee ist seine Vertraulichen Daten bildlich gesprochen im Briefkasten aufzubewahren (schließlich ist der Router die erste Station von außen ins Netzwerk).
      Ich habe mir vor ’nem halben Jahr oder so ein fertiges NAS zugelegt. Das werkelt auch zufriedenstellend :)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.