Ein großes RAID 10 – Ein neuer Standard für Server-Speicher
Ende der 1990er Jahre lautete die übliche Faustregel beim Aufbau eines neuen Servers, das Betriebssystem auf einem eigenen, kleinen RAID-1-Verbund unterzubringen und Anwendungen sowie Daten auf einen separaten RAID-5-Verbund auszulagern. Dies geschah aus mehreren Gründen, von denen sich viele im Laufe der Zeit verflüchtigt und im Sande verlaufen sind. Die wesentlichen Triebkräfte waren, dass Speicherkapazität extrem teuer war, dass Festplatten klein waren, dass Dateisysteme regelmäßig beschädigt wurden und dass physische Festplatten im Vergleich zu anderen Ausfallarten mit einer sehr hohen Rate ausfielen. Die Menschen waren von dem Bedürfnis getrieben, sich gegen physische Festplattenausfälle zu schützen, sich gegen die Beschädigung von Dateisystemen abzusichern und genügend Kapazität zu beschaffen, um ihren Bedarf zu decken.
Heute hat sich die Speicherlandschaft verändert. Dateisysteme sind unglaublich robust, und eine Beschädigung durch das Dateisystem selbst ist nahezu unbekannt und kann dank Technologien wie Journaling fast immer schnell und wirksam behoben werden, wodurch die Endnutzer vor Datenverlust geschützt werden. Heute macht sich praktisch niemand mehr Sorgen über die Beschädigung von Dateisystemen.
Moderne Dateisysteme sind zudem in der Lage, weitaus mehr Kapazität zu bewältigen als früher. Ende der 1990er und Anfang der 2000er Jahre war es nicht ungewöhnlich, problemlos einen Festplattenverbund anlegen zu können, der größer war, als jedes einzelne Dateisystem verarbeiten konnte. Heute ist dies vernünftigerweise nicht mehr der Fall, da alle gängigen Dateisysteme zumindest viele Terabyte und oftmals Petabyte, Exabyte oder mehr an Daten verarbeiten.
Festplatten sind weitaus zuverlässiger als noch Ende der 1990er Jahre. Die Ausfallraten für den Ausfall einer kompletten Festplatte sind sehr niedrig, selbst bei kostengünstigeren Laufwerken. Tatsächlich so niedrig, dass es bei Verbundausfällen (Datenverlust im gesamten RAID-Verbund) in erster Linie um den Ausfall des Verbunds selbst geht und nicht um den Ausfall von Festplatten. Wir tauschen Festplatten nicht mehr nach Belieben aus. Es ist keine Seltenheit, dass große Verbünde ihre gesamte Lebensdauer durchlaufen, ohne auch nur eine einzige Festplatte zu verlieren.
Die Kapazitäten sind dramatisch gewachsen. Statt Festplatten mit 4,3 GB installieren wir heute Laufwerke mit 3 TB. Nahezu tausendmal mehr Kapazität auf einer einzelnen Spindel im Vergleich zu vor weniger als fünfzehn Jahren.
Diese Faktoren führen zusammengenommen zu einem Bedarf an einem grundlegend anderen Ansatz beim Entwurf von Server-Speicher und zu einer Änderung der „Faustregel“ darüber, wo man beim Entwurf von Speicher ansetzen sollte.
Der alte Ansatz lässt sich als RAID 1 + RAID 5 beschreiben. Der RAID-1-Speicherplatz wurde für das Betriebssystem verwendet, während der – vermutlich deutlich größere – RAID-5-Speicherplatz für Daten und Anwendungen genutzt wurde. Dieser Entwurf trennte die beiden Speicheranliegen und legte größten Wert darauf, das Betriebssystem (das im Katastrophenfall sehr schwer wiederherzustellen war und von dessen Verfügbarkeit die Daten abhingen) auf hochzuverlässigem RAID 1 zu schützen. Das kostengünstigere RAID 5 wurde, obgleich etwas riskanter, in der Regel für Daten gewählt, weil die Kosten für die Speicherung von Daten auf RAID 1 in den meisten Fällen zu hoch waren. Es war ein Kompromiss, der damals sinnvoll war.
Heute, angesichts unserer ganz anderen Anliegen, ist ein neuer Ansatz erforderlich, und dieser neue Ansatz ist als „Ein großes RAID 10“ bekannt – das heißt ein einzelner, großer RAID-10-Verbund, in dem Betriebssystem, Anwendungen und Daten gemeinsam gespeichert werden. Natürlich sagen wir das nur der Einfachheit halber; in einem System ohne Leistungs- oder Kapazitätsanforderungen, die über eine einzelne Festplatte hinausgehen, würden wir „Ein großes RAID 1“ sagen, aber viele Menschen zählen RAID 1 zur RAID-10-Gruppe, sodass es einfach leichter ist, Ersteres zu sagen.
Um es noch praktischer zu machen, kürzen wir dies als OBR10 ab.
Weil die Speicherkosten erheblich gesunken sind und Speicher heute statt knapp typischerweise im Überfluss vorhanden ist, weil Dateisysteme unglaublich zuverlässig sind, weil RAID 1 und RAID 10 dieselben Leistungsmerkmale aufweisen und weil nicht durch Festplattenausfälle ausgelöste Verbundausfälle vom Hintergrundrauschen zur Hauptursache von Datenverlust geworden sind, ist der Wechsel zu RAID 10 und der Verzicht auf die Aufteilung von Verbünden zum neuen Standardansatz geworden.
Mit RAID 10 verfügen wir nun für all unsere Daten über den hochverfügbaren und widerstandsfähigen Speicher, der zuvor nur dem Betriebssystem vorbehalten war. Wir profitieren von der Leistung gespiegelter RAID-Verbünde und zusätzlich vom Nutzen weiterer Spindeln für all unsere Daten. Wir erhalten eine bessere Ausnutzung der Festplattenkapazität sowie eine Leistung, die auf dieser verbesserten Ausnutzung beruht.
Selbst die traditionelle Auslagerung von Protokolldateien, die üblicherweise bei Datenbanken vorgenommen wird (der berüchtigte Ansatz RAID 1 + RAID 5 + RAID 1), ist nicht mehr erforderlich, weil RAID 10 die optimalen Leistungsmerkmale über alle Daten hinweg beibehält. Mit RAID 10 beseitigen wir nahezu alle Faktoren, die uns einst dazu veranlassten, Verbünde aufzuteilen.
Der einzige bedeutende, noch nicht erwähnte Faktor, für den die Aufteilung von Verbünden traditionell als vorteilhaft galt, ist der Zugriffskonflikt – die Notwendigkeit, dass verschiedene Prozesse gleichzeitig auf unterschiedliche Bereiche der Festplatte zugreifen müssen, was den Schreib-/Lesekopf in einem weniger als idealen Muster hin- und herbewegt und so die Laufwerksleistung mindert. Konflikte waren Ende der 1990er Jahre, als die alte Faustregel entwickelt wurde, ein großes Thema.
Heute existieren Laufwerkskonflikte zwar nach wie vor, sie wurden jedoch durch den Einsatz großer RAID-Caches stark abgemildert. In den späten 90er Jahren waren Laufwerks-Caches bestenfalls einige Megabyte groß und oft gar nicht vorhanden. Heute sind 256 MB ein winziger Cache, und durchschnittliche Server werden mit 1–2 GB Cache allein auf der RAID-Karte ausgeliefert. Einige Systeme beginnen, zusätzliche Caches auf Basis von Solid-State-Laufwerken zu integrieren, um über den Speicher-Cache des Controllers hinaus einen sekundären Cache hinzuzufügen. Diese können problemlos Hunderte von Gigabyte an extrem schnellem Cache hinzufügen, der nahezu jede Spindeloperation abpuffern kann, sodass keine Konflikte mehr befürchtet werden müssen. Das Problem der Konflikte wurde im Laufe der Jahre also auf andere Weise gelöst, hat uns aber, wie auch andere technologische Veränderungen, faktisch von den traditionellen Anliegen befreit, die uns zur Aufteilung von Verbünden zwangen.
Ähnlich wie bei Verbundkonflikten bestand ein weiterer, weitaus seltenerer Grund für die Aufteilung von Verbünden Ende der 1990er Jahre darin, die Leistung des Kommunikationsbusses zu verbessern, was auf die Beschränkungen der damaligen SCSI- und ATA-Technologien zurückzuführen war. Auch diese wurden mit dem Umstieg auf serielle Kommunikationsmechanismen, SAS und SATA, in modernen Verbünden beseitigt. Wir sind nicht mehr auf die Kapazität eines einzelnen Busses pro Verbund beschränkt und können mit weitaus mehr Flexibilität als früher deutlich größer wachsen. Buskonflikte wurden so gut wie vollständig beseitigt.
Falls die Notwendigkeit besteht, zum Schutz Speicherplatz abzutrennen, etwa für das Wachstum von Protokolldateien, lässt sich dies durch Partitionierung statt durch physische Aufteilung des Verbunds erreichen. Im Allgemeinen sollte man die Partitionierung möglichst gering halten, da sie den Verwaltungsaufwand erhöht und die Fähigkeit der Laufwerke zur Selbstoptimierung verringert, doch es gibt Fälle, in denen sie der bessere Ansatz ist. Sie erfordert jedoch nicht, dass der zugrunde liegende physische Speicher wie traditionell üblich aufgeteilt wird. Noch besser als die Partitionierung ist, sofern verfügbar, die logische Datenträgerverwaltung, die partitionsähnliche Trennungen ohne die Beschränkungen von Partitionen ermöglicht.
Letztlich lautet die neue Faustregel für Server-Speicher also „Ein großes RAID 10“. Kein RAID 5 mehr, keine Aufteilung von Verbünden mehr. Es geht um Zuverlässigkeit, Leistung, einfache Verwaltung und ein angemessenes Kosten-Nutzen-Verhältnis. Wie alle Faustregeln gilt auch diese nicht für jeden Einzelfall, doch sie gilt weitaus breiter, als es der alte Standard je tat. RAID 1 + RAID 5 war als Standard stets der Versuch, sich mit etwas Unerwünschtem zu „behelfen“ und aus einer schlechten Situation das Beste zu machen. OBR10 ist nicht von dieser Art. Der neue Standard ist ein erwünschter Standard – er entspricht der Art und Weise, wie wir tatsächlich arbeiten wollen, und nicht etwas, mit dem wir „festsitzen“.
Beginnen Sie beim Entwurf von Speicher für einen neuen Server mit OBR10 und weichen Sie nur dann davon ab, wenn es Ihren technischen Anforderungen ausdrücklich nicht gerecht wird. Sie sollten niemals rechtfertigen müssen, OBR10 zu verwenden, sondern nur, es nicht zu verwenden.
