Während die ganz grossen Hersteller mit flashbasierten Caches und Automated-Tiering um sich werfen, vergessen einige sich dabei die essentielle Frage zu stellen: «Was macht technisch und wirtschaftlich gesehen Sinn und was nicht?» Dieser Frage gehen wir in diesem Artikel, im speziellen aus der Sicht eines Write-Caches, auf den Grund.
Potential von Flash
Ich denke wir stimmen alle mit der Aussage überein, dass die flashbasierte SSD Technologie ein enormes Potential hat. In der Frage, wie man diese SSD Technologie effizient und wirtschaftlich einsetzt, scheinen sich die Hersteller jedoch nicht ganz einig zu sein. Während die einen die Technologie in ein AST (Automated Storage Tiering) Konzept einbauen, setzt z.B. NetApp auf VST (Virtual Storage Tiering) und andere auf All-Flash Architekturen.
Automated Storage Tiering (AST)
Automated Storage Tiering verschiebt wie bereits im Namen ersichtlich, automatisch Daten zwischen unterschiedlichen Storage Tiers anhand definierter Regeln, wie z.B. Last Access Time. Das Problem bei AST liegt in der Granularität der verschiebbaren Daten. Um eine Granularität auf Blockebene zu ermöglichen, sind sehr grosse und komplexe Zuweisungs- tabellen nötig. Diese Tabellen können ein System oder Kontroller sehr schnell in die Knie zwingen. Bei den heutigen zu verwaltenden Datenmengen, ein vermutlich unmögliches Unterfangen. Aus diesem Grund verwenden die Hersteller bei der AST Technologie eine Segmentierung der Daten. Dabei werden mehrere Blöcke zu einem Segment zusammengefasst, meist mehrere hundert Kilobytes oder gar Megabytes. Der Vorteil liegt auf der Hand, durch die Segmentierung der Daten müssen weniger Metadaten verwaltet werden. Werden jedoch nur wenige Blöcke in einem Segment sehr oft genutzt, wird das ganze Segment auf dem leistungsfähigen Tier, z.B. SSD vorgehalten. Durch die Metadaten wird unter anderem Komplexität hinzugefügt, sowie die einzelnen Tiers zusätzlich mit Backgroundoperationen belastet. Defekte Metadaten oder Tabellen könnten ein System sogar total unbrauchbar machen, egal auf welchem Speicher-Level (Tier).
Virtual Storage Tiering (VST)
Virtual Storage Tiering ist im Prinzip nichts anderes als ein Caching auf mehreren Ebenen. Jeder leistungsfähige Kontroller verwendet heute bereits einen L1 Cache, was dem Arbeitsspeicher (RAM) des Kontrollers entspricht. Darin werden Operationen und Informationen zwischengelagert. Das Caching von Daten baut auf der Blockebene auf und ist somit äusserst effizient. Die Grösse eines L1 Caches ist jedoch meist auf wenige bis einige hundert Gigabytes beschränkt. Dank der Flash Technologie, kann nun zusätzlich ein sehr grosser und verglichen zur traditionellen Harddisk sehr leistungsfähiger L2 Cache hinzugefügt werden. Enterprise Speicherkontroller können heute bereits mehrere Terabytes L2 Cache verwalten. Der klare Vorteil beim Caching ist, dass keine Daten verschoben werden, sowie die sehr feine Granularität.
All-Flash Architekturen
Bereits heute gibt es Hersteller die nicht mehr auf Tiering setzten, sondern das ganze Speichersystem mit 100% Flash bestücken. Die komplexität ist dabei sicherlich am geringsten, doch ist diese Lösung meist auch die kostspieligste, es sei denn, das System verwendet intelligente und platzsparende Funktionen wie Deduplication, Compression, Thin-Provisioning und Cloning.
Wieviele Tiers brauche ich?
Der Speichermarkt ist heute in einem äusserst starken Umbruch, wie er seit der Erfindung der Harddisk nicht war. Die Flashtechnologie wird vermutlich mittelfristig bis langfristig die traditionelle Disk ablösen. Während heute Flash kurze Latenzzeiten bei noch niedriger Datenmenge bietet, ermöglicht die Disktechnologie das Abspeichern von mehreren Terabytes auf einer einzelnen Harddisk. Diese Situation schreit förmlich nach einer Kombination der beiden Technologien, und genau hier gehen die Hersteller zur Zeit getrennte Wege. Eine weitere Leistungsunterscheidung, auf der Ebene der traditionellen Harddisk, ergibt heute, bei den vergleichsweise minimalen Leistungsunterschieden, kaum noch Sinn.
AST oder VST?
Wegen der Komplexität des noch jungen AST, sowie dem ständigen Verschieben der Daten von einem Tier zum anderen, was zusätzliche Risiken birgt, ist aus unserer Sicht ein Virtual Storage Tiering, sprich Caching, vorzuziehen. Bei lediglich zwei Speicherebenen (Flash und Harddisk) ist ein komplexes und riskantes Tiering nicht angebracht. Das VST, sprich Caching, bietet hier wesentliche Vorteile.
Flashbasierter Write Cache, Ja oder Nein?
Diese Frage ist stark von der Architektur eines Speichersystems abhängig. Wie bei der Autoindustrie, gibt es mehrere Wege um ein System leistungsfähiger zu machen. Als Cache ist das RAM auch heute noch das leistungsfähigste Medium. Nun könnte man auch für Schreiboperationen zusätzlich einen L2 Cache integrieren, dies käme jedoch der simplen Leistungssteigerung von einem Automotor (Turbolader) ähnlich. Die Alternative um die Leistungsfähigkeit eines Fahrzeuges zu optimieren, wäre z.B. Gewicht einzusparen. Ähnliche Ansätze werden bereits heute von den Speicherherstellern gemacht. Die Hauptfrage die sich bei Schreiboperationen stellt ist: „Wie bringe ich die zu schreibenden Daten schnellstmöglich auf das finale Medium?“ In fast allen Fällen ist das finale Medium die traditionelle Harddisk. Diese Frage ist stark von der Architektur eines Speichersystemes abhängig. Dabei kommt es stark auf die Arbeitsweise des Kontrollers an. Zum Beispiel baut NetApp viel Intelligenz in den Speicherkontroller, welche ein optimiertes Speichern der Daten ermöglicht.
So werden von den Servern meist Daten random an den zentralen Kontroller gesendet, dieser wandelt diese jedoch dank des NVRAM Caches in sequentielle Schreiboperationen um. Sequentielle Schreiboperationen sind optimal für traditionelle Harddisks. Ein zusätzliches Zwischenlagern auf teurem Flash Cache wäre eine Ressourcen-Verschwendung. Warum? Ganz einfach, der Flash Cache ist auf geringe Latenz bei kleinen Datenblöcken optimiert. Je grösser die Datenblöcke sind, desto kleiner wird der Durchsatz. Bei traditionellen Harddisks trifft genau das Gegenteil zu. Je grösser die Blöcke, desto besser der Durchsatz. Eine SSD erreicht heute maximale Schreibwerte von ca. 100-200MB/s und ca. 18 – 50k Operationen. Eine traditionelle Harddisk erreicht ca. 70MB/s und 250 Operationen. Der Preisunterschied der beiden Technologien entspricht ca. einem Faktor 10, ohne dabei die massiv höhere Datendichte der Harddisk zu berücksichtigen.
Die einfache Faustregel für die beiden Technologien ist:
Optimaler Einsatz von Flash
Unter Berücksichtigung der Faustregel, sollten demnach beide Technologien Ihren Stärken entsprechend eingesetzt werden. NetApp hat die Stärken der beiden Technologien optimal in die FAS Speicherprodukte integriert und bietet zusätzlich auch noch eine optimale Integration in der Applikationswelt. Auch Nimble Storage setzt auf ein ähnliches hybrides Speicherkonzept. Profitieren Sie von der langjährigen Erfahrung von BSR & Partner AG. Gerne beraten und unterstützen wir Sie bei Ihren Speicheranforderungen.