Posts mit dem Label ArchLinux werden angezeigt. Alle Posts anzeigen
Posts mit dem Label ArchLinux werden angezeigt. Alle Posts anzeigen

Mittwoch, 29. Januar 2014

Mini ITX Server Build

Ich betreibe seit Ewigkeiten immer einen Home Server über den Streaming, Storage usw. abgewickelt wird. Früher waren die NAS Boxen ja wirklich nur dumme Festplatten die einfach am LAN gehangen sind und ich habe doch immer Funktionen gefunden die eine solche Box nicht oder nur teilweise übernehmen konnte.

Mein letztes Modell war dabei ein Asus EEE Box mit einer externen Platte über eSATA. Das war damals so ziemlich das erste Modell der EEE Boxen und eigentlich war der so auch viele Jahre tip-top. Klar war der kleine Atom nicht gerade ein Rechenknecht und den IO Load über die CPU zu handeln auch nicht gerade der beste Ansatz aber was solls. Der Stromverbrauch war gering und er war schön klein und leise.

Der hat jetzt 4-5 Jahre brav gearbeitet aber nun ist er einfach fertig. Ich habe ihn immer wieder gesaugt um den Staub heraus zu bekommen und die Temperatur niedrig zu halten aber es half nichts mehr. In letzter Zeit lief er im Idle bei um die 80°C und entsprechend laut waren auch die kleinen Lüfter mit ihrem hochfrequenten Pfeifen das schon fast schwierig zu übertönen wurde.

Kurz gesagt es war Zeit für etwas Neues!


 Ich habe lange herum überlegt ob ich FreeNAS drauf packe und das ganze Ding wirklich viel mehr in Richtung NAS ausrichte oder doch volles Linux fahre. Im Endeffekt war für mich dann klar, dass ich ein volles Linux möchte. Klar fahren die NAS Boxen alle Linux aber eben irgendwelche speziellen Anpassungen. Da nehm ich doch gleich Arch Linux und kann machen was auch immer mir gerade einfällt!

Ich habe mir den Server selber zusammen gestellt weil ich dann genau das drinnen habe was ich will. Meiner Erfahrung nach kauft man bei Elektronik und speziell im Computerbereich immer teurer wenn man billig kauft. Entweder passt die Leistung nicht oder die Qualität leidet und darum bin ich da sehr strikt bei der Auswahl der Komponenten. Intel CPU, ASUS Mainboard, Noctua bei den Lüftern und Corsair bei so ziemlich allem anderen.

Ich wollte den Server nicht zu groß haben aber eben doch sinnvolle Komponenten verbauen. Mein Ansatz war daher den Mini-ITX Formfaktor zu nehmen. Ganz klein wollte ich dann aber auch wieder nicht da die Komponenten Luft bekommen sollen und wenn ich mal möchte, soll auch noch etwas Raum für Erweiterungen sein.

Nach langem herumsuchen ist dann diese Komponentenliste heraus gekommen:
Intel Core i3-4130T (Amazon)
Asus H81I-PLUS (Amazon)
Corsair RM Series 450Watt (Amazon)
Corsair Vengeance Schwarz 8GB (Amazon)
Corsair LS CSSD-F60GB (Amazon)
Western Digital Red 3TB (Amazon)
Cooler Master Elite 130 (Amazon)
Noctua NH-L9i CPU-Kühler (Amazon)
Noctua NF-S12A PWM (Amazon)

Für den i3 habe ich mich entschlossen weil ich mit den Atom Prozessoren immer wieder längere Zeiten mit voll ausgelasteter CPU erlebt habe. Der i3 hat da schon um einiges Mehr Kraft dahinter und auch ein ganz anderes Chipdesign wodurch die Zeiten mit voller Auslastung viel kürzer ausfallen. Ob sich das dann wirklich mit dem höheren Basisstromverbrauch gegenrechnet ist schwer zu sagen. In Wahrheit ist es mir aber auch eher egal denn ich warte doch recht ungerne auf den Server und das rechtfertigt die stärkere CPU für mich. Dieses Modell hat eine TDP von 35 Watt was auch noch recht niedrig ist.


Beim Mainboard habe ich bedeutend länger überlegt und mich letztendlich für das kleinere Asus entschieden. Der primäre Punkt dabei war die Entscheidung kein Raid zu fahren und damit benötige ich nicht mehr als 2 SATA3 Ports. Raid ist für mich immer so eine Sache. Für den Server wäre nur ein Raid für Redundanz in Frage gekommen und da auch nur Raid 1 denn wenn schon redundant dann wirklich. Der Punkt ist nur, dass ich auf dem Server nur sehr wenige Daten habe die wirklich weh tun würden wenn sie weg sind.

Ich nutze generell externe Platten sowohl für den wirklichen Datenspeicher als auch den Backup und die werden immer wieder über Docking Stations aktualisiert die über eSATA am Rechner hängen. Die Daten am Server sind also nicht "Langzeit" gespeichert sondern nur im Durchlauf oder dort abgelegt um sie immer online zur Verfügung zu haben - etwa Musik. Ich bin bei den Backups recht selektiv - ich sichere zwar doppelt auf externe, nicht immer eingeschaltete Festplatten aber ich sichere nur das was mir wirklich weh tun würde wenn es weg ist. Von meinen 6TB externen Datenspeicher sind gerade mal 2 TB wirklich gesichert. Der Rest ... nun ja wenn die Dinge weg sind ist das zwar doof aber kein Beinbruch. Meine Form von sauber machen. Wirklich passiert ist bisher nichts weil ich schon darauf achte die SMART Daten immer wieder auszulesen und zu prüfen wie es der Disk geht.


Ich habe mich also gegen den Raid entschieden und damit sind einige Mainboards mit mehr schnellen SATA Ports ausgefallen. Man muss ja nicht mit Gewalt teuer kaufen :D Die 3TB WD Red war dann irgendwie die logische Wahl. Ich habe mit WD bisher sehr gute Erfahrungen gemacht und die Red ist auch noch für NAS, also 24/7 Betrieb, optimiert. Im alten Server waren 2TB extern + 300GB intern also war auch die Größe recht schnell gefunden.

Die SSD im Server war dann mehr eine "ach was solls" Entscheidung. Es ist jetzt nicht so, dass sie sehr teuer ist aber notwendig ist sie auch nicht unbedingt. Sie hilft eventuell etwas mit den Stromverbrauch zu senken weil die HDD in den Stromsparmodus gehen kann wenn das OS auf der SSD liegt, rechnen wird sich das aber vermutlich nie. In Wahrheit ging es mir hier eher darum die Performance vom Desktop, der natürlich das OS auf einer SSD hat, auch am Server zu haben. Wie gesagt - notwendig ist das überhaupt nicht denn eigentlich läuft dort nichts was den Durchsatz brauchen würde. Dennoch macht es Spaß wenn der Server in 2 Sekunden bootet und auch IO-lastige Aktionen ohne die sonst üblichen Verzögerungen fertig werden ;)

Ähnlich ist es mit den 8GB RAM. In einem Arch Linux Home-Server 8GB zu verbauen ist schon fast lächerlich denn das OS verwendet davon nicht mehr als 500-800MB. Dennoch Linux nimmt sich was es bekommen kann als Puffer und hilfts nicht so schadet es auch nicht. Der wirklich belegte RAM ist laut top bisher nie über die 800 MB gegangen aber aufgefüllt wurden die 8GB schon. Samba, lighttp usw nehmen sich schon was da ist. Wenn man es sonst nicht braucht kompiliert man eben irgendwas in der RAM-Disk oder nimmt sie zum Entpacken.

Das Gehäuse hat mir optisch ganz gut gefallen und es ist recht durchdacht. Es ist auch nach dem Einbau aller Komponenten noch genug Platz. Den Seitenlüfter habe ich raus geworfen und den den Frontlüfter gegen den Noctua ersetzt. In Kombination mit dem Noctua CPU-Lüfter ist das Ganze nicht zu hören.

Wer sich jetzt noch wundert warum ich für so einen doch eher "kleinen" Rechner ein 450W Netzteil verbaue, der soll man einen Blick auf die Details davon werfen. Es ist ein 80 Plus Gold Netzteil und das bedeutet beste Effizienz auch schon bei schwacher Last. Dieses spezielle Model verhält sich so, dass es den Lüfter überhaupt nicht startet wenn es nicht sein muss. In meinem Build ist es daher ein passives Netzteil aber wenn es irgendwo mal notwendig wäre könnte es auch aktiv kühlen. Wichtig war mir auch das modulare Kabelmanagement damit ich nicht Unmengen an Kabeln irgendwo im Gehäuse unterbringen muss die nur den Luftstrom behindern.


Soviel zur Hardware. Die Software war grundsätzlich klar: Arch Linux
Wer diese Distribution nicht kennt dem möchte ich auf mein Arch Review hinweisen. Kurz gesagt Arch ist wunderbar kompakt, topaktuell und schnell. Nebenher fördertes noch das KnowHow denn man muss wissen was man tut.

Ich habe bei diesem Setup den Apache gegen lighttp ersetzt. Apache ist ja ein super Webserver, keine Frage, aber für meine Anwendung ist er viel zu viel. Klar kann man alle Module raus werfen bzw. abdrehen aber man kann auch gleich in Richtung Leichtgewicht gehen und das habe ich versucht. Die Config ist anders aber da ist keine magic dabei und wenn mans mal gemacht hat ist er einfach nur schnell und braucht dabei fast keine Ressourcen. Es ist jetzt nicht so als hätte der Server zu wenig Power aber ich wollte lighttp auch mal ausprobieren und ich bin sehr happy damit.

Ansonsten hat sich eigentlich in der Software nichts zum Vorgänger geändert. Ok der neue Server hat Gummiboot als Bootloader weil UEFI und nicht mehr GRUB aber das ist auch nur ein Detail. Mein erster UEFI Setup war ein Kampf aber wenn man das schon mal gemacht hat und nicht auf Windows auch noch achten muss, ist UEFI wirklich eine feine Sache.



Ich bin absolut zufrieden mit dem Build denn alles was ich wollte habe ich damit erreicht!
Er ist flüsterleise - ich meine wirklich leise, nicht leise in der Art, dass man ihn nicht hört wenn man auf der anderen Seite des Raums ist und Radio läuft, sondern man hört ihn auch fast nicht wenn man daneben sitzt und der Raum ansonsten still ist. Ein leichtes Geräusch von bewegter Luft und gelegentlich die Platte aber das wars dann auch schon. Er ist schnell - ein mandb update geht zack zack und ich bekomme ihn im normalen Gebrauch nicht mal auf Lastspitzen von 50%. Klar kann ich ihn auslasten wenn ich will aber das normale Zeug schafft das nicht.
Man kann so einen Server sicher billiger bauen und man könnte den so wohl auch problemlos als Desktop nutzen (evtl. noch ne Graka rein wenns etwas mehr sein soll) aber ich bin happy und hoffe auf viele Jahre treue und ruhige Dienste!


Nachtrag
Habe mich wohl zu früh gefreut. Irgend etwas sorgt  für korrupte Files und ich habe die Ursache bisher nicht festmachen können. Die Disks schauen auch nach mehrfachen badblock checks absolut sauber aus. Aktuell vermute ich ein RAM Problem aber ich kann es noch nicht fest machen weil memtest noch läuft. Mal schauen was da schuld ist :/

Nachtrag 2
Memtest hat nicht wirklich etwas gebracht aber ich habe trotzdem mal die RAM Module gegen welche aus meinem PC ersetzt. Das sind eigentlich die selben nur nicht low profile also sollte in Punkto Kompatibilität kein Problem auftreten. Wie auch immer mit diesen Modulen sind die Fehler sofort verschwunden!
Blöde Sache aber immerhin konnte ich isolieren wo der Fehler her kam und Amazon ist ja zum Glück super wenn es mal Troubles mit irgend einem Teil gibt. 

Freitag, 2. August 2013

Arch Linux - Review

Das wird ein etwas längerer Post somit fange ich mit der Kurzfassung an: Arch ist cool!


Mein Background
Ich nutze schon ziemlich lange Linux sowohl am Desktop als auch am Home-Server. Während meiner Studienzeit eigentlich ausschließlich auch wenn ich für gewisse Dinge immer ein Dualboot System hatte. Als ich dann wieder mehr gezockt habe bin ich eigentlich fast nur noch unter Windows unterwegs gewesen weil das switchen lästig war. Nachdem ich davon wieder abgekommen bin war der Wechsel zurück zu Linux vorprogrammiert auch wenn die Dualboot Umgebung nicht gestorben ist.

Meine Distribution der Wahl war dabei ewig lange Ubuntu weil es super funktioniert hat. Ich bin dabei von KDE auf Gnome und dann Unity gewechselt und habe mich eigentlich auch an Unity ganz gut gewöhnt. Ubuntu hat trotzdem begonnen mich zu nerven. Es war früher 100% stabil und hat einfach funktioniert, die letzten Releases sind aber immer instabiler geworden. Nicht so, dass wirklich dauernd etwas gecrasht ist aber irgendwas war doch immer buggy und wenn man ein stabiles System will muss man fast auf den LTS Releases bleiben.

Einer der großen Vorteile von Linux ist aber, dass man eben immer cutting edge unterwegs ist. Einigen mag das egal sein aber ich will den aktuellen Kernel und zeitnahe die neuen Versionen von Anwendungen. Kann man natürlich auch unter Ubuntu erreichen aber damit verliert man den Vorteil den Ubuntu bieten soll - just working.

Der letzte nervige Punkt den ich unter Ubuntu hatte war der Suspend. Hat lange perfekt funktioniert aber dann auf einmal nicht mehr - nach dem Wakeup war das Eingabefeld für das Passwort nicht aktivierbar. Kein Weltuntergang aber nervig. Ein solches Thema ist egal aber es war immer wieder etwas. Für mich war das dann der Punkt an dem ich mich entschlossen habe etwas anderes zu nehmen.

Ich habe in der Arbeit mit RedHat und CentOS zu tun und habe mich auch mit SuSE rumärgern müssen - nichts davon kommt mir auf meinen Rechner! Debian habe ich am Laptop (altes Modell und kein Support mehr von Ubuntu) und naja cutting edge ist auch etwas anderes...

Arch Linux
Von +Marcel Otte wusste ich, dass er ArchLinux einsetzt und damit mächtig zufrieden ist. Arch ist eine rolling Distribution in der es keine Releases gibt sondern es wird laufend weiter aktualisiert und das sehr schnell! Man hat damit natürlich das Risiko, dass auch mal etwas bricht und man das fixen muss aber ok.
Der Umfang von Arch ist deutlich geringer als etwa Ubuntu und die offiziellen Repositories enthalten nicht alles was einem einfallen könnte - es gibt aber auch das Arch User Repository in dem man Pakete findet die zwar nicht im Repo sind aber für die es die notwendigen Anpassungen und Buildscripte fix fertig gibt. Man lädt das Paket, lässt es bauen und installiert es. Ist eigentlich super einfach und wenn man eine CPU mit etwas Power hat geht es auch recht zackig. Hierfür braucht man auch keine Programmierkenntnisse obwohl es natürlich hilfreich ist zu verstehen was da passiert.

Mehr Details zur Philosophie hinter Arch findet ihr unter https://www.archlinux.org/

Was man natürlich zugeben muss ist, dass Arch für interessierte Personen ausgelegt ist und das bedeutet auch man sollte seine Probleme selber lösen wollen! Man findet im wiki oder per Google Lösungen für jedes Szenario aber man muss es eben auch lesen und verstehen wollen ;) Die Community ist auch super aber wer erwartet, dass einem alles vorgekaut wird der bekommt eben auch sehr schnell ein RTFM serviert ;) Ich finde das ehrlich gesagt absolut in Ordnung so - mir ist wichtig, dass die Information gut aufbereitet findbar ist und das erfüllt Arch vollständig.

Testing
Wow der erste Kontakt mit dem Setup in einer TestVM ist richtig heftig und ich habe die VM wieder gekübelt. Man bootet in ein minimales System und ist dann in der Kommandozeile über die man sein System vorbereitet. Platten einrichten, Sprache konfiguriern, Netzwerk einrichten,... alles in der Konsole und nicht mit einem EasyCheezy Installer!
Ich glaube mein Kommentar auf G+ war in etwa "cannot be bothered" :D

Ich habe mich dann doch noch einmal hin gesetzt und mich wirklich eingelesen und durch das HowTo gearbeitet und siehe da - ein extrem sauberes und schnelles System. Ich habe noch etwas herum gespielt, verschiedene Display Manager ausprobiert und einfach getestet. Irgendwann war ich dann an dem Punkt wo ich gesagt habe "Scheiß drauf - ich probiers". Wirklich lernen tut mein neues OS eben erst wenn man es wirklich am Hauptrechner laufen hat und damit arbeitet!

Setup und Betrieb am Hauptrechner
Ich habe hier meinen Rechner schon mal gepostet und auch meinen Kampf mit UEFI also hatte ich schon etwas Bammel - der war nicht unbegründet. Arch konnte nicht direkt auf die EFI Speicherzellen schreiben was wohl an meiner etwas älteren EFI Shell gelegen ist und ich musste in die Trickkiste greifen. Das ArchWiki ist super und hat mich auch aus diesem Schlamassel befreit. Der erste Setup hat zwar definitiv länger gedauert als erhofft aber egal - up and running!

Ich habe mich für KDE als Windowmanager entschieden und ich muss sagen, mir war gar nicht mehr bewusst um wie viel mächtiger KDE gegenüber Gnome ist. Wer ein simples System will dem wird Gnome passen aber in KDE kann man einfach alles feintunen was einem nur einfällt!

Als Paketmanager verwendet Arch pacman und der kümmert sich sehr sauber um das System. Die Parameter sind mehr Parameter als bei apt aber so what (ein Upgrade wäre "pacman -Syu" anstelle "apt-get upgrade"). Was man nicht hat ist ein Software Center wie in Ubuntu aber wer des Lesens mächtig ist und mit einem Browser + Google  umgehen kann wird alles finden was er braucht.

Einen generellen Punkt möchte ich hier nochmal herausstreichen. Arch ist für Leute die Ihr System kennen wollen und dann eben auch wissen wie man Debugging macht. Ich hatte gerade wieder so einen Fall, dass ein Upgrade eine Bibliothek aktualisiert hat wobei ich mit der früheren Version ein Tool kompiliert habe mit dem ich meine Bilder importiere. Mit dem Upgrade ist das Tool gebrochen und der erste Ansatz war es einfach neu zu kompilieren was aber nicht zum Erfolg geführt hat. Wenn man dann schaut was geschrieben wird wenn man es in der Konsole startet und kapiert was das bedeutet so ist das auch recht klar - das Tool bindet eine andere Bibliothek ein die ich ebenso selber kompiliert habe und die habe ich nicht aktualisiert. Problem erkannt, recompile der Bibliothek und gut ist.

Genau solche Dinge meine ich wenn ich sage man muss sein System kennen. Selber Pakete bauen bedeutet eben auch, dass man die dann auch selber aktualisieren muss. Aber keine Angst, die meisten Dinge sind sowieso im Repository und die die man selber baut sollte man sich eben merken :D Sollte nicht dramatisch sein wenn man Dinge installiert die man verwendet.

Ich hatte speziell wegen UEFI und meinem rEFIND Boot Environment etwas Sorgen wie sich das bei einem Kernel Upgrade verhalten wird aber das war völlig unbegründet. pacman führt alle nötigen Schritte aus um nach einem Upgrade des Kernels auch die Bootimages vorzubereiten, rEFIND findet diese dann zuverlässig und schnell.

Nach recht kurzer Zeit muss ich sagen ich bin sehr happy mit ArchLinux! Im Vergleich zu Debian oder RPM Distros sind einige Befehle anders da Arch eben aktuelle Technologien einsetzt. Es gibt die klassischen runlevel mit init.d nicht sondern das wird alles über systemd gesteuert. Das ist erst mal ungewohnt aber systemd ist auch super flott und wenn man sich mal daran gewöhnt hat um Längen einfacher zu warten.
Gefehlt hat mir anfangs auch das klassische ifconfig denn das gibt es auch nicht - anstelle dessen gibt es etwa ip link up xx oder ip addr. Auch recht simpel aber anfangs eben ungewohnt.

Arch ist eben nicht Ubuntu oder Debian und damit sind die Befehle etwas anders - im Kern ist es aber auch nur ein Linux und zwar eines das man deutlich mehr selbst unter Kontrolle hat als Ubuntu. Auf der einen Seite ist es ja toll wenn das System Dinge selber macht aber man hat dann eben auch keine Ahnung wenn etwas nicht funktioniert. Bei Arch hat man jeden Dienst selber gestartet bzw. aktiviert und damit hat man dann auch eine Ahnung woran es liegt wenn etwas nicht läuft. Oder zumindest hat man eine Ahnung wo man nachschaut ;)

Ich habe mittlerweile auch meinen Homeserver auf Arch umgestellt weil es doch einfacher ist wenn beide Maschinen auf die selben Befehle reagieren. Wenn ich mal ganz viel Zeit habe werde ich auch meinen Laptop umstellen aber nachdem ich das alte Ding quasi nie verwende hat es auch keine Priorität.

Ich habe mittlerweile auch meine DualBoot Partition gekillt weil es für mich keinen Sinn macht 50GB meiner 120GB SSD für ein OS zu verschwenden das ich nicht mal boote. Da schiebe ich dann doch lieber eine meiner VMs auf die SSd und nutze dort die Performance.

Ich gebe jedoch zu, dass ich immer noch ein Windows habe das ich direkt booten kann. Es gibt immer noch Usecases wo ein Windows das direkt auf der Hardware läuft hilfreich ist - etwa ein Firmware Upgrade für die SSD. Theoretisch gibt es zwar Anbieter die das unter Linux anbieten aber das sind wenige. Meine Windows Partition ist aber nicht mal intern sondern eine externe Disk die ich per eSATA anbinden kann wenn ich es denn brauchen sollte.


Fazit
Arch Linux ist das perfekte System für Leute die gerne mit Linux arbeiten und auch etwas Erfahrung haben. Einem Anfänger würde ich das so nicht antun denn man muss sich in der Kommandozeile schon wohl fühlen. Klar kann man für die meisten Konfig files einen GUI Editor oder irgendwelche Config Tools nutzen aber einfacher geht es mit vim in der Konsole ;)

Es ist großartig dokumentiert und ich empfinde es als sehr benutzerfreundlich. Wenn man darunter versteht, dass es für alles eine Klicki bunti Oberfläche gibt dann ist das natürlich falsch aber was ich meine ist die Struktur und der logische Aufbau. Es ist nichts versteckt oder irgendwie verschleiert - wenn man etwa die Zeitzone einstellt dann linkt man die Zeitzoneninformation nach /etc/localtime was doch deutlich klarer ist als irgendwo eine Auswahl zu machen aber nicht zu wissen was jetzt passiert. Dinge wie dieses Beispiel gibt es im gesamten System, klar muss man wissen wie es geht aber dafür gibt es ja die HowTos und dann ist aber auch klar was wie warum funktioniert.

Die Performance ist großartig! Ubuntu hat deutlich mehr Last auf meinem System verursacht und auch wenn das auf meinem Rechner nicht ins Gewicht gefallen ist, so habe ich nun ein System das quasi 0% CPU braucht wenn ich nicht gerade etwas mache. Alles reagiert instant und läuft so stabil wie man es sich nur wünschen kann.

Ich habe meine neue Distro gefunden und bin happy damit!
ArchLinux FTW