NetApp Tech OnTap
NetApp Tech OnTap
     
Details zur Inline-Data-Compaction von NetApp
Skip Shapiro
Skip Shapiro
Technical Marketing Engineer, All Flash FAS und ONTAP Flash
NetApp

In NetApp ONTAP 9 haben wir eine neue Storage-Effizienzfunktion hinzugefügt: die Inline-Data-Compaction. Da dieses Konzept den wenigsten Benutzern bekannt sein wird, möchte ich in diesem Artikel genauer erläutern, wie die Data-Compaction funktioniert und wie sie unsere anderen Storage-Effizienzfunktionen ergänzt.

Die Inline-Data-Compaction geht chronologisch vor, das heißt in der Reihenfolge, in der die Daten vom Storage-Controller empfangen werden. Datenblöcke, die üblicherweise einen gesamten 4-KB-Block des physischen Storage belegen würden, werden bereits im Controller-Speicher verdichtet. Anschließend passen mehrere dieser Datenblöcke in einen einzigen physischen 4-KB-Block. Man kann sich das wie beim Packen eines Koffers oder Rucksacks vorstellen. Es gibt I/Os, die viele überflüssige Nullen oder auch ungenutzten Speicherplatz enthalten. Wir entfernen diese überflüssigen oder leeren Stellen und nutzen den gewonnenen Platz anderweitig. Das bezeichnen wir als Data-Compaction.

Die Inline-Data-Compaction wird bei der Erstellung eines ONTAP Konsistenzpunkts durchgeführt. Es ist ein bisschen wie bei Tetris: Ich habe mehrere kleine I/Os. Kann ich schnell zwei oder mehr I/Os in einem physischen Block zusammenfassen, bevor ich diesen auf Storage-Medien ablege? Für unsere Inline-Data-Compaction wurden diverse Patente eingereicht, denn unsere Methode ist innovativ. Die Data-Compaction ist standardmäßig auf NetApp All Flash FAS Systemen aktiviert und kann optional für FAS Systeme mit reinen Festplattenaggregaten oder NetApp Flash Pool Aggregaten aktiviert werden. In keinem der Szenarien fallen zusätzliche Kosten für die Data-Compaction an. Sie ist eine der Kernfunktionen von ONTAP, ebenso wie die Komprimierung und die Deduplizierung.

Die Data-Compaction ist eine additive Storage-Effizienzkomponente. Sie ist orthogonal zur Deduplizierung und ergänzt die anpassungsfähige Inline-Komprimierung. Bei der letzteren werden Komprimierungsgruppen erstellt, wenn sich die Daten zu mehr als 50 % komprimieren lassen. Nachdem die Daten komprimiert wurden, versuchen wir, diese weiter zu verdichten. Dazu kombinieren wir diverse kleine Blöcke oder alternativ einige große Blöcke mit mehreren kleinen Blöcken in einem einzigen physischen Block. Da sie Teil der Konsistenzpunkterstellung ist, verursacht die reine Data-Compaction nur einen sehr geringen CPU-Overhead: maximal 1 bis 2 %. Ein Controller mit 1 bis 2 % zusätzlicher CPU-Auslastung sollte in einem System niemals Probleme verursachen. Andernfalls ist das System bereits überlastet.

Die Komprimierung und die Data-Compaction ergänzen sich gut, müssen jedoch nicht immer zusammen eingesetzt werden. Ein Volume mit vielen kleinen Dateien eignet sich beispielsweise für die Data-Compaction; eine Komprimierung macht in diesem Fall jedoch kaum einen Unterschied.

Wenn Daten vom Storage-Controller empfangen werden und alle Effizienzfunktionen aktiviert sind, läuft der Storage-Effizienzprozess folgendermaßen ab:

  1. Zuerst ermitteln wir alle Blöcke, die ausschließlich Nullen enthalten. Für diese Blöcke aktualisieren wir nur die Metadaten, denn eigentlich dienen diese Blöcke nur der Referenzzählung.
  2. Anschließend wenden wir die adaptive Inline-Komprimierung an. Mithilfe dieses Prozesses lässt sich sehr gut ermitteln, ob sich ein Block zu mindestens 50 % komprimieren lässt. Bei einer Komprimierung von weniger als 49 % lohnen sich die CPU-Zyklen nicht, denn es gäbe keine Speicherersparnis durch die Data-Compaction.
  3. Anschließend folgt die Inline-Deduplizierung. Diese Funktion wurde mit ONTAP 8.3.2 eingeführt. Hierbei werden nur die Daten im Speicher verglichen und inline dedupliziert. Mit ONTAP 9.0 vergrößern wir den Signatur-Hash-Speicher, sodass auch Daten, die kürzlich auf Storage-Medien gespeichert wurden, berücksichtigt werden. Um die Speicherersparnis durch die Deduplizierung zu maximieren, empfehlen wir, auch eine Hintergrunddeduplizierung (Nachbearbeitung) durchzuführen.
  4. Der letzte Schritt ist die Data-Compaction. Alle Daten, die die adaptive Komprimierung durchlaufen haben oder die für die Komprimierung nicht berücksichtigt wurden, können verdichtet werden. Kleine, dekomprimierte Dateien oder Daten, die durch die adaptive Inline-Komprimierung um mindestens 75 % komprimiert wurden, eigenen sich für die Data-Compaction. Bei der Data-Compaction werden mindestens zwei Datenblöcke in einem einzigen physischen 4-KB-Block zusammengefasst und dann auf dem Storage gespeichert. Je größer die Komprimierungsrate und je kleiner die Dateien, desto größer ist die Data-Compaction-Rate. Durch die Zusammenfassung kleiner Blöcke, die Komprimierung und die Data-Compaction wird also ein Multiplikatoreffekt erzielt.

Es ist häufig schwierig, die Auswirkungen der Data-Compaction im Vorfeld abzusehen. Die Inline-Data-Compaction ist ein heuristischer Prozess innerhalb eines Konsistenzpunkts. Anhand der ersten 100 I/Os wird die Data-Compaction-Rate ermittelt und anschließend wird diese Rate auf die nächsten 100 angewendet. Wenn die Data-Compaction-Rate vergrößert wird, wird diese neue Rate für den restlichen Prozess übernommen. Sinkt die Rate, wird die neue Rate verringert. Und beim nächsten Konsistenzpunkt beginnt der ganze Ablauf wieder von vorne. Es ist ein iterativer Prozess, der die niedrigste CPU-Auslastung und die größte Data-Compaction-Rate erzielen soll.

Abbildung 1) Anwendung der NetApp Inline-Storage-Effizienzfunktionen auf Daten im ONTAP Stack

Quelle: NetApp, 2016

Die Inline-Data-Compaction kann auch ohne Komprimierung oder Deduplizierung eingesetzt werden. Nehmen wir an, wir haben nur eine kleine Dateiumgebung, also Dateien mit maximal 2 KB. Diese kleinen Dateien sind nicht komprimierbar und durch die Deduplizierung wird sich auch kaum eine Speicherersparnis erzielen lassen. Durch die Inline-Data-Compaction kann diese jedoch erreicht werden, wenn mindestens zwei Dateien in einem physischen 4-KB-Block gespeichert werden können.

In Bezug auf die logische Datenreplizierung gilt: Wenn bei den Quell- und Ziel-Volumes die gleichen Effizienzrichtlinien aktiviert sind, wird die Speicherersparnis beibehalten. Ein Beispiel ist ein All Flash FAS System, bei dem alle Storage-Effizienzfunktionen aktiviert sind (Standardkonfiguration) und das auf ein FAS System repliziert wird, das als NetApp SnapVault Ziel genutzt wird. Um die durch die Deduplizierung, adaptive Komprimierung und Inline-Data-Compaction erreichte Speicherersparnis beizubehalten, müssen alle diese Richtlinien auch auf dem Zielsystem aktiviert sein.

Umgekehrt gilt: Wenn auf dem FAS Zielsystem keine dieser Richtlinien zur Speicherersparnis aktiviert ist und Daten von einem ONTAP 9 All Flash FAS System repliziert werden, werden die Daten beim Speichern auf dem Zielsystem unnötig vergrößert. Es gibt dann weder komprimierte noch deduplizierte Blöcke und auch keine verdichteten Daten. Um also die Speicherersparnis beizubehalten, müssen auf den Quell- und Ziel-Volumes die gleichen Storage-Effizienzrichtlinien aktiviert sein. Wir empfehlen als Best Practice bei der Replizierung von einem All Flash FAS Quellsystem die Aktivierung aller Effizienzfunktionen auf den Ziel-Volumes. Auf diese Weise wird die Speicherersparnis auch auf dem Zielsystem beibehalten.

Fassen wir zusammen: Durch die Inline-Data-Compaction werden die logischen Daten in keinster Weise verändert, sie werden nur effizienter zusammengefasst und gespeichert. Sofern es sich nicht um eine Umgebung mit ausschließlich kleinen Dateien handelt, sollte die Data-Compaction immer als Ergänzung der adaptiven Inline-Komprimierung betrachtet werden. Bei teilweise gefüllten I/Os empfiehlt sich die Data-Compaction. Mit dem geringen CPU-Overhead und letztendlich mehr Speicherplatz für Daten ist die Inline-Data-Compaction für All Flash FAS Systeme ein Muss.

Skip Shapiro ist NetApp Technical Marketing Engineer und für NetApp All Flash FAS, Flash Pool und Flash Cache Technologie zuständig. Er wird auf den NetApp Insight Konferenzen in Las Vegas und Berlin je zwei technische Vorträge halten. Weitere Informationen finden Sie unter den folgenden Links:

NetApp Insight Berlin (14. bis 17. November):
NetApp ONTAP 9: Vorhersehbare Performance in SLA-basierten Unternehmensumgebungen
Technische Details von All Flash FAS

November 2016

 
Kontakt   |   Bezugsquelle   |   Feedback   |   Karriere  |   Abonnements   |   Datenschutzrichtlinie   |   © 2016 NetApp