michelangelus - Fotolia

So können Sie mehr Storage-Leistung durch Tiering und Caching erreichen

Die Storage-Leistung lässt sich durch Tiering- und Caching-Techniken erheblich erhöhen. Wir zeigen Ihnen die besten Methoden für Hochgeschwindigkeit.

Es gibt riesige Unterschiede zwischen schnellem und langsamem Server-Storage. Die Antwortzeit für ein über Ethernet angebundenes iSCSI-SAN-System kann sechs- oder siebenmal langsamer sein als die von RAM oder 3D XPoint.

Was bei RAM Nanosekunden dauert, beansprucht bei 3D XPoint oder über PCI Express (PCIe) angebundenen NVMe-SSDs (Non-volatile Memory-Express) nur Mikrosekunden, bei SAN-Storage einige Millisekunden und immerhin 100 Millisekunden bei Disk-basierenden SAN- oder NAS-Systemen. Die Geschwindigkeit des schnellsten Storages ist also millionenfach größer als die des langsamsten.

Unter diesen Umständen bedeuten der Aufbau mehrerer unterschiedlich leistungsfähiger Storage-Schichten (Tiering) oder die Speicheroptimierung durch Caching einen großen Unterschied für die Zugriffsgeschwindigkeit auf aktive Daten. Die Auswahl der richtigen Technologien dafür ist allerdings komplex und erfordert sorgfältiges Nachdenken.

Beispielsweise reicht es bei neueren Storage-Systemen und Daten-Management-Methoden mit Tiering nicht mehr, Daten einfach in „heiße“, „warme“ oder „kalte“ aufzuteilen.

Beim Caching hängt die Auswahl der richtigen Technologie (es gibt derzeit Write-around, Write-through und Write-back) von diversen Faktoren ab, unter anderem vom angestrebten Verfügbarkeits- und Leistungsniveau.  

Man muss den Unterschied zwischen Tiering und Caching verstehen und genau wissen, wie und wo man jede dieser Storage-Optimierungstechnologien einsetzt, um eine optimale Leistung auf Unternehmensebene zu erreichen.

Caching-Optionen

Es gibt zwei wichtige Cache-Typen, nämlich Cache auf dem Server und Appliances, die sich zwischen dem Server und dem permanenten Datenspeicher befinden.

Cache auf dem Server

Cache lässt sich an verschiedenen Punkten eines Servers installieren. Einige Caching-Softwares nutzen einen Teil des Server-RAM als Cache. Das ist die schnellste Option, da die Daten über den Memory- statt über den PCI-Bus fließen. RAM ist mehr als tausendmal schneller als auch das schnellste PCIe NVMe-Storage.

Gleich danach kommen DIMM-basierte Produkte wie 3D XPoint, das gemeinsam von Intel und Micron entwickelt wurde, oder Memory1 von Diablo Technologies. Sie sind eher durch den Memory-Bus als über PCI angebunden, was zu weniger Leistung als bei dynamischem RAM, aber mehr als bei jedem über PCI angebundenen Storage führt.

Die Kapazität dieser DIMM-basierten Lösungen ist mindestens zehnmal höher als die von DRAM, der etwa gleich viel kostet. Danach folgen das Caching mit über den PCIe-Bus angebundenen NVMe-SSDs, Host Bus Adapter (HBAs) und Netzadapter mit eingebautem Cache.

Mehrere Möglichkeiten gibt es auch hinsichtlich der Caching-Software. Dabei sind einige Vorgehensweisen transparenter als andere. HBAs und Netzadapter lagern Daten intern zwischen und arbeiten sich auf der Hardwareebene durch die Treibersoftware des Adapters.

Dadurch wird der Setup-Prozess des Cache relativ undurchsichtig. Aber beim Caching mit Systemspeicher, Flash-basierte DIMMs oder PCIe NVMe SSDs muss die Caching-Software auf der Treiber-, Betriebssystem- oder Anwendungsschicht installiert werden – mit dem Risiko von Fehlern oder Leistungsverlusten.

Caching-Appliances

Caching-Appliances befinden sich zwischen Server und permanentem Storage und können für Applikation und Serverbetriebssystem vollständig transparent sein. Will man sie verwenden, muss man den Server nicht öffnen oder ihn vom Netz nehmen, um neue Hardware zu installieren. Die Leistungsverbesserungen können beträchtlich sein und im Mikrosekundenbereich liegen, die Performance reicht aber nicht an die eines RAM- oder DIMM-basierten Flash-Cache heran. 

Optionen beim Tiering

Die Storage-Optimierungstechnologien für unterschiedliche Storage-Tiers basierten anfänglich auf den Festplattentypen, die Ende des vergangenen Jahrhunderts verfügbar waren. 15.000 Umdrehungen pro Minute (rpm) schnelle Festplatten bildeten die erste Schicht, Laufwerke mit 10.000 rpm die zweite und langsame 7.200 rpm-Disks die dritte.

Jede Schicht war langsamer und billiger als die darüber liegende. Das Aufkommen von SSDs führte dazu, dass ein Tier 0 hinzukam.

So musste man die bestehenden Schichten nicht neu bezeichnen. Seitdem wird es verwirrender. So gibt es schnellere Speicherschichten, die aus neueren, schnelleren SSDs oder sogar DRAM bestehen, gleichzeitig gibt es auch langsamere Tiers, etwa wenn Daten auf Tape oder auf Cloud-Storage geschrieben werden.

Das Storage-Management oder die Virtualisierungs-Software stellen sicher, dass die Daten an so viele Schichten wie nötig geschickt werden. Das geschieht transparent über den Server, so dass Dateien in einem Verzeichnis auf mehreren unterschiedlichen Tiers gespeichert werden können. Sie werden aber dem Betriebssystem aber trotzdem als ein einheitlicher Ordner präsentiert.

Hier macht die Storage-Management-Software, die die Daten den unterschiedlichen Schichten zuweist, den Unterschied. Eine gängige Methode beschreibt die schnellste Speicherschicht als erstes und verschiebt dann die Daten, auf die eine Weile nicht zugegriffen wurde, auf langsamere Speicherschichten.

Eine alternative Herangehensweise priorisiert Daten nach der Art der Anwendung, bestimmten Verzeichnissen oder irgendwelchen anderen Kriterien. Viele SAN-Systeme bieten Formen des automatisierten Tierings, die sich auf Volumes oder Logical Unit Numbers (LUNs) beziehen.

Die ersten automatisierten Tiering-Systeme verwendeten oft einen einfachen Algorithmus, der alle Daten, die vom Server gelesen wurden, automatisch auf die schnellste Speicherschicht verschob.

Ältere Dateien, auf die eine Weile nicht zugegriffen wurde, transferierte der Algorithmus auf billigeren, langsameren Storage. Dann teilten Prognosealgorithmen die Dateien in Gruppen auf, auf die häufig gemeinsam oder kurz hintereinander zugegriffen wurde und verlagerten die übrigen Dateien einer Gruppe auf eine schnellere Speicherschicht, wenn ein File aus einer solchen Gruppe gelesen wurde.

Weitere Verfeinerungen sind hinzugekommen. Sie alle zielen darauf, schnelle Zugriffszeiten für die am häufigsten gelesenen Dateien zu realisieren.

Tiering-Systeme arbeiten meist auf der Ebene des SAN-Systems. Das bedeutet, dass unterschiedliche Storage-Systeme im Allgemeinen ihr eigenes Schichtsystem haben. Rechenzentren mit mehreren SAN-Systemen von unterschiedlichen Herstellern brauchen entweder zusätzliche Storage-Management-Anwendungen oder getrennte Storage-Silos für unterschiedliche Applikationen.

Automatisiertes Tiering leistet im Allgemeinen am meisten und es ist weniger wahrscheinlich, dass der Storage-Administrator regelmäßig eingreifen muss, um das System zu tunen.

Allerdings gibt es Fälle, in denen ein manuelles Tiering-System durchaus angemessen sein kann. So wenn beispielswese Datenbank-Administratoren alle Files einer Datenbank auf dieselbe Schicht legen möchten, um die Leistung zu optimieren, auch wenn auf einige Dateien nur selten zugegriffen wird.

Dasselbe gilt möglicherweise für andere Anwendungen oder Systeme, die bestimmte Files nur im Notfall oder periodisch zur Abwicklung bestimmter Aufgaben wie Backup oder Wartung laden.

Disaster Recovery macht den Unterschied

Typische Beispiele für Anwendungen, bei der es etwas ausmacht, ob Tiering oder Cache-Storage-Optimierung verwendet werden, sind hochverfügbare Systeme oder Disaster Recovery (DR).

Werden Daten zum ersten Mal auf Storage geschrieben, wartet das schreibende Programm auf eine Bestätigung für den Abschluss des Schreibvorgangs. Wird das System unterbrochen und die Bestätigung kommt nicht, kann die Applikation auf den Status vor der unterbrochenen Operation zurückgehen.

Werden jedoch Daten auf einen flüchtigen Speicher wie eine Cache-Disk geschrieben und das Programm bestätigt die Vollendung des Schreibvorgangs, während in Wirklichkeit der Strom vor Abschluss des Schreibvorgangs ausgefallen ist, können die betroffenen Daten abhängig von der verwendeten Cache-Strategie verloren gehen.

Write-through Cache bestätigt einen Schreibvorgang erst, wenn die Daten den Cache verlassen haben und sich am Ziel auf dem permanenten Storage befinden. Damit ist sicher, dass die Daten tatsächlich geschrieben wurden, bedeutet aber eine höhere Schreibverzögerung. Lesevorgänge werden demgegenüber beschleunigt, da die Daten häufig direkt aus dem Cache gelesen werden können statt von der Festplatte.

Write-around Cache umgeht den Cache bei Schreibvorgängen und schreibt stattdessen direkt auf das eigentliche Ziel. Bestätigt wird erst, wenn die Daten auf das Permanent-Storage geschrieben wurden. Das beschleunigt die Schreibleistung, verlangsamt aber das Lesen, da die Daten sich nicht im Cache befinden.

Write-back Cache bestätigt einen Schreibvorgang, sobald die Daten in den Cache geschrieben wurden. Dieses Verfahren hat die beste Schreib- und Leseleistung, weil die Daten in den Cache geschrieben und aus ihm ausgelesen werden. Aber es besteht die Gefahr von Datenverlusten, wenn das System offline geht oder der Strom ausfällt, bevor die Daten auf das permanente Storage geschrieben wurden. Man kann das durch Cache-Systeme mit Batterie-Backup oder durch gleichzeitiges Schreiben auf Cache und permanente Storage verhindern.

Bei Tiered Storage werden Schreibvorgänge nicht bestätigt, bevor sie das permanente Storage erreichen, was das Potential für Datenverluste minimiert. Allerdings sind hier die Leistungsgewinne der Tiering-Techniken für die Storage-Optimierung nicht ganz so hoch wie bei der Verwendung von flüchtigem Cache. Denn das System muss bei jedem Schreibvorgang abwarten, bis auf das Permanent-Storage geschrieben wurde, statt nach dem anfänglichen Schreibvorgang auf das schnellere, flüchtige Storage den nächsten Vorgang in Angriff zu nehmen.

Wie viele Cache-Ebenen sind sinnvoll?

Man kann unterschiedliche Typen von Caching und Tiering kombinieren. Beispielswese könnten in einem einzelner Server mehrere unterschiedliche Cache-Typen an unterschiedlichen Stellen implementiert sein, von denen jede ihren Teil dazu beiträgt, die Geschwindigkeit von Transaktionen zwischen den Systemen zu erhöhen.

Es kann L1-, L2- und L3-Cache auf  der CPU geben; einen kleinen dynamischen RAM-Cache auf den Host Bus Adaptern (HBA), Netzkarten und RAID-Controllern und einen großen Flash-Cache auf denselben Controllern. Die meisten Caches arbeiten für das Betriebssystem und sogar den Storage-Administrator transparent.

Anders als Tiering arbeiten die meisten Caches unabhängig von anderen Storage-Ebenen – der Cache auf HBAs ist vollständig vom Cache auf einem RAID-Controller oder auf dem Storage-Array getrennt.

Tiering ist auf unterschiedlichen Ebenen möglich – das Softwareangebot reicht von Software für individuelle Server über Storage-Management-Software wie Datacores SANSympohny bis hin zu Software, die in den Controller von SAN-Storage-Arrays integriert ist.

Storage-Administratoren sorgen sich darum, dass Caches bei Stromausfall Daten verlieren könnten. Viele RAM- und Flash-Caches haben deshalb entweder Batterien oder Superkondensatoren als Backup-Energiequelle, so dass Schreibvorgänge fertiggestellt werden, auch wenn der Strom ausfällt.

Zusätzliche Einsatzszenarien

Durch Tiering oder serverseitiges Caching kann man so ziemlich jede Anwendung beschleunigen. Dafür muss man den aufgrund der Anforderungen der Anwendung gewählten Tiering oder Caching-Typ optimieren.

Optimales Caching für Datenbankanwendungen ist zum Beispiel nicht dasselbe wie für Medienserver oder für die Echtzeitanalyse von Data Lakes. Jede dieser Anwendungen hat unterschiedliche Anforderungen hinsichtlich der Integritätssicherung der Daten und der spezifischen Leistungen, die sie benötigt – beispielsweise Lesen, Schreiben oder beides, Zufalls- oder sequentielles Schreiben und Lesen, hohe Ein-/Ausgabeleistung oder hoher Durchsatz.

Latenz und der Datendurchsatz von Storage
Abbildung 1: Latenz und der Datendurchsatz von Storage

Es gibt keine zwei Anwendungen, die sich hinsichtlich ihrer Storage-Anforderungen genau gleichen, also gibt es auch kein Produkt, das überall passt und jeden Bedarf befriedigt. Das gilt besonders unter Kostengesichtspunkten. Die Preisspanne reicht von mehr als 100 US-Dollar pro Gigabyte für die teuersten bis unter 10 US-Cent pro Gigabyte für die günstigsten Storage-Optimierungstechniken.

Häufig können Caching oder Tiering die Storage-Leistung gewaltig steigern, und das bei relativ geringen Investitionen. Ein serverseitiger Cache oder ein SSD-basierter Tier 0 in einem Storage-Array kann die Leistung um den Faktor 10 oder mehr verbessern, wobei die Kapazität nur 10 Prozent bis 20 Prozent der nächstunteren Storage-Schicht betragen muss.

Es gibt wie gesagt keine ideale Lösung für jeden. Jede Organisation muss daher die detaillierten Anforderungen ihrer Applikationen herausarbeiten und feststellen, wie viel sie ausgeben kann, um anschließend das passende Produkt auszuwählen.

Die Vorteile DIMM-basierter Flash-Caches

Der Memory-Bus auf den Serverhauptplatinen hat sehr viel geringere Verzögerungszeiten und höheren Durchsatz als ein PCI-Express-Bus, der für Host Bus Adapter (HBAs), Netzadapter, SCSI-Adapter und andere Storage-Verbindungen wie den SATA-Bus verwendet wird, wie man sie in vielen Systemen vorfindet.

SSDs und andere Storage-Medien mit der Geschwindigkeit von Flash-Memory haben eine Leistung erreicht, an dem lediglich zwei PCIe NVMe-Disks den gesamten PCIe-Kanal auslasten können.

Der nächste logische Schritt ist entweder eine schnellere PCIe-Spezifikation, bis dahin dauert es aber noch mindestens ein Jahr – und wird im Ergebnis nur eine Verdopplung der PCIe-Geschwindigkeit bringen – oder der Einsatz des Memory-Bus, um schnelleres Flash zu ermöglichen.

Letztgenannter Ansatz könnte die Leistung, verglichen mit PCIe, um einen dreistelligen Faktor erhöhen. Weil die Hauptplatinen vieler Server 16 oder mehr DIMM-Steckplätze haben, ist in der Regel ausreichend Platz für Flash-DIMMs vorhanden.

Zu den verfügbaren DIMM-basierten Flash-Technologien gehören Memory1 von Diablo Technologies, die zuerst auf dem Markt war, und 3D XPoint mit der größeren Marktpräsenz. Beide integrieren Flash auf DIMMs, was billiger und schneller ist als dynamischer RAM (DRAM) und noch dazu mehr Kapazität bietet.

Eine der Zielapplikationen hierfür ist das serverseitige Caching. Andere Einsatzfelder sind der Aufbau größerer Speicher-Pools, um Anwendungen vollständig im Speicher zu halten und so den hohen Kosten von DRAMs mit hoher Kapazität entgegenzutreten.

Die Treiber, die man für Flash-basierte DIMMs braucht, müssen zwischen DRAM und Flash-DIMMs unterscheiden können und sicherstellen, dass sie angemessen eingesetzt werden. Da diese Technologien noch relativ neu sind, sollte man Applikationen und Treiber testen, bevor man eine größere Implementierung vornimmt.

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

Nächste Schritte

So können Sie die hybride Cloud als Storage Tier einsetzen

So optimieren Sie die Storage-Leistung mit SSD-Caching und SSD-Tiering

Techniken zur Optimierung der Microservices-Leistung in der Cloud

Mit geschicktem Tuning können Sie optimale Leistung aus Storage herauskitzeln

Artikel wurde zuletzt im August 2017 aktualisiert

Pro+

Premium-Inhalte

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

Erfahren Sie mehr über Kapazitätsoptimierung von Primärspeicher

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close