polygraphus - Fotolia

Caching kann Flash-Storage beschleunigen

Storage-Caching kann zu mehr Performance für Workloads führen, als dies mit Tiering möglich ist. Es sind aber einige Punkte zu beachten.

In einer perfekten Welt könnten wir uns den Luxus leisten, alle unsere Daten auf den schnellsten verfügbaren Medien zu speichern. Doch zu unserem Leidwesen ist die Welt der IT nicht perfekt.

Aus praktischen Gründen müssen wir zum Beispiel Speicher mit den Anforderungen der Anwendungen in Übereinstimmung bringen. Dies zu erreichen, kann ein Problem sein, wenn sich die Datenprofile ständig ändern (das heißt aktive Daten ändern sich ständig), weil Datenbewegungen in einem Tiering-Modell andauernd von einer Ebene zu einer anderen bewegt werden. Außerdem verstärkt sich in der IT der Fokus auf die Cloud. Dadurch werden Daten und Applikationen womöglich nicht länger am gleichen Ort sein, so dass Produkte benötigt werden, die den Datenzugriff über längere Entfernungen hinweg garantieren und dabei ihre Konsistenz und Integrität aufrechterhalten.

Eine Antwort auf diese I/O-Performance-Probleme besteht in der Implementierung von Storage-Caching. Im Unterschied zu Tiering behält Storage-Caching eine Datenkopie in einer Schicht von schnellen Medien, während die primäre Datenversion bei den gespeicherten Datenkopien – in der Regel billigere Platten oder Flash – bleibt.

Vorteile von Caching

Der hauptsächliche Vorteil der Arbeit mit Kopien statt mit den aktuellen Daten besteht darin, dass die Cache-Inhalte schnell geändert werden können, um dem aktiven Workload zu entsprechen. Zwischenzeitlich nicht aktive Cache-Daten können einfach annulliert werden und müssen nicht verschoben werden, wenn der Cache voll wird.

Caching ermöglicht auch den kostengünstigen Einsatz von verschiedenen Medien, da nur ein kleiner Prozentsatz an Daten in der Regel ständig aktiv ist – vielleicht 10 bis 20 Prozent bei den meisten Anwendungen. Mit einem relativ kleinen Cache-Anteil können Unternehmen die meisten I/O-Anfragen beschleunigen und so eine deutlich verbesserte Performance von Anwendungen zu einem viel niedrigeren Preis erzielen, als wenn sie alle Daten auf schnellen Medien ablegen würden.

Caching-Kompromisse

Bei lokalen Installationen ist Storage-Caching ein Kompromiss zwischen der Verbesserung der gesamten I/O-Performance und den Kosten, die durch das Platzieren der Daten auf teuren Medien entstehen. Mit effizienten Caching-Algorithmen wird ein hoher Anteil der I/O-Prozesse (hoffentlich 90 bis 95 Prozent oder mehr) von und zum Cache durchgeführt werden. Einige Daten werden unvermeidlich nicht im Cache sein, wenn sie angefordert werden, so dass auf den primären Speicherort zurückgegriffen werden muss, um diese Daten wiederherzustellen: Dies führt zu einer unzureichenden I/O-Reaktion. In Situationen, in denen dies wahrscheinlich ein Problem darstellen wird, wie zum Beispiel bei Handelssystemen oder bei Online-Spielen, ist es vorzuziehen, primäre Daten auf einem schnellen Speicher-Layer abzulegen.

Unterdessen können Unternehmen in Cloud-Umgebungen physikalische und virtuelle Appliances benutzen, um Daten lokal im Cache oder extern in der Cloud zwischenzuspeichern. Auf diese Weise erhält man bessere Performance, als wenn man direkt auf die Daten zugreift, da der Zugang über das öffentliche Internet oder sogar über ein dediziertes Netzwerk wesentlich höhere Latenzen bedingt als der über ein lokales Rechenzentrum. Ein Nachteil des Daten-Caching in oder aus der Cloud heraus besteht jedoch in der Konsistenzproblematik, um sicherzustellen, dass alle I/O-Schreibaktivitäten schließlich auf primären Storage erfolgen.

Caching-Modelle

Man kann zwischen drei hauptsächlichen Methoden der Implementierung von Storage-Caching unterscheiden. Welche man auswählt, legt fest, wie Write-I/O-Anfragen vom Cache ausgeführt werden:

Write-through. Schreibanforderungen werden vor der Bestätigung durch den Host in den Cache und den primären Speicher geschrieben. Der I/O-Prozess ist auf langlebigen Medien abgelegt, aber die Performance ist durch die Geschwindigkeit des primären Speichers begrenzt. Weil der Cache-Layer keine besondere Absicherung (zum Beispiel durch RAID-Schutz) erfordert, ist Write-through billiger und leichter zu installieren. Leseanfragen werden direkt aus dem Cache heraus beantwortet, wenn die Daten bereits dort abgelegt sind, oder sie werden vom primären Speicher ausgelesen und auch in den Cache geschrieben.

Write-back. Dieser Prozess schreibt Daten in den Cache und bestätigt sofort die I/O-Ausführung an den Host. Die I/O-Write-Performance ist gut, obwohl die Daten mehr gefährdet sind, bis sie auf den primären Speicher geschrieben sind. Die meisten Implementierungen von Write-back-Caching schützen deshalb konsequent die Daten durch Spiegelung zu einem anderen Host oder Controller oder benutzen Batterie- oder UPS-gestütztes Backup.

Write-around. Bei dieser Methode werden die Daten am Cache vorbei direkt auf den primären Speicher geschrieben, der dann nur für Leseanfragen benutzt wird. Dieser Implementierungstypus wird für Workload-Profile benutzt, die große sequentielle Schreibvorgänge enthalten, die ansonsten nur den Cache mit Daten vollstopfen würden, die dann in der Folge nie wieder gelesen würden (wie zum Beispiel Backup- oder Archivdaten).

Software-Installationen von Caching benutzen in der Regel mindestens eine dieser Methoden und können sich entweder durch Erkennen des Workload-Typs oder durch Konfiguration nach Volumen oder LUN anpassen.

Caching auf einen Blick

Die Caching-Methoden beruhen darauf, wie der Write-I/O-Prozess durchgeführt wird:

  • Write-through (Schreibprozesse werden synchron in den Cache und in den primären Speicher geschrieben).
  • Write-back (Schreibprozesse werden asynchron in den Cache und in den primären Speicher geschrieben).
  • Write-around (Schreibprozesse gehen am Cache vorbei direkt zum primären Storage).

Caching kann an verschiedenen Orten des I/O-Layers eingerichtet werden:

  • Auf einem externen Array (je nach Herstellerspezifikation).
  • Durch eine Appliance (gut für entfernten Datenzugang).
  • In einem Hypervisor (beschleunigt virtuelle Maschinen (VMs) und profitiert von Deduplizierung).
  • In einem Betriebssystem (um die urtümlichen Caching-Features des Betriebssystems zu erweitern).
  • Als Teil einer Anwendung (zum Beispiel bei Datenbanken, um den Leseprozess allgemeiner Daten zu reduzieren).

Wo soll der Cache hin?

Caching wird über den ganzen I/O-Layer hinweg an vielen Orten benutzt. Der Cache kann sich in der Applikation, dem Betriebssystem oder Hypervisor, als eine Appliance oder in dem Speicher-Array befinden. In jedem Fall kommt es darauf an, schnellere Medien einzusetzen – dynamisches RAM, nicht-flüchtiges DRAM (dual-inline Memory-Module) oder Flash (NAND) –, um die I/O-Performance zu verbessern.

Hierzu einige Beispiele:

Externes Array: Caching innerhalb des Arrays ist ein Feature von externen Speichersystemen gewesen, seit EMC das integrierte Cache-Disk-Array in den frühen 1990er Jahren unter dem Symmetrix-Markenzeichen eingeführt hatte. Das Ziel von Array-Caching besteht darin, unvorhersehbare I/O-Performance von Festplatten zu reduzieren, wirksam I/O-Prozesse anzupassen und Schreib- und Leseanfragen neu zu organisieren, um die Bewegungen der Plattenköpfe zu optimieren (und effektiv zu verringern). Platten-Caching, das für den Anwender ziemlich transparent ist, wird durch eine Mischung von DRAM, NVDRAM und Flash-Speicher implementiert. Die Array-Hersteller passen entweder die Cache-Größe an den zugrunde liegenden Speicher an, wobei das Cache-Verhältnis festgelegt ist, oder sie erlauben es den Kunden, die Cache-Größe als Teil der Array-Ausstattung selbst festzulegen.

Appliance-basiert: Das Caching von Applikationen kann durch den Einsatz einer Appliance erreicht werden, die die Daten über das ganze Netzwerk hinweg sichtbar macht. Entsprechende Produkte sind entweder Block- oder File-basiert und benutzen typische Protokolle wie zum Beispiel iSCSI, SMB, CIFS oder NFS. Appliances werden gerne eingesetzt in Anwendungsfällen, bei denen Daten über größere Entfernungen zugänglich gemacht werden – zum Beispiel zwischen verschiedenen Rechenzentren oder zu und von einer Public Cloud. Der Caching-Prozess kann in beiden Richtungen arbeiten. Das bedeutet, er kann on-site eingesetzt werden, um schnelleren Zugang zu Cloud-Ressourcen zu schaffen, oder innerhalb der Cloud, um schnelleren Zugang zu On-Premise-Ressourcen zu bewerkstelligen.

Hypervisor: Hypervisor-Caching benutzt Flash und DRAM. Die Performance der virtuellen Maschine wird verbessert, indem die aktivsten Teile der VM auf schnelleren Speicher verlagert werden. VMware vSphere verwendet Flash standardmäßig mit dem Feature „Flash Read Cache“, das jeder VM einen bestimmten Betrag an Flash zuteilt. Es gibt auch Tools von dritter Seite, die sowohl für Block-basierte I/O-Prozesse als auch für Daten, die auf NFS-Speicher abgelegt sind, Cache-Platz innerhalb des Hypervisors zur Verfügung stellen. Bei Microsoft ist Hyper-V-Caching direkter Bestandteil des Betriebssystems oder gehört zu den neuen Features wie zum Beispiel CSV Cache (Cluster Shared Volumes), das mit Windows Server 2012 eingeführt wurde. Hypervisor-Caching kann auch zwischen verschiedenen VMs gut funktionieren, bei denen Daten dedupliziert werden – ähnlich wie bei Images von Virtual Desktop Infrastructure (VDI).

Betriebssystem: Caching innerhalb des Betriebssystems ist von Anbeginn ein Feature von Betriebssystemen gewesen. Der Caching-Prozess ist vor allem dafür gut, die I/O-Antwortzeiten positiv zu beeinflussen, obwohl Caching in einigen Fällen nicht besondere I/O-Profile berücksichtigt. Softwarehersteller haben diese Lücke schnell verstanden und Programme vorgelegt – von denen viele zusammen mit Speichermedien angeboten werden –, die ein effizienteres Caching für Windows und Linux bringen.

Caching per Applikation: In Anwendungen ist Caching sowohl als Teil der Datenbank als auch als maßgeschneiderter Code implementiert. Die meisten Datenbanken bieten irgendeine Form von Caching an, darunter Oracle SQL mit Result Cache und Full Database Caching oder MySQL mit Query Cache.

Caching in

So ziemlich alle externen Speicher-Arrays haben einen I/O-Cache in der Form von DRAM oder NAND-Flash, obwohl mit dem Aufkommen von All-Flash-Arrays Storage-Caching nur noch eine geringere Rolle spielen mag, weil die gesamten Einsparungen niedriger sind. Im Folgenden stellen wir einige besondere Beispiele dar, wie die Hersteller Caching implementieren.

Nimble Storage benutzt NAND-Flash für Caching von Write-I/Os basierend auf der Annahme, dass die Daten sofort wieder gelesen werden. Jedoch wird NVRAM für Caching eingesetzt, bevor sie auf Festplatte übergeben werden. 3PAR von Hewlett Packard Enterprise arbeitet mit Flash als einer Erweiterung von DRAM für einen sekundären Layer von weniger oft aufgerufenen Daten. Dieses Feature mit Namen Adaptive Flash Cache versetzt Flash in die Lage, die Fähigkeiten von Array-Caching ohne Ausgaben für weiteren DRAM zu erweitern.

Avere Systems hat ein Appliance-basiertes Caching-Produkt im Angebot, das NAS-Speicher zu geographisch verteilten Rechenzentren oder in die Cloud ausweitet. Im Bereich der Public Cloud wird es eher als virtuelle Appliance denn als physikalische Hardware installiert. Es gibt auch Caching-Produkte für die Cloud von Microsoft (StorSimple), die einen Cache für geschriebene und gelesene Daten von Azure benutzen. Ferner stellt Panzura Global File System Appliances zur Verfügung, die File-Daten, die in einer public oder private Cloud gespeichert sind, in einen lokalen Cache verschieben.

Innerhalb des Hypervisors stellen Hersteller I/O-Beschleunigung für NAS- und für Block-Protokolle zur Verfügung. PernixData (jetzt bei Nutanix) integriert zum Beispiel so etwas in den ESXi-Kernel von VMware und erlaubt damit, sowohl DRAM als auch NAND-Flash für die Beschleunigung von VM I/O einzusetzen. In den Fällen, in denen DRAM benutzt wird, werden Write-I/Os in einem Cluster zwischen mehreren Hosts repliziert, um einen Schutz vor einem Hardwareausfall zu schaffen. Die Software Infinio Accelerator setzt sowohl NAS- und Block-basierte I/O-Prozesse in einen Cache für virtuelle Maschinen. Dies wird erreicht durch den Einsatz einer VM auf jedem vSphere-Host unter VMware, wobei DRAM in der virtuellen Maschine als Cache benutzt wird. SanDisk seinerseits stellt Caching unter der Marke FlashSoft zur Verfügung. Das jüngste Release 4.0 unterstützt vSphere 6 und Microsoft Hyper-V (sowie Microsoft Server), während ältere Versionen Support für Linux und vSphere ESXi 5.x bieten.

Auf der Betriebssystemschicht gibt es eine Reihe von Softwareprodukten zur Beschleunigung der Performance. Enmotus bietet eine Anzahl von Produkten zur Verbesserung der traditionellen platten-basierten Performance an und setzt dafür zum Beispiel Flash für Workstations oder Server ein, während Intels Cache Acceleration Software zusammen mit den SSD-Produkten des Herstellers arbeitet. Die Software unterstützt Windows und Linux und kann als virtuelle Maschine unter allen üblichen Hypervisoren laufen. Weitere betriebssystemgestützte Caching-Produkte umfassen ION Accelerator (SanDisk), AutoCache (Samsung) und XtremCache (EMC).

Schließlich offeriert Atlantis Computing zwei Caching-Produkte, von denen eines auf VDI-Umgebungen (ILIO) gemünzt ist und das andere auf Umgebungen für virtuelle Server (USX). ILIO unterstützt sowohl langlebige als auch nicht-langlebige Desktops, wobei DRAM mit einem hohen Grad an Deduplizierung eingesetzt wird, um wesentlich effektivere Total Cost of Ownership (TCO) zu liefern als dies mit externem Flash-basiertem Speicher möglich wäre.

Caching out

Caching kann die Performance von Anwendungen an vielen Stellen verbessern. Die Entscheidung, wo man Cache einsetzen will, erfordert jedoch die Abwägung zwischen Kosteneinsparungen (Vermeidung von Lizenzen und Hardwarekosten) und der praktischen Umsetzung einer Installation. Und während weitgehend virtualisierte Umgebungen in der Regel von Caching im Hypervisor profitieren, können sich einige taktische und eventuell vorübergehende Installationen – zum Beispiel als direktes Caching in einer virtuellen Maschine oder als Zuordnung von SSDs zu einer Datenbank – durchaus als nützlich bewähren.

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

Nächste Schritte

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

Status Quo: Ein aktueller Überblick zum Stand der SSD-Caching-Technologie.

Authentication Caching: So erhöhen Sie die Netzwerk-Performance.

Server-side Caching: Wie sie durch Server-seitiges Caching Geld sparen.

Artikel wurde zuletzt im Oktober 2016 aktualisiert

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