zur Homepage
Computerwoche, 20/2005
Google setzt auf Billighardware
Von Jörg Auf dem Hövel
Die IT-Architektur der größten Suchmaschine
Zu jedem Internet-Startup-Unternehmen gehört eine Legende. Die von Google spielt
Mitte der 90er Jahre in den Lagerräumen der Stanford University rund 60 Kilometer
südlich von San Francisco. Hier tauchen die beiden befreundeten Studenten Larry
Page und Sergey Brin immer wieder auf, um zu kontrollieren, welches Universitätspersonal
neue Rechner erhält. Die veralteten PCs und Server der Mitarbeiter sammeln sie
und binden sie in ihr eigenes Netzwerk ein. In diesem wollen sie die Antwort auf
eine der großen Fragen des Computerzeitalters finden: Wie ziehe ich aus einer
riesigen Menge an Daten die für mich relevanten Informationen heraus?
Heute ist
die Antwort klar: mit Google. Die von Page und Brin entwickelte Suchmaschine ist
wegen ihrer Schnelligkeit, der aufgeräumten Benutzeroberfläche und der Qualität
der Suchergebnisse das weitaus beliebteste Tool zum Aufspüren von Informationen
im Internet - im Durchschnitt erhält Google mindestens 1000-mal in der Sekunde
eine Anfrage. Hinter der schlichten Oberfläche in über 88 Sprachen und mehr als
80 Domänen verbirgt sich eine Armada von Billigrechnern, die grundsätzlich noch
immer nach dem Prinzip der ersten Stunden von Google aufgebaut sind.
Geografische
Lastverteilung
Surft ein User zu www.google. com, sorgt zunächst ein DNS-basierender
Lastenverteiler unter www.google.akadns.net dafür, dass der Anwender zu Google-Rechnern
in seiner geografischen Nähe geleitet wird. Die Nutzung des DNS (Domain Name System)
als Lastverteiler baut auf dessen TTL-Wert ("Time to Live") auf. Das DNS legt
für jede Domain fest, wie lange sie im Cache eines Servers verleiben darf; im
Normalfall sind das mehrere Tage. Ist die TTL abgelaufen, muss der Name-Server
des Anwenders die IP-Adresse über das DNS anfordern. Google und sein Partner Akamai
haben aber die TTL auf Sekunden eingestellt, so dass die Name-Server die IP-Adresse
der Domain www.google.com nur kurz speichern dürfen, danach müssen sie eine neue
IP beim zuständigen Name-Server von Google (beziehungsweise Akamai) anfordern.
Auch ein einfaches Ping auf www.google.de zeigt ständig wechselnde IP-Adressen.
Die Suchanfragen werden also an wechselnde physikalische Rechenzentren gerichtet.
Dieses Vorgehen hat zwei Vorteile: Zum einen verringert sich die Reisezeit der
Datenpakte, was zu kürzeren Antwortzeiten führt, zum anderen laufen nicht alle
Suchanfragen in den USA auf. Das Unternehmen nennt seine globalen Rechnerstandorte
"Cluster", hält aber geheim, wo genau die Rechnerfarmen stehen. Während andere
IT-Giganten sich über ihre Infrastruktur in Schweigen hüllen, ist Google zwar
auskunftsfreudiger, steht aber zugleich in dem Verdacht, die Mitbewerber über
das wahre Ausmaß des ausgedehnten Rechnernetzes in die Irre zu führen. Zurzeit
wird die Anzahl der Rechenzentren auf mindestens 13 geschätzt, wovon eines in
Santa Clara, Kalifornien, und ein weiteres in Herndon, Virginia, steht. Europäische
Surfer werden von Zentren in Zürich und Dublin bedient. Ein Datenpaket einer Anfrage
an Google.de verlässt nie das "alte Europa". Über die Frage, wie viele Server
in den verschiedenen Rechenzentren stehen, wird seit Jahren spekuliert. Mal werden
60000, mal über 100 000 Server genannt. Nach eigener Auskunft indexiert Google
über acht Milliarden Web-Seiten mit einer Größe von durchschnittlich 10 Kilobyte.
Es müssen also 80 Terabyte Daten gespeichert werden.
Wichtiger als die genaue
Anzahl der Maschinen und der indexierten Web-Seiten ist der subtile Aufbau dieser
über viele Standorte verteilten Architektur. Die Beantwortung einer Suchanfrage
an diese Grid-Datenbank läuft in zwei Phasen ab. In der ersten Phase landet die
Anfrage bei Googles Index-Servern. Gibt der User beispielsweise computerwoche
bei Google ein, so schaut der Index-Server in seinem Register nach, welche von
ihm indexierten Seiten dieses Wort beinhalten. Bei einer Anfrage nach computerwoche
online verknüpft Google die beiden Begriffe per Boolschen "UND"-Operator. Sodann
wird nach Relevanz der Ergebnisse eine Rangfolge erstellt, die später darüber
entscheidet, an welcher Stelle die Seite in der Ergebnisliste erscheint. Schon
diese Erstellung der Liste läuft nicht nur auf einem einzelnen Rechner ab, sondern
verteilt sich über mehrere Maschinen.
Weniger als eine halbe Sekunde
In einem zweiten Schritt kommen die Document-Server zum Tragen. Diese
Rechner nehmen die in Schritt eins generierte Liste und extrahieren den
aktuellen Titel und die URL der gefundenen Web-Seiten. Sie greifen dazu
auf einen Schnappschuss des Webs zu, den die Suchroboter von Google
immer wieder aktualisieren. Dieser Google-Cache versucht möglichst
aktuell zu bleiben; die Robots durchkämmen das Internet immer wieder
neu. Parallel zu den beiden Phasen initiiert Google mindestens zwei
andere Prozesse. So wird die Sucheingabe zu einer
Rechtschreibkorrektur-Software und zu einem Werbeanzeigen-Server
weitergeleitet, der zu den Suchbegriffen passende Inserate generiert,
die später am rechten Rand der Ergebnisseite erscheinen.
Sind alle Phasen abgeschlossen, erstellt der Google-Web-Server"
(GWS) eine HTML-Seite und sendet diese an den User zurück. Der
Web-Server läuft, genau wie alle anderen Anwendungen, auf einer
abgespeckten Linux-Version von Red Hat und ist - trotz einer gewissen
Ähnlichkeit mit dem Open-Source-Marktführer "Apache" - eine
Eigenentwicklung aus dem Hause Google. Der gesamte Prozess läuft
blitzschnell ab, eine Google-Suchanfrage dauert üblicherweise weniger
als eine halbe Sekunde.
Moderne Google-Racks
An welcher Stelle in der Ergebnisliste eine Seite erscheint,
hängt vom Page-Rank-Algorithmus ab. In diesen geht maßgeblich ein, wie
oft und vor allem von welchen anderen Web-Seiten aus eine Web-Seite
verlinkt ist. Wenn Google etwas über die Qualität der Seite weiß, die
einen Link enthält, schließt es daraus auch auf die Qualität der
verlinkten Seite. Anzahl und Qualität der fremdgesetzten Links
bestimmen also den Rang bei Google.
Die damals an der Stanford University entworfene Strategie der
Billighardware bestimmt noch heute Googles IT-Architektur. Sie baut
weder auf Oracle-Datenbanken noch auf Sun-Servern auf, und auch die
Blade-Technik bleibt außen vor. Google betreibt sein Geschäft auf
preiswerten Servern, deren Platzbedarf ein oder zwei Höheneinheiten
nicht überschreiten. Die 19-Zoll-No-Name-"Pizzaschachteln" kauft das
Unternehmen oft von der Firma Rackable - und manchmal auch auf dem
Gebrauchtmarkt. In jedem dieser Server sitzen ein oder zwei normale
x86-PC-Prozessoren und eine oder mehrere IDE-Festplatten. "Im Schnitt
kostet ein Google-Server rund 1000 Dollar", sagt Urs Hoelzle,
Vizepräsident der technischen Abteilung bei Google.
Generationsübergreifend verrichten bei Google ältere
533-Megahertz-Intel-Celeron- genauso wie
2,4-Gigahertz-Pentium-Prozessoren ihren Dienst. Meist stehen zwischen
40 und 80 Server in einem Rack. Dort sind die Server über einen
100-Megabit-Ethernet-Switch verbunden, der ein oder zwei
2-Gigabit-Uplinks zu den anderen Servern hat. Ein Suchbefehl wird nicht
nur von einem Rechner bearbeitet, sondern auf diversen Maschinen
parallel abgearbeitet.
Der Absturz ist einkalkuliert
Die Performance des einzelnen Rechners ist damit weniger
relevant als die schnelle Verbindung unter den Maschinen. Langsamere
CPUs werden durch schnellere im Netzwerk ausgeglichen. Die hohe
Ausfallwahrscheinlichkeit der preiswerten Hardwarekomponenten
egalisiert Google durch eine konsequente Replikation aller Dienste.
Fallen Festplatten oder gar ganze Racks aus, so übernimmt ein
gespiegelter Server die Aufgaben.
Das intern programmierte "Google File System" (GFS) rechnet
stets mit einem solchen Absturz und ist so implementiert, dass es bei
Problemen sofort auf eine andere Ressource zugreift. Dazu speichert es
jedes Datenbit auf drei Rechnern, die immer in verschiedenen Racks
sitzen müssen.
Ein Server arbeitet bei Google maximal drei Jahre lang, danach
wandert er zum Elektro-Recyling. Ältere Rechner sind im Vergleich zu
der nachrückenden Generation zu langsam: Sie würden die verteilten
Rechenoperationen stark ausbremsen.
Teure Boards sind überflüssig
Auch in Zukunft will Google auf preisgünstige Hardware setzen.
Multiprozessoren-Motherboards würden zwar mit einer besseren Performanz
aufwarten, die Softwareparallelisierung läuft bei Google aber so zügig
und einwandfrei, dass sich der hohe Preis für solche Motherboards nicht
lohnen würde. Ein brandneuer Highend-Multiprozessor-Server würde
dreimal so viel wie ein vergleichbares zusammengestelltes Rack kosten.
Die wichtigste Suchmaschine der Welt wird also weiterhin mit
Billighardware arbeiten.