FAST VP in der Unity-Speicherlösung: So funktioniert es

Heute sprechen wir über eine interessante Technologie, die in den Speichersystemen Unity/Unity XT implementiert ist – FAST VP. Wenn Sie zum ersten Mal von Unity hören, können Sie am Ende des Artikels die Systemeigenschaften einsehen. In der Projektgruppe von Dell EMC habe ich über ein Jahr lang an FAST VP gearbeitet. Heute möchte ich Ihnen diese Technologie näher vorstellen und einige Details ihrer Implementierung erläutern. Natürlich nur die, die ich preisgeben darf. Wenn Sie sich für effizientes Datenmanagement interessieren oder einfach die Dokumentation nicht ganz verstanden haben, wird Ihnen dieser Artikel sicherlich nützlich und interessant sein.

FAST VP in der Unity-Speicherlösung: So funktioniert es

Ich möchte gleich klarmachen, was in diesem Material nicht enthalten sein wird. Es wird keine Konkurrenzanalysen und Vergleiche geben. Ich plane auch nicht, ähnliche Technologien aus dem Open Source-Bereich zu erläutern, da der neugierige Leser bereits darüber informiert ist. Und natürlich habe ich nicht vor, irgendetwas zu bewerben.

Storage Tiering. Ziele und Aufgaben von FAST VP

FAST VP steht für Fully Automated Storage Tiering für das virtuelle Pool. Klingt kompliziert? Keine Sorge, wir klären das jetzt. Tiering ist eine Methode zur Organisation der Datenspeicherung, bei der es mehrere Ebenen (Tiers) gibt, auf denen diese Daten gespeichert werden. Jede Ebene hat ihre eigenen Eigenschaften. Die wichtigsten sind: Leistung, Volumen und Preis der Speicherung einer Informationseinheit. Natürlich besteht eine Beziehung zwischen diesen.

Ein wichtiges Merkmal des Tierings ist, dass der Zugriff auf die Daten einheitlich bereitgestellt wird, unabhängig davon, auf welcher Speicherebene sie sich befinden, während die Größe des Pools der Summe der Größen der ihm zugeordneten Ressourcen entspricht. Hierin unterscheiden sich die Caches: Die Größe des Caches wird nicht zur Gesamtkapazität der Ressource (in diesem Fall des Pools) addiert, während die Cache-Daten einen bestimmten Teil der Daten des Hauptspeichers duplizieren (oder duplizieren werden, wenn die Daten aus dem Cache noch nicht gespeichert sind). Zudem ist die Verteilung der Daten auf die Ebenen für den Nutzer verborgen. Das bedeutet, dass er nicht sieht, welche Daten sich auf jeder Ebene befinden, obwohl er indirekt Einfluss darauf nehmen kann, indem er Richtlinien festlegt (mehr dazu später).

Schauen wir uns nun die Merkmale der Implementierung von Storage-Tiering in Unity an. In Unity werden 3 Ebenen, oder Tiers, unterschieden:

  • Extreme Leistung (SSDs)
  • Leistung (SAS HDD 10k/15k RPM)
  • Kapazität (NL-SAS HDD 7200 RPM)

Diese sind in absteigender Reihenfolge von Leistung und Preis angeordnet. In der Extreme-Leistung-Ebene sind ausschließlich Solid-State-Laufwerke (SSD) enthalten. Die beiden anderen Tiers bestehen aus magnetischen Datenträgern, die sich hinsichtlich der Drehgeschwindigkeit und damit der Leistung unterscheiden.

Speichermedien derselben Ebene und Größe werden in einem RAID-Verbund zusammengeschlossen, um eine RAID-Gruppe (RAID group, kurz RG) zu bilden; Informationen zu den verfügbaren und empfohlenen RAID-Stufen finden Sie in der offiziellen Dokumentation. Aus RAID-Gruppen von einer oder mehreren Ebenen werden Speicherpools (Storage pool) gebildet, aus denen der verfügbare Speicherplatz verteilt wird. Aus dem Pool wird dann Platz für Dateisysteme und LUNs bereitgestellt.

FAST VP in der Unity-Speicherlösung: So funktioniert es

Warum benötige ich Tiering?

Kurz und bündig: um ein besseres Ergebnis mit minimalen Ressourcen zu erzielen. Konkret betrachtet sind die Ergebnisse in der Regel die Gesamtheit der Eigenschaften eines Speichersystems – Geschwindigkeit und Zugriffszeit, Speicherkosten und ähnliches. Mit dem Minimum an Ressourcen sind die geringsten Aufwendungen gemeint: Geld, Energie und so weiter. FAST VP implementiert Mechanismen zur Datenumverteilung auf verschiedenen Ebenen im Unity/Unity XT Speicher. Wenn Sie mir glauben, können Sie den nächsten Absatz überspringen. Für die anderen möchte ich etwas genauer darauf eingehen.

Die richtige Verteilung der Daten auf den Speicherebenen kann die Gesamtkosten des Speichersystems senken, indem man auf die Zugriffszeit von weniger häufig genutzten Informationen verzichtet. Gleichzeitig steigert es die Leistung, indem häufig verwendete Daten auf schnellere Medien verschoben werden. An dieser Stelle kann jemand einwenden, dass auch ohne Tiering ein normaler Administrator weiß, wo welche Daten platziert werden sollten, welche Eigenschaften für seine Aufgabe wünschenswert sind usw. Das ist sicherlich richtig, aber die manuelle Datenverteilung hat ihre eigenen Nachteile:

  • sie erfordert Zeit und Aufmerksamkeit des Administrators;
  • es gelingt nicht immer, die Ressourcen des Speichersystems an geänderte Bedingungen anzupassen;
  • Ein wichtiges Vorteil verschwindet: ein einheitlicher Zugriff auf Ressourcen, die sich auf verschiedenen Speicherebenen befinden.

Um sicherzustellen, dass Storage-Administratoren weniger über Job-Sicherheit nachdenken müssen, möchte ich hinzufügen, dass auch hier eine sorgfältige Ressourcenplanung notwendig ist. Nachdem die Aufgaben des Tierings kurz umrissen sind, lassen Sie uns betrachten, was von FAST VP zu erwarten ist. Es ist an der Zeit, zur Definition zurückzukehren. Die ersten beiden Worte – Fully Automated – bedeuten, dass die Verteilung auf die Ebenen automatisch erfolgt. Virtual Pool hingegen bezieht sich auf einen Pool von Daten, der Ressourcen aus verschiedenen Speicherebenen umfasst. So sieht das aus:

FAST VP in der Unity-Speicherlösung: So funktioniert es

Um es vorwegzunehmen, FAST VP verschiebt Daten nur innerhalb eines Pools und nicht zwischen mehreren Pools.

Die Aufgaben, die FAST VP löst

Lassen Sie uns zunächst abstrakt darüber sprechen. Wir verfügen über einen Pool und einen Mechanismus, der Daten innerhalb dieses Pools neu zuordnen kann. Angesichts unserer Aufgabe, die maximale Leistung zu erreichen, stellen wir uns die Frage: Welche Wege gibt es, dies zu realisieren? Es gibt mehrere Ansätze, und hier hat FAST VP dem Nutzer eine Menge zu bieten, da die Technologie mehr ist als nur ein einfaches Storage-Tiering. Folgendes kann FAST VP tun, um die Leistung des Pools zu steigern:

  • Datenverteilung über verschiedene Festplattentypen und -ebenen
  • Datenverteilung innerhalb derselben Festplattentypen
  • Datenverteilung bei der Erweiterung des Pools

Bevor wir erörtern, wie diese Aufgaben gelöst werden, müssen wir einige wichtige Fakten über die Funktionsweise von FAST VP wissen. FAST VP arbeitet mit Blöcken einer bestimmten Größe – 256 Megabyte. Dies ist das minimale kontinuierliche "Stück" Daten, das verschoben werden kann. In der Dokumentation wird es so genannt: Slice. Aus der Perspektive von FAST VP bestehen alle RAID-Gruppen aus einer Sammlung solcher "Stücke". Dementsprechend wird alle Ein- und Ausgabestatistik für diese Datenblöcke gesammelt. Warum wurde gerade diese Blockgröße gewählt und wird sie reduziert? Der Block ist ausreichend groß, bietet jedoch einen Kompromiss zwischen der Granularität der Daten (kleinere Blockgröße – genauere Verteilung) und den vorhandenen Berechnungsressourcen: Bei den bestehenden strengen Einschränkungen des Arbeitsspeichers und der großen Anzahl von Blöcken können die Statistiken zu viel Platz einnehmen, und die Anzahl der Berechnungen wächst proportional.

Wie FAST VP Daten im Pool platziert. Richtlinien

Um die Platzierung von Daten im Pool mit aktiviertem FAST VP zu steuern, gibt es folgende Richtlinien:

  • Höchste verfügbare Stufe
  • Auto-Tier
  • Zuerst hoch, dann Auto-Tier (Standard)
  • Niedrigste verfügbare Stufe

Sie beeinflussen sowohl die ursprüngliche Platzierung des Blocks (Daten zum ersten Mal geschrieben) als auch die anschließende Umverteilung. Sobald die Daten jedoch auf den Festplatten gespeichert sind, wird die Umverteilung nach Zeitplan oder manuell initiiert.

Highest Available Tier versucht, einen neuen Block auf der leistungsfähigsten Stufe zu platzieren. Wenn dort nicht genügend Platz vorhanden ist, wird er auf der nächst leistungsfähigen Stufe platziert, jedoch können die Daten später auf eine leistungsfähigere Stufe verschoben werden (wenn Platz vorhanden ist oder andere Daten verdrängt werden). Auto-Tier platziert neue Daten auf verschiedenen Ebenen, abhängig von der Größe des verfügbaren Speicherplatzes, während die Umverteilung je nach Nachfrage und freiem Platz erfolgt. Start High then Auto-Tier ist die Standardrichtlinie und ebenfalls empfohlen. Bei der ursprünglichen Platzierung funktioniert es wie Highest Available Tier, und später erfolgt die Verschiebung der Daten basierend auf ihren Nutzungstatistiken. Die Politik Lowest Available Tier zielt darauf ab, Daten auf der am wenigsten leistungsfähigen Ebene zu platzieren.

Die Datenmigration erfolgt mit niedriger Priorität, um die effektive Nutzung des Speichersystems nicht zu beeinträchtigen. Es gibt jedoch eine Einstellung namens „Datenverschiebungsrate“, die die Priorität ändern kann. Dabei gibt es eine Besonderheit: Nicht alle Datenblöcke haben die gleiche Verteilungsgeschwindigkeit. Zum Beispiel werden Blöcke, die als Metadaten gekennzeichnet sind, zuerst auf ein schnelleres Niveau verschoben. Metadaten sind, um es einfach auszudrücken, „Daten über Daten“ – eine Art zusätzliche Information, die keine Benutzerdaten enthält, sondern deren Beschreibung speichert. Beispielsweise Informationen im Dateisystem darüber, in welchem Block sich eine bestimmte Datei befindet. Daher hängt die Zugriffszeit auf die Daten von der Zugriffszeit auf die Metadaten ab. Da Metadaten in der Regel viel kleiner sind, wird erwartet, dass der Nutzen ihrer Verschiebung auf leistungsfähigere Festplatten größer ist.

Die Kriterien, die Fast VP bei seiner Arbeit verwendet

Das Hauptkriterium für jeden Block, sehr grob gesagt, ist die Charakteristik der "Nachgefragtheit" von Daten, die von der Anzahl der Lese- und Schreibvorgänge eines Datenfragmentes abhängt. Diese Charakteristik nennen wir "Temperatur". Es gibt nachgefragte (heiße) Daten, die "wärmer" sind als nicht nachgefragte. Dies wird regelmäßig, standardmäßig im Intervall von einer Stunde, berechnet.

Die Funktion zur Berechnung der Temperatur hat folgende Eigenschaften:

  • Ohne Eingabe- oder Ausgabevorgänge kühlen die Daten im Laufe der Zeit ab.
  • Bei mehr oder weniger gleichbleibender Last über die Zeit steigt die Temperatur zunächst an und stabilisiert sich dann in einem bestimmten Bereich.

Anschließend werden die oben beschriebenen Richtlinien und der verfügbare Speicherplatz auf jedem Tier berücksichtigt. Zur Veranschaulichung zeige ich ein Bild aus der Dokumentation. Hier sind die Blöcke mit hoher, mittlerer und niedriger Temperatur in Rot, Gelb und Blau gekennzeichnet.

FAST VP in der Unity-Speicherlösung: So funktioniert es

Kehren wir zu den Aufgaben zurück. Nun können wir uns damit befassen, was zur Lösung der FAST VP Aufgaben unternommen wird.

A. Verteilung der Daten auf verschiedene Festplattentypen, Ebenen

Die Hauptaufgabe von FAST VP besteht darin, die Daten je nach der gewählten Strategie auf verschiedene Speicherlevels zu verteilen. Dabei wird zunächst die Platzierungsrichtlinie und anschließend die Temperatur der Blöcke sowie die Größe/Geschwindigkeit der RAID-Gruppen berücksichtigt.

Für die Richtlinien Highest/Lowest Available Tier ist das relativ einfach. Bei den anderen beiden sieht es folgendermaßen aus: Die Daten werden auf verschiedene Levels verteilt, wobei Größe und Leistung der RAID-Gruppen berücksichtigt werden, sodass das Verhältnis der Gesamttemperatur der Blöcke zur hypothetischen maximalen Leistung jeder RAID-Gruppe in etwa gleichbleibt. Dadurch wird die Last recht gleichmäßig verteilt. Häufig benötigte Daten werden auf schnellere Speicher verschoben, seltener genutzte auf langsamere. Idealerweise sollte die Verteilung ungefähr so aussehen:

FAST VP in der Unity-Speicherlösung: So funktioniert es

B. Verteilung der Daten über gleichartige Festplatten

Erinnern Sie sich, dass ich zu Beginn erwähnt habe, dass Speichergeräte aus einem oder mehreren Wie werden Ebenen in einem Pool zusammengeführt? Im Falle einer einzelnen Ebene gibt es auch für FAST VP Aufgaben. Um die Leistung einer Ebene zu maximieren, ist es wünschenswert, die Daten gleichmäßig auf die Festplatten zu verteilen. Dies ermöglicht theoretisch die Erzielung der maximalen Anzahl an IOPS. Die Daten innerhalb einer RAID-Gruppe können als gleichmäßig auf die Festplatten verteilt betrachtet werden, was jedoch zwischen RAID-Gruppen nicht immer der Fall ist. Bei einem Ungleichgewicht wird FAST VP Daten zwischen den RAID-Gruppen proportional zu ihrem Volumen und ihrer „Betriebsleistung“ (in numerischer Form) verschieben. Zur Veranschaulichung zeige ich ein Diagramm zur Rebalancierung unter drei RAID-Gruppen:

FAST VP in der Unity-Speicherlösung: So funktioniert es

B. Datenverteilung bei der Erweiterung des Pools

Diese Aufgabe ist ein Sonderfall der vorherigen und wird durchgeführt, wenn eine RAID-Gruppe zu einem Pool hinzugefügt wird. Damit die neu hinzugefügte RAID-Gruppe nicht ungenutzt bleibt, werden einige Daten auf sie übertragen, was bedeutet, dass die Last auf alle RAID-Gruppen neu verteilt wird.

Ausgleich des SSD-Verschleißes

Mit dem Abgleich der Abnutzung kann FAST VP die Lebensdauer von SSDs verlängern, auch wenn diese Funktion nicht direkt mit Storage Tiering verbunden ist. Da bereits Temperaturdaten vorliegen, wird auch die Anzahl der Schreibvorgänge berücksichtigt. Die Verschiebung von Datenblöcken ist möglich, daher wäre es sinnvoll, dass FAST VP auch diese Aufgabe löst.

Wenn die Anzahl der Schreibvorgänge in einer RAID-Gruppe deutlich höher ist als in einer anderen, verteilt FAST VP die Daten entsprechend der Anzahl der Schreibvorgänge neu. Dies entlastet einerseits und schont die Ressourcen gewisser Laufwerke, während andererseits die "Arbeit" für weniger belastete Laufwerke erhöht wird, was die Gesamtleistung steigert.

Somit übernimmt FAST VP die traditionellen Aufgaben des Storage Tiering und geht noch etwas darüber hinaus. All dies ermöglicht ein effizientes Speichern von Daten im Unity-Speicher-Array.

Einige Ratschläge

  1. Vernachlässigen Sie nicht das Lesen der Dokumentation. Es gibt bewährte Verfahren, und diese funktionieren recht gut. Wenn man sich daran hält, treten in der Regel keine ernsthaften Probleme auf. Die weiteren Ratschläge wiederholen oder ergänzen diese hauptsächlich.
  2. Wenn Sie FAST VP eingerichtet und aktiviert haben, lassen Sie es besser eingeschaltet. Es sollte die Daten in der vorgesehenen Zeit nach und nach verwalten, anstatt einmal im Jahr, was ernsthafte Auswirkungen auf die Leistung anderer Aufgaben hat. In solchen Fällen kann die Datenumverteilung sehr lange dauern.
  3. Achten Sie sorgfältig auf das Zeitfenster für die Relokation. Auch wenn es offensichtlich ist, wählen Sie eine Zeit mit der geringsten Belastung für Unity und stellen Sie sicher, dass Sie genügend Zeit dafür einplanen.
  4. Planen Sie die Erweiterung Ihres Speichersystems rechtzeitig. Dies ist eine allgemeine Empfehlung, die auch für FAST VP wichtig ist. Wenn der verfügbare Speicherplatz sehr gering ist, kann die Datenmigration verlangsamt oder unmöglich werden, insbesondere wenn Sie Punkt 2 vernachlässigt haben.
  5. Wenn Sie den Pool mit aktiviertem FAST VP erweitern, sollten Sie nicht mit den langsamsten Festplatten beginnen. Das bedeutet, dass Sie entweder alle geplanten RAID-Gruppen auf einmal hinzufügen oder zuerst die schnellsten Festplatten einfügen. In diesem Fall wird die Neuzuweisung der Daten auf die neuen "schnellen" Festplatten die allgemeine Geschwindigkeit des Pools erhöhen. Andernfalls, wenn Sie mit "langsamen" Festplatten beginnen, kann es zu einer sehr unangenehmen Situation kommen. Zuerst erfolgt der Transfer der Daten auf die neuen, relativ langsamen Festplatten, und dann, beim Hinzufügen schnellerer Festplatten, in umgekehrter Richtung. Hier gibt es Nuancen, die mit verschiedenen FAST VP-Richtlinien verbunden sind, aber grundsätzlich ist eine solche Situation möglich.

Wenn Sie an diesem Produkt interessiert sind, können Sie Unity kostenlos testen, indem Sie Unity VSA virtual appliance herunterladen.

FAST VP in der Unity-Speicherlösung: So funktioniert es

Abschließend teile ich einige nützliche Links:

Fazit

Ich möchte über viele Dinge sprechen, aber ich verstehe, dass nicht alle Details für den Leser interessant sein werden. Ein Beispiel wäre, detaillierter über die Kriterien zu berichten, nach denen FAST VP Entscheidungen zum Datentransfer trifft, oder über die Prozesse der Analyse von Eingabe- und Ausgabe-statistiken. Auch das Thema der Interaktion mit Dynamischen Pools, was einen eigenen Artikel verdient. Man könnte sogar über die zukünftige Entwicklung dieser Technologie spekulieren. Ich hoffe, es war nicht langweilig und ich habe Sie nicht ermüdet. Bis zum nächsten Mal!

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster