Samstag, 10. November 2007

Vertikales UND horizontales Skalieren - ein Kompromiss

Autor: Jeremy Cole
Übersetzung: Sebastian Wallroth

Du wirst bemerkt haben, dass es derzeit eine (überwiegend kultivierte) Debatte über RAID und Skalierung gibt:
Ich möchte einige der - meiner Meinung nach - falschen Vorstellungen über "horizontales Skalieren" aufgreifen, die ich immer wieder gefunden habe und biete meine Erfahrungen und Meinungen an.

Es geht um Kompromisse.

Arbeitszeit ist teuer. Wenn man Operations, IT usw. mit Aufgaben betraut (wie die Wiederherstellung einer Maschine), wenn man ein Problem löst, dass man mit einem Plattentausch in 30 Sekunden erledigen könnte, dann nenne ich das ineffiziente Nutzung menschlicher Arbeitskraft. Nimm keine Abkürzung, wo es keinen Sinn ergibt. Das bezieht sich auf Brians Kommentare über die realen Kosten des defekten 200$-Teils.

Horizontales Skalieren bedeutet nicht, dass man Billighardware benutzt. Ich glaube die Leute treiben das horizontale Skalierungsmodell (über das sie oft nur in veralteten Konferenzpräsentationen lesen) zur sehr auf die Spitze. Sie glauben, horizontales Skalieren bedeute die Verwendung schlechter Hardware aus dem Desktopbereich und kaufen Tonnen davon. Das funktioniert nicht und es ist die Hölle, das auf lange Sicht zu verwalten.

Kompromiss. Einer der Hauptpunkte des horizontales Skalierungsmodells: dimensioniere die physikalische Hardware sinnvoll um den besten Kompromiss zwischen horizontalem und vertikalem Skalieren zu finden. Das ist der Hauptgrund, warum ich nicht glaube, dass RAID nicht von uns geht... Es ist oft einfach der beste und kostengünstigste Weg die Leistung und Verlässlichkeit zu erreichen, die man auf jeder physikalischen Maschine braucht, damit das Skalierungsmodell funktioniert.

Verwende normale Hardware. Oft hört man den Begriff "normale Hardware" im Zusammenhang mit horizontaler Skalierung. Während mistige Hardware durchaus auch normal ist, ist eigentlich gemeint, dass wenn man mit einer low-end $40k-Maschine feststeckt und mit dem Gedanken auf ein Upgrade auf eine $250k- und später vielleicht auf eine $1M-Maschine spielt, man Datenverteilung (data partitioning) und einige, nun ja, $5k-Maschinen verwendet. Es ist keine $1k-1-Festplatte-Mist-Maschine gemeint, wie ich bereits sagte. Was ist nun mit einer "normalen" Maschinen gemeint? Nun, eine Maschine mit standardisierten, üblichen Komponenten, bei der der Preis vom Markt und nicht von einer einzelnen Maschine festgelegt wird. Man verwende normale Hardware mit einem ausgewogenen Preis-Leistungsverhältnis.

Verwende Datenverteilung (Sharding). Ich habe hierüber in meinen vorhergehenden Beiträgen nicht viel geschrieben, weil es eine Art Selbstverständlichkeit ist. Mein Teilnahme am HiveDB-Projekt und meine kürzlichen Vorträge über "Skalierfähige und hochverfügbare Architekturen" auf der MySQL-Konferenz und -Expo sollten genug über meinen Standpunkt zu diesem Thema sagen. Trotzdem will ich ein paar Punkte aus meinen Vorträgen wiederholen: Datenverteilung ist das einzig Wahre, Cache alles und verwende MySQL-Replikation für Hochverfügbarkeit und Redundanz.

Trotzdem. RAID ist preiswert. Ich habe das bereits ein paar Mal gesagt, nur um sicherzustellen, dass man mich richtig versteht: RAID ist ein preiswerter und effizienter Weg um sowohl Leistung als auch Verlässlichkeit von normaler Hardware sicherzustellen. Für die meisten Systeme ist es wegen der IT- und Operationszeit viel teurer Verlässlichkeit auf nicht-RAID-Systemen zu erreichen als auf RAID-Systemen. Ja, andere Komponenten werden kaputtgehen, aber in einem ausreichend großem datenzentrierten System mit guter Serverhardware werden Festplatten zehnmal öfter kaputtgehen als irgendetwas anderes.

Das ist alles. Weitermachen.

Keine Kommentare: