Essential Guide

Flash Storage beschleunigt das Rechenzentrum

Eine umfassende Auswahl von Artikeln, Videos und mehr, die von unseren Redakteuren gewählt wurden.

5 Dinge, die man über Flash und Storage Tiering wissen sollte

Um Kapazität, Performance und Kosten sinnvoll einzusetzen, eignet sich besonders Storage Tiering, bei dem die Daten je nach Bedeutung auf verschiedene Speicherebenen (Tiers) verschoben werden.

Eine erfolgreiche Speicherlösung zu installieren stellt immer eine Gratwanderung zwischen Kapazität, Performance und Kosten dar. Unterstellt man unbegrenzte Ressourcen, würden alle Daten auf dem schnellstmöglichen Medium abgelegt, was heute identisch wäre mit NVDIMM oder NAND-Flash.

Aber diesen Luxus wird es nur für jene Unternehmen geben, die über besonders viel Geld verfügen. Stattdessen müssen die Unternehmen im Normalfall ein Gleichgewicht zwischen ihren Kapazitäts- und Performance-Anforderungen finden, indem sie Methoden wie Storage Tiering einsetzen.

Tiering sorgt dafür, dass sich die Daten möglichst auf den jeweils besonders geeigneten Storage-Typen befinden, basierend auf den Performance-Anforderungen einschließlich Latenzzeiten und Durchsatz. Zum Beispiel wird man nicht so häufig benutzte Daten auf SATA-Platten mit großen Kapazitäten ablegen, während eine schnelle transaktionale Datenbank am besten auf NAND-Flash Platz findet.

Tiering versus Caching – es handelt sich nicht um die gleichen Dinge

Bevor wir näher auf Tiering eingehen, müssen wir den Unterschied zwischen Caching und Tiering erklären. Diese Unterscheidung ist von Bedeutung, wenn es um die Unterstützung von Installationen geht.

Bei Tiering geht es um das Verschieben einer persistenten Datenkopie zwischen verschiedenen Speichertypen, während bei Caching eine vorübergehende Datenkopie auf einem besser geeigneten Speichermedium platziert wird. Beide Vorgänge verbessern die Performance, aber Caching führt nicht zu einer Kapazitätssteigerung im Array. Der Cache bedeutet zusätzliche Kosten.

Die Tiering-Prozesse sind über eine Reihe von Jahren weiterentwickelt und reifer geworden. Die ersten Installationen basierten darauf, eine ganze LUN oder ein ganzes Volume auf einem anderen Tier zu platzieren. Sie wurden in der Regel in Systemen mit verschiedenen Plattentypen verwandt, weniger auf Flash-Ebene.

Dieser mehr statische Ansatz ermöglichte einige Kostenreduzierungen, führte aber zu Problemen bei der Weiterleitung der Daten, wenn sich Bearbeitungs- und Zugriffszeiten stark änderten. Das ganze Volume musste zu einem anderen Storage-Tier verschoben werden, was freien Speicherplatz erforderte, um überhaupt diese massive Verschiebung durchzuführen.

Daten in einem Array hin und her zu bewegen ist teuer. Es nimmt I/O-Aktivität in Anspruch, die für Host-Anfragen gebraucht werden könnte. Außerdem könnten Datenzugriffe unterbunden werden, während die Datenbewegungen stattfinden.

Die nächste Phase von Tiering war durch einen mehr granularen Ansatz unterhalb der Volume-Ebene bestimmt. Bei dieser Methode wird jedes Volume oder jede LUN in kleinere Einheiten zerlegt (von den Lieferanten unterschiedlich als Blocks oder Pages bezeichnet) und mehreren Storage-Tiers einschließlich Flash zugeordnet.

Der Block-Level-Ansatz liefert wesentlich größere Flexibilität, um jenen Daten teureren Speicher zuzuweisen, die ihn wirklich gebrauchen können. Nur die aktivsten Teile einer Datenbank müssen im Unterschied zu vorher auf die Flash-Ebene verlegt werden, als sie wie vorher komplett mitsamt ihrer LUN dorthin zu verschieben.

Automatisches Storage-Tiering geht noch einen Schritt weiter beim Datenplatzieren und trifft die Entscheidungen darüber, welche Datenblöcke auf den verschiedenen Tier-Stufen abgelegt werden. Der Automatisierungsprozess ist eine natürliche Weiterentwicklung für große Speicher-Arrays, weil der Arbeitsaufwand, alle aktiven Daten in einem System laufend zu beobachten, für einen System-Administrator einfach zu groß ist.

Flash Storage und Tiering – eine perfekte Verbindung

Flash-Storage ist besonders gut geeignet, um in Tiering-Lösungen eingesetzt zu werden, weil die I/O-Aktivität typischerweise so über ein Volume an Daten verteilt ist. Im Allgemeinen ist ein kleiner Teil der Daten für die stärkere I/O-Auslastung einer Anwendung verantwortlich – was sich auf der Volume-Ebene widerspiegelt.

Dieser Effekt, bekannt als Pareto-Prinzip – oder mehr umgangssprachlich als 80:20-Regel –, erlaubt es, wenige teure Ressourcen (Flash zum Beispiel) für Daten zur Verfügung zu stellen, die den größten Anteil der I/O-Workloads beanspruchen. Natürlich sind die genauen Verhältnisse von Flash und traditionellem Storage durch die Gegebenheiten der Anwendungsdaten bestimmt.

Es gibt keinen Grund anzunehmen, dass Tiering nur auf Flash- und Festplattengeräte begrenzt ist. Der Markt für NAND-Flash-Geräte hat begonnen, sich in ein breites Angebot von Produkten aufzuspalten, die jeweils mehr für längere Lebensdauer, Kapazität, Performance oder für Kostenanforderungen geeignet sind.

Es wird nicht mehr lange dauern bis Array-Lieferanten Lösungen anbieten, die verschiedene Flash-Tiers in der gleichen Appliance haben. Zum Beispiel könnten schreibintensive Daten auf langlebigem Flash untergebracht werden, während der Rest der Daten auf billigem 3D-NAND oder TLC-Flash bleibt, wie es Dell beispielsweise bereits offeriert.

Tiering-Installationen der Lieferanten variieren

Wenn man mehr auf die Details der lieferantenspezifischen Tiering-Installationen achtet, sind zwei Aspekte zu betrachten: Wie Tiering an die Anwendungen angepasst wird, und wie die Anbieter Tiering auf einem technischen Niveau einsetzen.

Alle Lieferanten sind bestrebt, mithilfe von Policies Tiering mit den Applikations-Workloads zu verbinden. Ziel dieser Policy-Definitionen ist es, so weit als möglich die Workload-Anforderungen von der darunter liegenden Hardware zu abstrahieren.

Dieser Abstraktionsprozess ist wichtig, weil er es erlaubt, einem Array zusätzliche Ressourcen hinzuzufügen, wenn die Policies nicht eingehalten werden – und das, ohne alle im System existierenden Daten neu konfigurieren zu müssen.

Einige frühe Lösungen für Auto-Tiering wie FAST VP für EMC VMAX und VNX besitzen immer noch einen hardwarezentrierten Ansatz für Policy-Management. Die Daten werden in Pools platziert, die aus einer Kombination von Flash und traditionellem Platten-Storage bestehen und denen Policies wie „am höchsten verfügbar“ und „am niedrigsten verfügbar“ zugeschrieben sind.

Im Resultat ergibt sich ein Tiering, basierend auf einem Mechanismus, bei dem ein Workload gegen einen anderen je nach der zugewiesenen Priorität konkurriert. Die Daten werden zwischen den Tiers aufgrund von fest eingestellten oder manuellen Prozessen bewegt, wobei Empfehlungen auf Basis historischer Trends benutzt werden.

Wie bereits gesagt, ist das Verschieben von Daten zwischen Tiers teuer und sollte auf ein Minimum begrenzt bleiben. Statische Tiering-Lösungen mittels Daten-Pooling sind angesichts heutiger mehr virtualisierter Workloads mit ihren täglichen oder stündlichen Änderungen der I/O-Daten nicht so flexibel, wie es eigentlich erforderlich wäre. Daten auf einer wöchentlichen oder monatlichen Basis zu bewegen bedeutet, dass diese Lösungen ständig dem aktuellen Stand hinterherlaufen. Es ist wesentlich besser, entweder die anwachsende I/O-Aktivität gleich bei ihrem Beginn zu erfassen oder Daten auszuwählen und sie öfter zu verschieben.

Die Speicherarchitektur von Compellent (Dell) sorgt dafür, dass alle Write-I/Os bei SSD Flash auf Tier 1 landen, wobei ein Feature mit Namen „Automated Tier Storage“ benutzt wird. Wenn diese Page aktiv bleibt, kann sie auf den schnellen Medien von Tier 1 verbleiben. Wird die Page inaktiv, wird sie auf einen niedrigeren Storage-Tier verlagert – in der Regel innerhalb von 24 Stunden.

Tintri verwendet eine ähnliche Methodologie in seinen hybriden Flash-Arrays, Flash First genannt. Hier werden die Daten immer auf Flash geschrieben und nur dann auf Festplatte verlagert, wenn sie „cold“ oder inaktiv werden.

DotHill (vor kurzem von Seagate erworben) hat in seinen Tiering-Installationen einen mehr proaktiven Ansatz benutzt, bekannt als RealTier. Die Algorithmen von RealTier verwenden drei Prozesse, um die Datenverteilung über die Tiers hinweg zu bestimmen: Scoring, um die I/Os zu verfolgen oder jeden Block und jede Page an Daten zu verfolgen; Scanning, um mögliche Page-Kandidaten für ein Verschieben zwischen den Tiers zu identifizieren; und Sorting, den Prozess des aktuellen Verschiebens von Pages.

Scanning und Sorting findet alle fünf Sekunden statt, wobei nur eine geringe Anzahl an Daten in jedem Zyklus verschoben wird.

Probleme beim Storage Tiering

Wenn man dem Storage Array erlaubt, alle Entscheidungen über das Verschieben von Daten zu treffen, ist das von einem allgemeinen Standpunkt aus sinnvoll, aber es gibt auch Zeitpunkte, an denen dieser Ansatz seine Probleme haben kann.

Es kann zum Beispiel vernünftige Gründe dafür geben, einige Anwendungsdaten ständig an den einen oder anderen Tier zu binden. Zum Beispiel wenn eine geschäftskritische Anwendung in der Lage sein soll, immer Antwortzeiten zu garantieren, oder wenn eine Archivanwendung niemals auf Flash-Storage schreiben muss. Außerdem müssen innerhalb von bestimmten Policy-Regeln Ausnahmen festgelegt werden. Dies macht mehr Sinn, als nur allgemein davon auszugehen, dass Angaben wie „aktiv/inaktiv“ oder „hot/cold“ den jeweiligen Speicherort diktieren sollten.

Es gibt auch andere kritische Punkte beim Umgang mit automatischem Tiering, die sorgfältig betrachtet werden müssen. Einige Workloads hängen zum Beispiel von der jeweiligen Zeit ab – also von dem bestimmten Zeitpunkt an einem Tag, in einer Woche oder in einem Monat –,zu dem sie aktiv werden. Ein nur langsam reagierender Tiering-Algorithmus könnte Probleme für diese Anwendungen aufwerfen, wenn die Daten nicht schnell genug zu dem geeigneten performanten Tier bewegt werden.

Ferner besteht die Problematik, zwischen den verschiedenen Anwendungen einen Ausgleich zu finden. Mit Tiering kommt es zu einem Wettstreit zwischen den Anwendungen, wer zu den schnelleren Speicher-Tiers Zugang findet. Ohne geeignete Verfahren könnte es schwierig werden, rechtzeitig Engpässe bei den Ressourcen in einem Tier zu erkennen – eine Gefahr für die Performance der Anwendungen über die ganze Speicherinfrastruktur hinweg.

Eine ganzheitliche Sichtweise ist erforderlich

Abschließend sollte bemerkt werden, dass Tiering nur eine Funktion moderner Storage Arrays ist. Performance-Verbesserungen werden ebenfalls durch Caching und Datenoptimierung, durch Thin Provisioning, Komprimierung und Deduplizierung geliefert.

Alle diese Features sind aufs engste miteinander in der Architektur verbunden, was es erschwert, Tiering als die einzige kostensparende und Performance-steigernde Lösung zu isolieren.

Folgen Sie SearchStorage.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Dezember 2015 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Essential Guide

Flash Storage beschleunigt das Rechenzentrum

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close