FAST VP auf Unity-Speicher: So funktioniert es

Heute werden wir über eine interessante Technologie sprechen, die in Unity/Unity XT-Speichersystemen implementiert ist – FAST VP. Wenn Sie zum ersten Mal von Unity hören, können Sie sich über den Link am Ende des Artikels die Systemeigenschaften ansehen. Ich habe über ein Jahr lang im Dell EMC-Projektteam an FAST VP gearbeitet. Heute möchte ich ausführlicher auf diese Technologie eingehen und einige Details ihrer Umsetzung verraten. Natürlich nur diejenigen, die offengelegt werden dürfen. Wenn Sie sich für Fragen der effizienten Datenspeicherung interessieren oder die Dokumentation einfach nicht vollständig verstanden haben, dann wird dieser Artikel sicherlich nützlich und interessant sein.

FAST VP auf Unity-Speicher: So funktioniert es

Ich sage Ihnen gleich, was nicht im Material enthalten sein wird. Es erfolgt keine Suche nach Mitbewerbern und kein Vergleich mit ihnen. Ich habe auch nicht vor, über ähnliche Open-Source-Technologien zu sprechen, da der neugierige Leser sie bereits kennt. Und natürlich werde ich keine Werbung machen.

Speicher-Tiering. Ziele und Vorgaben von FAST VP

FAST VP steht für Fully Automated Storage Tiering for Virtual Pool. Etwas schwierig? Kein Problem, wir finden es jetzt heraus. Tiering ist eine Möglichkeit zur Organisation der Datenspeicherung, bei der es mehrere Ebenen (Tiers) gibt, auf denen diese Daten gespeichert werden. Jeder hat seine eigenen Eigenschaften. Das Wichtigste: Leistung, Volumen und Preis der Speicherung einer Informationseinheit. Natürlich gibt es eine Beziehung zwischen ihnen.

Ein wichtiges Merkmal des Tierings besteht darin, dass der Zugriff auf Daten unabhängig von der Speicherebene, auf der sie sich aktuell befinden, einheitlich bereitgestellt wird und die Größe des Pools der Summe der Größen der darin enthaltenen Ressourcen entspricht. Hier liegen die Unterschiede zum Cache: Die Größe des Caches wird nicht zum Gesamtvolumen der Ressource (in diesem Fall des Pools) addiert, und die Cache-Daten duplizieren ein Fragment der Hauptmediendaten (oder werden dupliziert, wenn dies der Fall ist). (Daten aus dem Cache wurden noch nicht geschrieben). Auch die Verteilung der Daten nach Ebenen bleibt dem Benutzer verborgen. Das heißt, er sieht nicht genau, welche Daten sich auf welcher Ebene befinden, obwohl er dies indirekt beeinflussen kann, indem er Richtlinien festlegt (mehr dazu später).

Schauen wir uns nun die Funktionen der Implementierung von Storage Tiering in Unity an. Unity hat 3 Ebenen oder Stufen:

  • Extreme Leistung (SSDs)
  • Leistung (SAS-Festplatte 10/15 U/min)
  • Kapazität (NL-SAS-Festplatte 7200 U/min)

Die Darstellung erfolgt in absteigender Reihenfolge nach Leistung und Preis. Extreme Leistung umfasst nur Solid-State-Laufwerke (SSDs). Die anderen beiden Stufen umfassen Magnetplattenlaufwerke, die sich in der Drehzahl und damit in der Leistung unterscheiden.

Speichermedien gleicher Stufe und gleicher Größe werden zu einem RAID-Array zusammengefasst und bilden eine RAID-Gruppe (RAID-Gruppe, abgekürzt RG); Informationen zu verfügbaren und empfohlenen RAID-Levels finden Sie in der offiziellen Dokumentation. Aus RAID-Gruppen aus einer oder mehreren Ebenen werden Speicherpools gebildet, aus denen dann freier Speicherplatz verteilt wird. Und aus dem Pool wird Speicherplatz für Dateisysteme und LUNs zugewiesen.

FAST VP auf Unity-Speicher: So funktioniert es

Warum brauche ich Tiering?

Kurz und abstrakt: mit einem Minimum an Ressourcen bessere Ergebnisse zu erzielen. Genauer gesagt wird das Ergebnis normalerweise als eine Reihe von Speichersystemeigenschaften verstanden – Geschwindigkeit und Zugriffszeit, Speicherkosten und andere. Das Minimum an Ressourcen bedeutet den geringsten Aufwand: Geld, Energie usw. FAST VP implementiert Mechanismen zur Neuverteilung von Daten über verschiedene Ebenen in Unity/Unity XT-Speichersystemen. Wenn Sie mir glauben, können Sie den nächsten Absatz überspringen. Im Übrigen erzähle ich Ihnen etwas mehr.

Durch die ordnungsgemäße Verteilung von Daten auf Speicherebenen können Sie Gesamtspeicherkosten einsparen, indem Sie die Zugriffsgeschwindigkeit auf einige selten verwendete Informationen opfern, und die Leistung verbessern, indem Sie häufig verwendete Daten auf schnellere Medien verschieben. Hier könnte jemand argumentieren, dass ein normaler Administrator auch ohne Tiering weiß, wo er welche Daten ablegen muss, welche wünschenswerten Eigenschaften ein Speichersystem für seine Aufgabe hat usw. Das ist zweifellos richtig, aber die manuelle Verteilung von Daten hat ihre Nachteile:

  • erfordert Zeit und Aufmerksamkeit des Administrators;
  • Es ist nicht immer möglich, Speicherressourcen „neu zu beschaffen“, um sie an veränderte Bedingungen anzupassen;
  • ein wichtiger Vorteil entfällt: einheitlicher Zugriff auf Ressourcen, die sich auf verschiedenen Speicherebenen befinden.

Damit sich Speicheradministratoren weniger Sorgen um die Arbeitsplatzsicherheit machen müssen, füge ich hinzu, dass auch hier eine kompetente Ressourcenplanung erforderlich ist. Nachdem die Aufgaben des Tierings nun kurz umrissen wurden, werfen wir einen Blick darauf, was Sie von FAST VP erwarten können. Jetzt ist es an der Zeit, zur Definition zurückzukehren. Die ersten beiden Wörter – Fully Automated – werden wörtlich mit „vollautomatisiert“ übersetzt und bedeuten, dass die Verteilung zwischen den Ebenen automatisch erfolgt. Nun, Virtual Pool ist ein Datenpool, der Ressourcen aus verschiedenen Speicherebenen umfasst. So sieht es aus:

FAST VP auf Unity-Speicher: So funktioniert es

Mit Blick auf die Zukunft möchte ich sagen, dass FAST VP Daten nur innerhalb eines Pools und nicht zwischen mehreren Pools verschiebt.

Von FAST VP gelöste Probleme

Lassen Sie uns zunächst abstrakt sprechen. Wir haben einen Pool und einen Mechanismus, der Daten innerhalb dieses Pools neu verteilen kann. Denken wir daran, dass unser Ziel darin besteht, maximale Produktivität zu erreichen, und fragen wir uns: Wie können wir dies erreichen? Es kann mehrere davon geben, und hier hat FAST VP dem Benutzer etwas zu bieten, da es sich bei der Technologie um mehr als nur Speicher-Tiering handelt. Hier sind einige Möglichkeiten, wie FAST VP die Poolleistung steigern kann:

  • Verteilung der Daten auf verschiedene Festplattentypen und Ebenen
  • Verteilen von Daten auf Festplatten desselben Typs
  • Datenverteilung beim Erweitern des Pools

Bevor wir uns ansehen, wie diese Aufgaben gelöst werden, müssen wir einige notwendige Fakten über die Funktionsweise von FAST VP kennen. FAST VP arbeitet mit Blöcken einer bestimmten Größe – 256 Megabyte. Dies ist der kleinste zusammenhängende „Datenblock“, der verschoben werden kann. In der Dokumentation nennen sie es so: Slice. Aus der Sicht von FAST VP bestehen alle RAID-Gruppen aus einer Reihe solcher „Teile“. Dementsprechend werden alle I/O-Statistiken für solche Datenblöcke akkumuliert. Warum wurde diese Blockgröße gewählt und wird sie reduziert? Der Block ist ziemlich groß, aber dies ist ein Kompromiss zwischen der Granularität der Daten (kleinere Blockgröße bedeutet eine genauere Verteilung) und den verfügbaren Rechenressourcen: Angesichts der bestehenden strengen Beschränkungen für RAM und einer großen Anzahl von Blöcken können Statistikdaten Platz beanspruchen zu viel, und die Anzahl der Berechnungen wird proportional zunehmen.

Wie FAST VP dem Pool Daten zuweist. Politiker

Um die Platzierung von Daten in einem Pool mit aktiviertem FAST VP zu steuern, gibt es die folgenden Richtlinien:

  • Höchste verfügbare Stufe
  • Auto-Stufe
  • Hoch beginnen, dann Auto-Stufe (Standard)
  • Niedrigste verfügbare Stufe

Sie wirken sich sowohl auf die anfängliche Blockzuweisung (Daten werden zuerst geschrieben) als auch auf die anschließende Neuzuweisung aus. Wenn sich die Daten bereits auf Datenträgern befinden, wird die Neuverteilung nach einem Zeitplan oder manuell eingeleitet.

Höchste verfügbare Stufe versucht, einen neuen Block auf der leistungsstärksten Stufe zu platzieren. Wenn darauf nicht genügend Platz vorhanden ist, werden sie auf der nächstproduktiveren Ebene platziert. Anschließend können die Daten jedoch auf eine produktivere Ebene verschoben werden (sofern Platz vorhanden ist oder indem andere Daten verdrängt werden). Auto-Tier platziert neue Daten je nach verfügbarem Speicherplatz auf unterschiedlichen Ebenen und wird je nach Bedarf und freiem Speicherplatz neu verteilt. „Start High then Auto-Tier“ ist die Standardrichtlinie und wird ebenfalls empfohlen. Bei der ersten Platzierung fungiert es als höchste verfügbare Ebene, und dann werden die Daten abhängig von ihren Nutzungsstatistiken verschoben. Die Richtlinie „Niedrigster verfügbarer Tier“ zielt darauf ab, Daten auf dem am wenigsten produktiven Tier zu platzieren.

Die Datenübertragung erfolgt mit niedriger Priorität, um den nützlichen Betrieb des Speichersystems nicht zu beeinträchtigen. Es gibt jedoch eine Einstellung „Datenverschiebungsrate“, die die Priorität ändert. Hier gibt es eine Besonderheit: Nicht alle Datenblöcke haben die gleiche Umverteilungsreihenfolge. Beispielsweise werden als Metadaten markierte Blöcke zuerst auf eine schnellere Ebene verschoben. Metadaten sind sozusagen „Daten über Daten“, also Zusatzinformationen, die keine Nutzerdaten sind, sondern deren Beschreibung speichern. Beispielsweise Informationen im Dateisystem darüber, in welchem ​​Block sich eine bestimmte Datei befindet. Das bedeutet, dass die Geschwindigkeit des Zugriffs auf Daten von der Geschwindigkeit des Zugriffs auf Metadaten abhängt. Da Metadaten in der Regel viel kleiner sind, dürften die Vorteile der Verlagerung auf Festplatten mit höherer Leistung größer sein.

Kriterien, die Fast VP bei seiner Arbeit verwendet

Das Hauptkriterium für jeden Block ist, ganz grob gesagt, die Charakteristik des „Bedarfs“ der Daten, der von der Anzahl der Lese- und Schreibvorgänge eines Datenfragments abhängt. Wir nennen diese Eigenschaft „Temperatur“. Es gibt nachgefragte (heiße) Daten, die „heißer“ sind als nicht beanspruchte Daten. Die Berechnung erfolgt periodisch, standardmäßig im Abstand von einer Stunde.

Die Temperaturberechnungsfunktion hat folgende Eigenschaften:

  • Ohne E/A „kühlen“ die Daten mit der Zeit ab.
  • Bei annähernd gleicher Belastung im Zeitverlauf steigt die Temperatur zunächst an und stabilisiert sich dann in einem bestimmten Bereich.

Als nächstes werden die oben beschriebenen Richtlinien und der freie Speicherplatz auf jeder Ebene berücksichtigt. Zur Verdeutlichung stelle ich ein Bild aus der Dokumentation zur Verfügung. Hier zeigen die Farben Rot, Gelb und Blau Blöcke mit hohen, mittleren bzw. niedrigen Temperaturen an.

FAST VP auf Unity-Speicher: So funktioniert es

Aber kommen wir zurück zu den Aufgaben. Wir können also beginnen zu analysieren, was getan wird, um FAST VP-Probleme zu lösen.

A. Verteilung der Daten auf verschiedene Festplattentypen und Ebenen

Eigentlich ist dies die Hauptaufgabe von FAST VP. Der Rest ist gewissermaßen eine Ableitung davon. Abhängig von der gewählten Richtlinie werden die Daten auf verschiedene Speicherebenen verteilt. Zunächst wird die Platzierungsrichtlinie berücksichtigt, dann die Blocktemperatur und die Größe/Geschwindigkeit von RAID-Gruppen.

Bei den Policen mit der höchsten/niedrigsten verfügbaren Stufe ist alles ganz einfach. Bei den anderen beiden ist dies der Fall. Die Verteilung der Daten auf verschiedene Ebenen erfolgt unter Berücksichtigung der Größe und Leistung der RAID-Gruppen: so dass das Verhältnis der gesamten „Temperatur“ der Blöcke zur „bedingten Maximalleistung“ jeder RAID-Gruppe ungefähr gleich ist. Dadurch wird die Last mehr oder weniger gleichmäßig verteilt. Mehr nachgefragte Daten werden auf schnelle Medien verschoben und selten genutzte Daten werden auf langsamere Medien verschoben. Idealerweise sollte die Verteilung etwa so aussehen:

FAST VP auf Unity-Speicher: So funktioniert es

B. Verteilung von Daten auf Festplatten desselben Typs

Denken Sie daran, am Anfang habe ich dieses Speichermedium geschrieben ein oder mehr Ebenen werden zu einem Pool zusammengefasst? Im Falle einer einzelnen Ebene hat FAST VP auch Arbeit zu erledigen. Um auf jeder Ebene maximale Leistung zu erzielen, empfiehlt es sich, die Daten gleichmäßig auf die Festplatten zu verteilen. Dadurch können Sie (theoretisch) die maximale Menge an IOPS erreichen. Daten innerhalb einer RAID-Gruppe können als gleichmäßig auf die Festplatten verteilt angesehen werden, dies ist jedoch nicht immer zwischen RAID-Gruppen der Fall. Im Falle eines Ungleichgewichts verschiebt FAST VP Daten zwischen RAID-Gruppen im Verhältnis zu ihrem Volumen und ihrer „bedingten Leistung“ (in numerischen Zahlen). Der Übersichtlichkeit halber zeige ich ein Neuausgleichsschema zwischen drei RAID-Gruppen:

FAST VP auf Unity-Speicher: So funktioniert es

B. Datenverteilung beim Erweitern des Pools

Diese Aufgabe ist ein Sonderfall der vorherigen und wird ausgeführt, wenn dem Pool eine RAID-Gruppe hinzugefügt wird. Um sicherzustellen, dass die neu hinzugefügte RAID-Gruppe nicht im Leerlauf bleibt, werden einige Daten auf sie übertragen, wodurch die Last auf alle RAID-Gruppen neu verteilt wird.

SSD-Verschleißausgleich

Mithilfe von Wear Leveling kann FAST VP die Lebensdauer einer SSD verlängern, obwohl diese Funktion nicht direkt mit Storage Tiering zusammenhängt. Da Temperaturdaten bereits verfügbar sind, auch die Anzahl der Schreibvorgänge berücksichtigt wird und wir wissen, wie Datenblöcke verschoben werden, wäre es logisch, dass FAST VP dieses Problem löst.

Wenn die Anzahl der Einträge in einer RAID-Gruppe die Anzahl der Einträge in einer anderen erheblich übersteigt, verteilt FAST VP die Daten entsprechend der Anzahl der Schreibvorgänge neu. Dies entlastet einerseits und schont die Ressourcen einiger Festplatten, andererseits erhöht es die „Arbeit“ für weniger belastete Festplatten und erhöht so die Gesamtleistung.

Auf diese Weise nimmt FAST VP die traditionellen Herausforderungen des Storage Tiering an und leistet noch etwas mehr. All dies ermöglicht Ihnen eine recht effiziente Datenspeicherung im Unity-Speichersystem.

Ein paar Tipps

  1. Vergessen Sie nicht, die Dokumentation zu lesen. Es gibt Best Practices und sie funktionieren recht gut. Wenn Sie diese befolgen, treten in der Regel keine ernsthaften Probleme auf. Der Rest der Ratschläge wiederholt oder ergänzt sie grundsätzlich.
  2. Wenn Sie FAST VP konfiguriert und aktiviert haben, ist es besser, es aktiviert zu lassen. Lassen Sie es die Daten in der vorgegebenen Zeit und nach und nach als einmal im Jahr verteilen und haben Sie ernsthafte Auswirkungen auf die Leistung anderer Aufgaben. In solchen Fällen kann die Neuverteilung der Daten lange dauern.
  3. Seien Sie vorsichtig bei der Auswahl eines Umzugsfensters. Obwohl dies offensichtlich ist, versuchen Sie, einen Zeitpunkt mit der geringsten Belastung für Unity zu wählen und einen ausreichenden Zeitraum einzuplanen.
  4. Planen Sie die Erweiterung Ihres Speichersystems, und zwar rechtzeitig. Dies ist eine allgemeine Empfehlung, die auch für FAST VP wichtig ist. Wenn der freie Speicherplatz sehr gering ist, verlangsamt sich die Datenbewegung oder wird unmöglich. Vor allem, wenn Sie Punkt 2 vernachlässigt haben.
  5. Wenn Sie einen Pool mit aktiviertem FAST VP erweitern, sollten Sie nicht mit den langsamsten Festplatten beginnen. Das heißt, wir fügen entweder alle geplanten RAID-Gruppen auf einmal hinzu oder fügen zuerst die schnellsten Festplatten hinzu. In diesem Fall erhöht die Umverteilung der Daten auf neue „schnelle“ Festplatten die Gesamtgeschwindigkeit des Pools. Andernfalls kann das Starten mit „langsamen“ Festplatten zu einer sehr unangenehmen Situation führen. Zunächst werden die Daten auf neue, relativ langsame Festplatten übertragen und dann, wenn schnellere hinzukommen, in die entgegengesetzte Richtung. Hier gibt es Nuancen im Zusammenhang mit verschiedenen FAST VP-Richtlinien, aber im Allgemeinen ist eine ähnliche Situation möglich.

Wenn Sie sich dieses Produkt ansehen, können Sie Unity kostenlos testen, indem Sie die virtuelle Unity VSA-Appliance herunterladen.

FAST VP auf Unity-Speicher: So funktioniert es

Am Ende des Materials teile ich einige nützliche Links:

Abschluss

Ich würde gerne über viel schreiben, aber ich verstehe, dass nicht alle Details für den Leser interessant sein werden. Sie können beispielsweise ausführlicher über die Kriterien sprechen, nach denen FAST VP Entscheidungen über die Datenübertragung trifft, über die Prozesse zur Analyse der E/A-Statistiken. Auch das Thema Interaktion mit Dynamische Pools, und das verdient einen eigenen Artikel. Sie können sogar über die Entwicklung dieser Technologie träumen. Ich hoffe, es war nicht langweilig und ich habe dich nicht gelangweilt. Wir sehen uns wieder!

Source: habr.com

Kommentar hinzufügen