Tutorial: ESXi Server mit der HP Z400 Workstation

Heute gibt es mal einen Gastbeitrag von einem meiner Auszubildenden zum Thema VMware ESXi Server. Der ESXi ist die kostenlose Variante des ESX Servers, der für die Servervirtualisation eingesetzt wird. Dabei wird kein Betriebssystem als Unterbau benötigt, da der ESX direkt in eine kleine Linux-Umgebung integriert ist. Das bringt zum einen extreme zusätzliche Performance, zum anderen auch eine geringere Bug-Anfälligkeit des Host-Systems. Patrick hatte bei der Einrichtung einige Probleme, da die Treiber für die Netzwerkkarte seiner Workstation nicht richtig erkannt wurden. Doch lest selbst:

Ich habe mich in der letzten Woche, aufgrund meiner Ausbildungsstelle, mit dem ESXi Server auseinandergesetzt.
Ziel war es, den Server auf einer HP Z400 Workstation zum Laufen zu bringen. VMware stellt hierfür eine kostenlose
ISO-Datei auf ihrem Webserver bereit.

Mit dem gebrannten ISO-Image im CD-Laufwerk traten auch schon die ersten Probleme auf:
Zum einen wird der Netzwerkadapter (NIC) vom ESXi Server nicht unterstützt, zum anderen lädt der ESXi standartmäßig SCSI Festplatten-Treiber. Da in der HP Z400 in der derzeitigen Konfiguration nur SATA Platten verwendet werden (bisher nur eine, später wird ein RAID folgen), musste ich mich durch verschiedenste Foren und Lösungsvorschläge kämpfen.

Letztendlich konnten beide Probleme folgendermaßen gelöst werden:

Ich habe mir eine Ubuntu Live-CD erstellt und diese auf der Workstation starten lassen,
mir das ‘mkesxiaio’ Bash-Script runtergeladen und in den Ordner ‘/Downloads/tmp/’ kopiert. In den gleichen Ordner kamen jeweils noch die ISO-Datei des ESXi 4.1 Servers und eine, aus dem vm-help.com Forum,
modifizierte, oem.tgz.

Im Anschluss startete ich das Terminal und wechselte in den Ordner ‘/Downloads/tmp/’,
um das Script mit ‘sudo chmod +x mkesxiaio_3.x.x.sh’ ausführbar zu machen
und per ‘sudo ./mkesxiaio_3.x.x.sh’ auszuführen.

Das Script frägt dann auch gleich, welche ESXi Version man benutzt. In diesem Fall wählte ich die ‘3’ für die Version 4.1.

Nachdem überprüft wurde, ob die benötigte Linux Tools in der Distribution vorhanden sind, konnte ich auswählen,
in welcher Form (modifiziertes ISO-Image, Installation auf den USB laden, Server auf den USB installieren) das Image ausgegeben werden soll. Ich wählte “Server auf USB-Stick installieren”.

Als die Frage, ob die init.d editiert werden soll, erschien, wählte ich “ja” und fügte folgendes am Ende der Datei ein:
vmkload_mod tg3.o
vmkload_mod lvmdriver

Dadurch werden bei jedem Boot-Vorgang die fehlenden Netzwerktreiber nachgeladen.

Nachdem der Stick erstellt war, konnte ich von selbigem Booten und den ESXi einrichten.

Twitter in Zahlen

Letzte Woche bin ich auf eine sehr interessante Präsentation von Twitter gestoßen, die ein paar Zahlen aus deren Ökosystem preisgibt. Wenn man die sich so anschaut, kann man nur sagen: wow!

Vor allem die technischen Anforderungen übersteigen bei weitem das Vorstellungsvermögen selbst von IT Spezialisten – sofern man solch große Systeme noch nie gesehen hat. Doch, kommen wir zu den Fakten:

Twitter ist ein sog. Microblogging Dienst, der Kurznachrichten (Tweets) von bis zu 140 Zeichen zulässt. Hat man vorher per RSS bei Blogs mitgelesen, ist man bei Twitter ein Follower, genausogut kann man aber auch selbst Follower haben. Loggt man sich bei Twitter ein, so sieht man seine Timeline, also alle Tweets, die man selbst und die Leute, denen man folgt, abgesendet haben. Man könnte einen Tweet als eine Art SMS an alle meine Freunde sehen.

Klingt erstmal von den Daten her nicht viel und man könnte meinen, dass die anfallende Menge locker von ein paar Servern abgefangen werden kann. Bedenkt man aber, dass Twitter derzeit ca. 150 Millionen registrierte User hat, welche am Tag ca. 70 Millionen Tweets (ca. 800/Sekunde) hinterlassen, dann sieht die Welt schon etwas anders aus. Das tägliche Datenvolumen, welches alleine durch die Tweets erzeugt wird, umfasst derzeit um die 12 Gigabyte (800 Tweets / s = 160Kb/s = 9MB/h = 12GB / 24h). Täglich kommen ca. 8 Terrabyte an Daten zusammen. Zum Vergleich: Die Börse generiert am Tag ca. 1Terrabyte an Daten.

Für die Relationen zwischen den Usern (Following) kommt flockdb zum Einsatz, welches auf extrem schnelle CRUD (Create, Read, Update, Delete) Operationen getrimmt ist und vor allem sehr gut mit komplexen Datenstrukturen klar kommt – Stichwort: Joins. MySQL kommt zwar für einen Großteil der Daten zum Einsatz, kann aber sehr schlecht horizontal skalieren (Clustering) und auch nicht schnell genug neue IDs erzeugen. Die Twitter-Eigenentwicklung Gizzard stellt ein Framework für fehlertolerante und verteilte Datenbanken zur Verfügung, welches stark auf horizontale Skalierung ausgelegt ist. Gizzard ist im Prinzip ein Manager für DBMS (Database Management System), der es ermöglicht, mit sehr vielen Datastores zu arbeiten. Da dieses System selbst keine IDs erzeugen kann, hat Twitter zusätzlich Snowflake entwickelt, welches sehr viele unique IDs innerhalb kürzester Zeit erstellen kann. Die Problematik an der Stelle war, dass Tweets, die etwa zur selben Zeit erzeugt werden, auch eine ziemlich nah beieinander liegende ID erhalten sollten, da diese für die Sortierung bei Twitter und auch bei den meisten Clients verwendet wird. Um diesem Umstand gerecht zu werden, verwendet man für die IDs eine Kombination aus Timestamp, Worker-ID und Sequenz.

Doch die wenigsten nutzen ausschließlich die Twitter-Homepage. Den eigentlichen Erfolg konnte Twitter über seine sehr früh vorhandene offene API erreichen. Jedem ist es möglich, seinen eigenen Client oder sein eigenes Mashup zu generieren, wovon auch viele Leute Gebrauch machen. Und so kommt es nicht von ungefähr, dass Twitter am Tag ca. 6 Milliarden API-Aufrufe, also 70.000/s, erreichen. Interessant ist, dass Twitter im April “nur” 3 Milliarden tägliche API-Aufrufe verzeichnen konnte – Innerhalb von 5 Monaten hat sich diese also verdoppelt. Um diese Last tragen zu können hat HOSEbird, die Twitter Streaming API entwickelt, welche die komplexen Datenanfragen sowohl von den Clients als auch von Twitter selbst einfach und sehr performant abhandelt.

Wie auch Facebook kann Twitter die enormen Daten nur verarbeiten, weil es die nötigen Systeme einfach selbst schreibt. Der Benefit der Allgemeinheit dabei ist die Offenheit dieser Unternehmen, da sie fast alle dieser Entwicklungen per Open Source ins Netz stellen, damit diese auch von der Community weiter entwickelt werden können. Hier können die großen Player wie Microsoft, Apple, Oracle, SAP und co. noch viel lernen.

Aber, wohin entwickelt sich das Unternehmen Twitter bzw. was ist sein Ziel? Die derzeit 150 Millionen User sollen 6 Milliarden ansteigen, sodass jeder zweite Mensch Twitter verwendet. Sicher ein ehrgeiziges Ziel, aber bei dem derzeitigen Wachstum sollten sie zumindest nah an diesen Wert herankommen. Die Probleme, die auf dem Weg dahin liegen, sind Echtzeit, Datenbanken, Speicher, Skalierbarkeit und Effizienz. Ich wünsche ihnen dafür viel Glück 😉

via techcrunch.com

[Quicktip] Spotlight Suche reparieren

Habt ihr das Problem, dass einige Programme oder Daten nicht mehr in Spotlight gefunden werden? Mir ging es so nach dem letzten OSX Update. Programme wie Itunes wollten sich einfach nicht mehr finden lassen – manuell raussuchen und starten ging aber.

Die Lösung ist, dass man den Spotlight-Index neu erstellen lassen muss:

1. Spotlight Einstellungen aufrufen -> oben rechts auf die Lupe und dann “Spotlight Einstellungen” oder über die Systemeinstellungen und dann auf Spotlight klicken

2. Auf “Privatsphäre” klicken

3. nun könnt ihr entweder einzelne Ordner in die Liste ziehen, oder gleich die ganze Festplatte. Sobald ihr dies tut, wird der Index für diese Verzeichnisse gelöscht. Wenn ihr die ganze Platte reinzieht, dann wird der komplette Index entfernt.

4. die Ordner / Laufwerke wieder aus der Liste löschen

5. Fertig. Spotlight wird diese Ordner / Laufwerke nun neu indizieren. Man erkennt dies an dem Punkt, der innerhalb der Spotlight-Lupe aufblinkt. Sobald dieser Weg ist, ist die Indizierung durch und die Programme / Daten sollten wieder auffindbar sein.

Einzelne Ordner hineinziehen hatte bei mir nicht geholfen – Spotlight reagierte darauf gar nicht. Erst als ich die ganze Festplatte reingezogen hatte reagierte es und erstellte den kompletten Index neu. Bedenkt aber, dass die Indizierung der kompletten Festplatte mehrere Stunden in Anspurch nehmen kann….