Die Hamburgerin
Kommst Du neu nach Hamburg, so solltest Du einiges wissen über die Stadt und ihre Bewohner. Beginnen wir mit den Frauen:
Hamburgs Frauen flirten nicht. Nicht weil sie es nicht können. Flirten ist die erotisch angehauchte Variante des Smalltalks, des leichten Gesprächs, der Plauderei. Hamburger Frauen kommunizieren zielgerichtet, jedenfalls wenn es um die Auswahl eines Mannes geht. Es werden kurz die Eckdaten abgecheckt und wer als potentieller Vater ihrer Kinder oder wenigstens als Sexualpartner übergangsweise nicht in Frage kommt – der ist halt draussen. Mann erkennt das am Blick, der erst prüfend, dann sehr schnell eisig wird. Ab hier ist jede Liebesmüh’ vergebens. An so jemanden verschwendet die Hamburgerin keine Zeit. Das kann auch ein Vorteil haben: während woanders ein Flirt ein Flirt ist, ist in Hamburg ein Flirt schon ziemlich dicht an einer Bettgeschichte dran. Eigentlich kann Mann es jetzt nur noch selber versauen.
Hamburg hat eine sehr lange Kaufmannstradition. Das färbt natürlich ab. Was beim ersten Date anderswo zwischen “unschön” und “geht gar nicht” angesiedelt ist – Fragen nach dem materiellen Status, meist versteckt in Erkundigungen nach Größe und Lage der Wohnung und Marke des Autos, sind in Hamburg durchaus üblich. Auch die Prioritäten werden anders gesetzt, man sollte sich nicht wundern, dass sich eine Hamburgerin als recht anspruchslos bezeichnet, weil sie einen Mann sucht der nur treu, intelligent, gebildet, zuverlässig, sportlich usw. ist: schliesslich kommen hier ja keine materiellen Anforderungen vor.
Die Hamburgerin liebt ihr Hamburg. Auch dann noch, wenn sie gerade auf einen Haufen Hundescheisse (oder gebrauchte Kondome, das variiert je nach Stadteil) ausgerutscht und mit dem Gesicht direkt in einen Müllhaufen gefallen ist. Beim Aufstehen wird sie immer noch versichern, dass Hamburg die schönste Stadt der Welt ist. Kritisiere niemals (niemals!) Hamburg in Gegenwart einer Hamburgerin.
Erkennt eine Hamburgerin, dass du eine andere Sicht auf die Dinge (welche auch immer) hast, wird sie dir ihren Standpunkt nochmal ausführlich erklären. Das ist nicht böse gemeint und auch kein Zeichen, dass sie dich für doof hält. Es ist für die Hamburgerin nur einfach unvorstellbar, dass es einen andere Sichtweise als die ihre geben könnte. Sie hat gar keine andere Möglichkeit als anzunehmen, dass ihr Gegenüber ihren Standpunkt einfach nicht verstanden hat. Erklärt dir eine Hamburgerin ihren Standpunkt, höre nur zu, sage nichts mehr. Vielleicht nicken.
Die Hamburgerin achtet sehr auf das Äussere. Das ihre und das ihrer Mitmenschen. Die Vorbereitung der Hamburgerin für einen Lauf an der Alster entspricht vom Aufwand her in etwa der Vorbereitung einer Wienerin auf den dortigen Opernball. Nur dass in Hamburg das Abendkleid durch einen (etwa gleich teuren) Trainingsanzug ersetzt wird. Gelaufen wird übrigens tatsächlich an der Alster. Nicht um die Alster. Eine ganz Runde ist einfach nicht machbar, Kondition der Hamburgerin und/oder ihrer Schminke geben das gar nicht her. Äussere Makel bei ihren Mitmenschen spricht die Hamburgerin direkt und deutlich an, auf entsprechende Situationen in der Öffentlichkeit sollte man vorbereitet sein. Wer auffallend entstellt ist, zum Beispiel durch eine kleine Narbe am Kinn als Folge eines Schulhofunfalls von vor 30 Jahren, wird spätestens beim ersten Date darauf angesprochen werden. Was anderswo ein Affront ist hier nur ein Zeichen von Interesse. Die Hamburgerin will nur wissen, wie man mit einem derart gezeichneten Gesicht überhaupt leben kann.
Sheeva: Dhcp- und DNS-Server
Der sheeva übernimmt bei mir die Aufgaben von dhcp- und dns-Server. Warum lasse ich das nicht die FritzBox machen? Ich will halt sehen (und reagieren), wenn bestimmte Geräte im Netz auftauchen. Neue Geräte sieht halt der dhcp-Server zuerst. Jedenfalls solange sich diese um eine IP-Adresse bemühen, was heutzutage ja zumeist üblich ist. Also habe ich dhcp- und dns-Server auf der FritzBox abgeschaltet.
Mein Netz ist 192.168.178.255/8, die FritzBox hat die 192.168.178.1, sheeva hat die 192.168.178.2.
Auf dem sheeva wird der dnsmasq installiert:
apt-get install dnsmasq
Konfiguriert wird der dnsmasq über die /etc/dnsmasq.conf. Dort muss einiges angepasst werden:
local=/fritz.box/ # das ist ist die domain, für die sich der dhcp-server verantwortlich fühlt
domain=fritz.box # diese domain bekommen die Clients per dhcp verpasst
dhcp-range=192.168.178.20,192.168.178.150,255.255.255.0,12h # in dem Bereich werden ip-adressen vergeben, lease hält 12h
read-ethers # in /etc/ethers registrieren wir dann die mac-Adressen
dhcp-option=3,192.168.178.1 # ip adresse des routers, hier die FritzBox
dhcp-option=42,192.168.178.1 # ntp macht auch die FritzBox
dhcp-script=/etc/local/dhcp-action.sh
Das wars schon. Unsere Clients machen wir dem dnsmasq nun in der /etc/hosts und der /etc/ethers bekannt, z.B. meine Squeezebox sieht dort so aus:
/etc/hosts: 192.168.178.25 squeezebox
/etc/ethers: 00:04:20:07:f2:f0 192.168.178.25
Wenn jetzt also die MAC-Adresse 00:04:20:07:f2:f0 im Netz nach einem dhcp-Server für ihre IP-Adresse sucht, wird sich der sheeva melden und ihr die 192.168.178.25 verpassen. Ein Heimnetz ist ja meist recht übersichtlich, daher habe ich es mir angewöhnt, alle meine Geräte in den beiden Dateien zu registrieren. So können sie sich per DHCP ihre Konfiguration holen (vereinfacht die Installation des Client), anderseits haben sie immer feste Namen und Adressen (vereinfacht das Handling im Netz). Meldet sich ein unbekanntes Gerät, bekommt es halt die nächste freie IP-Adresse.
In der /etc/dnsmasq.conf hatte ich noch eine Zeile mit Verweis auf das Script /etc/local/dhcp-action.sh erwähnt. Dieses Script wird vom dnsmasq immer aufgerufen, wenn ein Gerät neu auftaucht, verschwindet oder sich ändert.
Bei mir sieht dieses Script ganz einfach aus:
root@sheeva:/etc# cat /etc/local/dhcp-action.sh
#!/bin/sh
echo $@ >> /tmp/dhcp.log
if [ `grep -c $2 /etc/ethers` -eq 0 ]; then
echo "unkown device $@" | mail -s "DHCP: unknown device" m...@gmx.de
fi
if [ $1 != "del" -a $2 = 00:04:20:07:f2:f0 ]; then
/etc/local/wake-the-ghost.sh &
fi
Bei unbekannten Geräten bekomme ich eine Info (Konfiguration des postfix ist etwas komplizierter, folgt noch…).
Meldet sich das Gerät mit der MAC-Adresse 00:04:20:07:f2:f0 (ja genau, die Squeezebox), dann wecken wir den ghost auf
(wake-on-lan kommt auch noch…). Das Script bekommt beim Aufruf immer 4 Parameter:
- String old|del|add welcher angibt, ob das Gerät geändert, hinzugefügt oder gelöscht wurde
- die MAC-Adresse
- die IP-Adresse welche dnsmasq hier vergeben hat
- und den DNS-Namen
Hier kann man sich also diverse eigene Spielereien ausdenken.
Sheeva: Debian installieren
Debian auf einem Gerät ohne Tastatur und Monitor zu installieren mag vielleicht für den einen oder anderen erstmal abschreckend klingen, ist aber ziemlich einfach. Eigentlich hat Martin schon alles dazu gesagt: Debian on Plug Computers.Man zwar etwas Lesen, dafür funktioniert die Installation dann aber reibungslos.
Das Prinzip ist bei allen solchen Geräten immer gleich:
- man verbindet sich über eine serielle Konsole (heutzutage meist per USB) mit dem Gerät
- dort steht man am Prompt einer Art BIOS
- von diesem Prompt aus startet man ein Installationsprogramm (welches entweder per USB-Stick oder SD-Card direkt an dem Gerät hängt oder per Netz (meist tftp) geholt wird)
Natürlich kann man sich den Sheevaplug auch gleich mit einem vorinstallierten OS kaufen.
Hardware Teil 2 – der kleine Server
Linksys
Am Anfang war der Linksys, ein WRT54GL. Ausgestattet mit OpenWRT hat er sich zu Anfang auch wacker geschlagen (nicht schlecht für 200MHz und 16MB RAM!). Nur leider (sic) spendierte mir Alice dann doch eine schnellere DSL-Leistung und damit war er endgültig überfordert. Immerhin konnte ich aus den Erfahrungen mit OpenWRT eine ganze Menge mitnehmen…
FritzBox
Die FritzBox 7390 war damals recht neu und ein Hammerteil. Mit dem – für meinen Zweck – kleinen Nachteil, dass die Möglichkeiten in die Software bzw. Firmware einzugreifen eher beschänkt waren. Freetz war damals noch sehr instabil und unhandlich und ich wollte mir das schöne neue Teil auch nicht wegschiessen. Also blieb die FritzBox so wie sie war – und so läuft sie bis heute. Wunderbares Stück Hardware.
Sheeva
Da also die FritzBox als Bastelstück ausfiel, brauchte ich einen Ersatz und nahezu optimal geeignet für solche Zwecke ist ein SheevaPlug. In Deutschland gab es den damals leider nicht zu kaufen, ich habe meinen bei New IT bestellt. GB ist oft eine gute Wahl beim Einkauf, man muss eigentlich nur die Sache mit den Steckern im Auge behalten.
Der Plug kam vorinstalliert mit einen uralten Ubuntu, dieses habe ich gleich mal gegen ein Debian 6 ausgetauscht. Ich hatte damals keinerlei Erfahrung mit Ubuntu, Debian lag mir einfach näher. Andere Gründe gab es nicht. Übrigens läuft das Ding wie ein echter Server: nachdem erstmal alle Probleme beseitigt waren, habe ich den Plug nie wieder angefasst. Er läuft, und läuft…
Die Hardware ist leider nicht ganz unproblematisch. Das Teil ist passiv gekühlt, leider waren die Kühlrippen im Gehäuse (sprich die Ausparungen im Plastik) nicht sauber ausgearbeitet, sprich verstopft. Mit einer Nagelfeile habe ich dem Innenleben erstmal zu etwas Frischluft verholfen.
Als zweites habe ich das Netz auf 100MBit gedrosselt. Wirklich schnell ist die ARM-CPU eh nicht und auch die als Festplattenersatz arbeitende SD-Karte kann 1GBit nicht wirklich ausreizen. Diese Massnahme hat wirklich was gebracht. Das Drosseln kann einmal lokal auf dem Plug gemacht werden (kommt irgendwann später). Bei mir hängt der sheeva (so heisst das Teil bei mir im Netz) direkt an der FritzBox. Man kann daher auch dort einfach im Web-Interface unter System->Energiemonitor die Einstellungen für den jeweiligen Lan-Port auf GreenMode setzen, dann begrenzt schon die FritzBox den Durchlass an dieser Stelle auf 100MBit.
Hitzetod ist wohl häufigste Ursache für vorzeitiges Ableben bei den SheevaPlugs, mit den beiden o.g. Massnahmen ist dem abgeholfen.
Statt Festplatte kommt bei mir eine SD-Karte zum Einsatz. Hier empfehle ich aus leidvoller Erfahrung gute Marken-Qualität und mind. Class 10. Ich hatte im ersten Anlauf mit häufigen Abstürzen zu kämpfen, die Karte von damals wurde in einen Fotoapparat verbannt (wo sie noch immer gute Arbeit leistet). Mit einer guten Karte und dem richtigen Kernel (Achtung: der Debian Standard-Kernel läuft erstmal, wird aber immer wieder Probleme mit dem Filesystem auf der SD-Karte machen!) rennt die Kiste dann aber stabil. Und das muss sie auch – auf einem System ohne Tastatur und Monitor macht debuggen nur bedingt Spass. Immerhin bringt der Sheeva eine Debug-Schnittstelle per USB mit, über die kann man sich ein Terminal holen und ihm beim Booten zuschauen. Sollte man auf jeden Fall einmal machen, fühlt sich irgendwie cool an;)
Aus den Anfangstagen mit einigen Startproblemen hat sich ein Workaround bis heute erhalten: ich habe den sheeva auf eine Zeitschaltuhr gepackt. Er fährt sich so gegen 4:00 Uhr Morgens runter, gegen 4:30 schaltet die Uhr den Strom ab. Gegen 6:00 Uhr schaltet die Uhr wieder an, der sheeva hat sich einmal schön abgekühlt, fährt wieder hoch, macht dabei gleich mal ein fsck auf dem Root-Filesystem. Und ich habe Morgens als erstes eine Mail auf dem Handy mit der ersten Erfolgsmeldung des Tages. Ein guter Start in den Tag.
Ach ja, laut Hersteller zieht der Plug max. 20W, gemessen habe ich so etwa 3-5Watt (in derart niedrigen Regionen traue ich meinem Messgerät nicht so richtig), Dauerbetrieb tut hier also nicht weh. Die CPU zieht doch eine Menge weg, begrenzender Faktor in den meisten Experimenten war eigentlich immer der Speicher (512MB RAM).
Und noch ein ach ja: ein Tegra 3 mit 2GB RAM – so in etwa stelle ich mir den Nachfolger vor.
Hardware Teil 1 – der grosse Server
Das ist also der leistungsfähige Teil, der Server soll bei Bedarf ordentlich Leistung bereitstellen und ansonsten im Tiefschlaf versinken. Daraus ergeben sich direkt zwei Anforderungen:
- wake on line (WOL) – damit wollen wir das Teil bei Bedarf wecken
- suspend to ram (S3) – dorthin soll sich der Server von selbst schicken, sobald seine Dienste nicht mehr benötigt werden
Die beiden Anforderungen waren die Killer-Kriterien: beschafft habe ich alles schon 2010, eigentlich sollten Hardwareprobleme unter Linux da lange der Vergangenheit angehören. Denkste – mein erster Versuch mit einem ASrock K10N78FullHD-hSli scheiterte kläglich, S3 war einfach nicht zum Laufen zu bekommen. Letztlich ist es ein Asus M4N78 Pro geworden. Neben WOL und S3 waren die Forderungen:
- 6 mal Sata (5 Disks für das Raid5 Datengrab und eine Bootplatte)
- Onboard Grafik mit HDMI-Ausgang
- ECC-Speicher
- 1GB Ethernet
Die Grafik wegen dem Stromverbrauch (ich habe den Rechner per HDMI am TV hängen, genauso wie per Toslink am Receiver. Beides habe ich zwar nie wirklich benutzt – aber das wusste ich damals noch nicht). 1 GB Ethernet war damals schon Standard und ist Pflicht, wird spätestens klar, wenn man mal eben die 50GB einer BluRay wegschieben will. ECC-Speicher und Raid sind schon nett im Server, dann sagt die Maschine halt Bescheid, wenn was nicht stimmt. Apropos Raid: dass bauen wir später per Software auf, ob das Board Raid kann oder auch nicht, ist hier egal. Von Hardware-Raid im Homebereich rate ich immer ab: geht die Hardware kaputt, ist man darauf angewiesen, exakt die gleich Hardware wieder zu besorgen. Das ist meist gar nicht möglich, und wer will das schon: kaputte Hardware ist doch der schönste Grund aufzurüsten.
Ok, das Board war also klar, dazu einen X2 235e – das war damals ein gutes Verhältnis von Performance und Stromhunger. Dazu 4GB (gerne auch mehr, da ich keinen Swap will). Als Bootplatte habe ich eine 2.5” Platte im einem 3,5” Rahmen mit Schalldämpfung genommen (heute würde ich wohl einfach eine SSD nehmen). Ein grosses Problem ist immer das Netzteil. Der Rechner zieht etwa 50W idle, 70W unter Volllast. Ein 100W-Netzteil sollte es also tun – 80+ Platin bekommt man aber erst so ab 400W. Ich habe mich damals für ein be quit SFX300 entschieden. Für die Daten dann noch 5mal 1TB Platten, am besten schön leise und stromparende. Ich habe mich damals für die Spinpoint F2 EcoGreen entschieden.
Beim Gehäuse darauf achten, dass man möglichst grosse Gehäuselüfter verbauen kann – je grösser desto leiser. Damit ist das Teil auch schon fertig (ja genau, DVD oder sowas hat er nicht, braucht er nicht). Ich habe ihn im Arbeitszimmer platziert. Wohn- und Arbeitszimmer haben eine gemeinsame Wand an welcher auch noch TV und Co. stehen – es reichte also, ein Loch in die Wand zu bohren und HDMI und Toslink direkt durchzuwerfen. Als kleinen Luxus habe dem Rechner noch eine USV spendiert, schliesslich wird er nie ganz ausgeschaltet.
Da der Server bestimmungsgemäß still und leise im Hintergrunde werkeln soll, hat er den imho treffenden Namen ghost bekommen.
Soweit so kurz zur Hardware. Die Software ist eh spannender. Ich bin halt Entwickler, habe noch einen kleinen Hang zur Administration, aber der Hardware gehe ich soweit als möglich aus dem Weg. Der echte Schrauber wird das sicher belächeln, aber ich war schon froh und stolz als der selbst zusammengeschraubte Rechner dann tatsächlich lief (und vor allem läuft er jetzt nach gut 2 Jahren immer noch!).
Ach einen habe ich noch: Hardware altert eh schnell. Was aber geblieben ist: der Knackpunkt für Linux ist immer noch S3, also suspend to ram. WOL funktioniert wohl zumeist. Und schon mal als Vorgriff auf das Backup: bei aktuellen Projekten würde ich immer auf USB3 achten.
Von den Anforderungen zur Idee
Nachdem ich also das kleine NAS (QNap TS209) mit einem Debian versehen hatte lief die Squeezebox erstmal. Probleme gab es erst, als die Frage nach Videostreaming aufkam. Eine meiner Anforderungen war nämlich die Festplattenverschlüsselung. Auf meinen Rechnern liegt mein halbes Leben, der Gedanke daran diese Daten anderen unfreiwillig zu überlassen behagt mir so gar nicht. Mit Verschlüsselung kam das NAS noch auf eine gigantische Leserate von 300KiB/sec. Für HD vielleicht etwas zu knapp.
Also machte ich mich auf die Suche nach einem System, was die 17 Watt des QNAP halten kann, aber deutlich mehr Performance bringt. Vergeblich. Schliesslich kam ich dann auf den entscheidenen Gedanken: ich brauche 2 Systeme, ein sparsames und ein leistungsfähiges. (Der eine oder andere wird es vielleicht wiedererkennen – im Tegra 3 hat Nvidia meine Idee schamlos kopiert). Das kleine System ist immer online, das grosse wird bei Bedarf dazugeschaltet.
Die Anforderungen waren also:
- Unter 17 Watt im Mittel
- Leistung genug für HD-Streaming
- Alle Daten verschlüsselt abgelegt
Und natürlich ein paar softe Anforderungen: möglichst viel Automatisieren, einfache Nutzung (manchmal gibt es hier technisch nicht ganz so versierte Mitbewohnerinnen), leise genug, bezahlbar soll es bleiben. Und wie üblich, kamen im Laufe des Projektes ohnehin noch weitere Anforderungen hinzu, die wichtigste war:
- Videorekorder
Hello world!
Anlass war die Idee mal zu erzählen, wie ich meine Server daheim so aufgestellt habe. Es gibt da ein paar Leute, die finden das recht interessant, also fange ich mal an zu schreiben…