Anzeige

Beschleunigen von Disk-Arrays – warum nicht?

Leserfrage: Eine Leser-Antwort auf die Diskussion, warum SSDs im Rechenzentrum verschmoren können, macht mich stutzig. I/Os können bei Anbietern von All-Flash-Arrays um den Faktor 100 reduziert werden? Okay, die Software kümmert sich darum, dass möglichst wenig Schreibvorgänge direkt auf den SSDs landen. Aber das müsste doch bei normalen Festplatten-Arrays auch gehen – oder nicht? Und bringt das keine Vorteile?

Anzeige

Antwort Doc Storage:

Zunächst einmal müssen wir hier ein paar Begrifflichkeiten festlegen. Ein Array ist ein Array ist ein Array – egal, ob in diesem SSDs, andere Arten von Flash-Medien oder drehende Festplatten verbaut sind. Die Funktionalitäten der Hardware unterscheiden sich nur marginal, wenn man einmal von der höheren Gesamtleistung der Festspeicher absieht. In einem solchen Array wirken Betriebssysteme, die sich heutzutage unter anderem um die Reduzierung des physikalisch belegten Speicherplatzes kümmern. Dies geschieht typischerweise über Deduplizierung, bei welcher identische Datenabschnitte gesucht und im Falle einer Redundanz durch Verweise auf das eine »Original« ersetzt werden. Die Überprüfung auf diese Redundanzen kann an drei Orten geschehen:

1. An der Quelle, also an dem Ort, von dem aus die Daten auf das Array gesendet werden. Dies entlastet das Speichersystem am meisten, ist aber wegen der komplizierten Architektur mit externen Software-Installationen relativ selten.

2. On-the-fly, also während des Transportes der Daten vom Rechner auf die Medien. Dies ist die effizienteste, schnellste und platzsparendste Methode, allerdings erfordert sie auch die meiste Rechenleistung im Array.

3. Nach dem Ablegen der vollständigen Daten auf den Medien. Diese Methode ist zum Rechner hin die schnellste, allerdings sehr ineffizient, da zunächst für jeden Datensatz der volle Speicherplatz zur Verfügung gestellt werden muss.

Methode 1 verursacht naturgemäß die wenigsten I/Os im Array, die Methoden 2 und 3 unterscheiden sich nur im Ort, an dem die I/Os anfallen. Bei Methode 2 ist dies ein Zwischenspeicher in der Logik des Plattensystems, bei Methode 3 größtenteils das Backend, also die Kanäle zu den Datenträgern selbst.

Gibt ein Hersteller an, er könne die I/Os in einem Array durch Deduplikation auch nur um einen einzigen reduzieren, so ist dies schlicht unmöglich. In den meisten Fällen betrachten die Firmen hier nur das Backend selbst, wo vor allem durch die Methoden 1 und 2 extrem viel weniger schreibende I/Os anfallen als bei Methode 3 und traditioneller Speicherung ohne Deduplizierung. Und jetzt kommen die Punkte zum Thema »allerdings«:

  • Es gibt kein kostenloses Mittagessen, wie man so schön in Amerika zu sagen pflegt. Weil die angeschlossenen Rechner in allen Fällen nichts von ihrem Glück wissen, ein dedupliziertes Dateisystem vor sich zu haben, verhalten sie sich wie sonst immer. Das heißt, sie lesen und schreiben Daten in derselben Weise und mit derselben Anzahl von I/Os wie auf einem ganz normalen Laufwerk. Da beispielsweise alle FC-Arrays SCSI-3 »sprechen«, kommen all diese I/Os am Speichersystem an und müssen von diesem beantwortet werden. Egal, ob die Daten nun dedupliziert sind oder nicht.
  • Im schlimmsten Falle verursacht die Deduplikation sogar Leistungsengpässe, weil die von verschiedenen Rechnern angeforderten redundanten Daten nicht mehr auf zwei verschiedenen Physiken, sondern auf nur einem Datenträger abgelegt sind und zu diesem im günstigsten Falle zwei unabhängige SAS-, SATA- oder FC-Kanäle führen. Hier schlägt also nicht nur die Überprüfung aller zu schreibenden Daten auf Redundanzen auf die Leistung, sondern auch das vielfache Auslesen derselben Blöcke durch unterschiedliche Systeme. Dieser Faktor kann zwar in vernünftig gecachten Systemen zum Teil aufgefangen werden, lässt sich aber niemals ganz ausmerzen, da auch die Ressourcen eines noch so schnellen Zwischenspeichers irgendwann erschöpft sind.
  • Im Leistungsentwurf für Speichersysteme zählt heute wie früher auch schon: viel hilft viel. Je mehr Medien über möglichst viele Kanäle an möglichst viele unabhängige Controller mit möglichst entkoppelten Cache-Bereichen angeschlossen sind, desto höher ist die erzielbare I/O-Leistung und Bandbreite. Durch Deduplikation reduziert man zwangsläufig vor allem die Anzahl an Medien und Kanälen, was wiederum zwangsläufig zur Leistungssenkung des Gesamtsystems führt.
  • Die Physik lässt sich nicht überlisten. Ein I/O ist ein I/O ist ein I/O. Egal wo ein solcher erzeugt wird, er zehrt an den Ressourcen an einer bestimmten Stelle im System. Natürlich lassen sich die Medien durch Deduplikation von solchen Operationen entlasten, allerdings belastet dies das System an anderer Stelle mehrfach, wie bereits beschrieben.

RAIDs ohne Ballast

Was ist also die Lösung? Es ist ganz einfach: Je schneller ein System sein soll, desto weniger unnötigen Ballast darf es mitschleppen. Ein Formel-1-Auto hat auch keine Klimaanlage, Fensterheber oder Sitzheizung. In ein Flash-System gehört kein herkömmlicher Bus wie SATA, SAS oder FC, diese sind eine Beleidigung für die Leistungsfähigkeit von Flash-Speichern und gehören schon heute zum alten Eisen. Viele Hersteller versuchen, dem Kunden unter dem Titel »All Flash Array« ganz gewöhnliche SAS- oder gar SATA-Arrays anzudrehen, in denen dann zufällig nur SSDs verbaut sind. Hier sind Lieferzeiten von 500 oder mehr Nanosekunden keine Seltenheit. Dass es auch anders geht, zeigen andere Hersteller, die proprietäre Flash-Speicher direkt über PCIe an das Speichersystem anbinden und damit heute schon Lieferzeiten von weniger als 100 Nanosekunden erreichen.

Regel für wirklich schnelle und wirtschaftliche Flash-Systeme

Also, hier die Daumenregel für wirklich schnelle und wirtschaftliche Flash-Systeme: keine unnötigen Funktionalitäten, keine Festplatten-Schnittstellen, kein Cache. Und noch etwas: die Frage ist nicht, was die Kapazität eines solchen Systems kostet. Sondern was der I/O im Backend kostet, wie viel schneller er abläuft und wie viel Geld man mit den Dingen verdienen kann, zu denen man durch langsame Verarbeitung vorher überhaupt nicht gekommen ist.

Bitte denken Sie heute nicht mehr über die Optimierung plattenorientierter gecachter Disk-Arrays nach. Das ist Vorkriegstechnik, das ist den Aufwand nicht mehr wert. Steigen Sie sofort in die richtige All-Flash-Welt ein, nicht etwa in die Halbwelt der mit SSDs aufgepimpten SAS- oder SATA-Systeme. Und hier müssen Sie dann auch nicht mehr über die Optimierung der Schreibvorgänge nachdenken – das erledigen clevere Systeme nämlich ganz nebenher mit.

Gruß
Doc Storage

Anzeige