Stor IT Back - Ihr Speicherspezialist
Storage Tiering V1.8 (c) Stor IT Back 2024
Der Begriff Tiering kommt aus dem Englischen und bedeutet
so viel wie Abstufen oder Staffelung. Die Abstufung
besteht bei Durchsatz und Antwortzeit der Medien, also im Allgemeinen der Performance. Bei Speichermedien gibt es aber nicht nur Performanceunterschiede
sondern auch extreme Preisunterschiede. Die SSDs
und NVMe sind am schnellsten, leider aber auch am
teuersten. Die SAS-Festplatten (heute meist mit 10k) sind am zweit-schnellsten,
kostengünstiger als SSDs, aber trotzdem noch recht teurer bei großen Kapazitäten. Danach kommen die
NL-SAS bzw. SATA-Festplatten mit 7.200 Umdr./min und dann Tape als Auslagerung.
Es wäre also die preislich günstigste Lösung bei bester Performance, wenn man die SSD-Platten nur für
hochperformante Daten nutzen würde, die wichtigen und performanten Daten auf SAS Festplatten speichert und alles andere auf
den NL-SAS oder SATA-Platten ausgelagert.
Und genau das ist der Ansatz von Tiering: Maximale Leistung bei minimalen Kosten.
Tier 0: Für wichtige und performante Daten, z.B. Datenbanken
Tier 1: Für wichtige Daten, aber von der Performance nicht so relevant, z.B. Anwendungen oder selten genutzte Datenbanken
Tier 2: Für selten genutzte Daten oder Daten ohne Performance-Ansprüche z.B. Fileserver oder Archive
Tier 3: Daten die sehr selten genutzt werden, alte Fileserverdaten oder Archive, Auslagerung auf Tapes (eher selten)
Neben der Kostenoptimierung kann also zusätzlich auch Energie
eingespart werden.
Anmerkung zu SSDs:
Sie haben einen großen Nachteil: Auf SSDs kann nicht unendlich häufig
geschrieben werden, einzelne Blöcke fallen bei vielen Schreibzugriffen schneller aus.
Aber beim Tiering ist das kein Problem, eine Optimierung kann zusätzlich auch noch auf
die Zugriffsart erfolgen. Schreibzugriffe gehen zum Beispiel erst immer auf Tier 1 und es erfolgt
dann eine Umlagerung auf Tier 0, wenn häufig gelesen wird.
In die Richtung der Kosteneinsparung bei SSDs geht die
Deduplizierung der Daten, gerade auf SSDs. Zusammen
mit der Komprimierung eine häufig eingesetztes Verfahren, um Kosten zu sparen.
Kurz: Storage Tiering ist das Verschieben von Daten auf verschiedene Typen von Speichermedien nach vordefinierten Regeln.
Historie zu den Tiers:
Als der Begriff Tiering mit den Abstufungen erfunden wurde, gab es noch keine SSDs. Daher wurde als Tier 1 die
damals schnellsten FC- und SCSI-Platten festgelegt. Als dann die schnelleren SSDs auf den Markt kamen, behielten
die anderen Stufen ihre Namen, die SSDs wurden zu Tier 0. Es muss auch nicht jede Tier-Stufe genutzt werden, auch Tier 0 in Verbindung mit Tier 2 ist meist möglich.
Beim File Tiering, also dem dateibasierten Verschieben,
wird immer die ganze Datei betrachtet. Zum Beispiel in einem Fileserver: Es
gibt Dateien die häufig genutzt werden, Dateien die selten genutzt werden
und viele Daten die eigentlich nur einmal geschrieben werden, aber danach nie
wieder genutzt werden. Da kann die Aufteilung auf die einzelnen Storage-Tiers
sehr einfach erfolgen. Es muss nur die Änderungs- und Zugriffshäufigkeit
der Datei ermittelt werden und dann eine Verschiebung auf die unterschiedlichen
Plattengruppen vorgenommen werden. Dies wird schon sehr lange unter dem Begriff
HSM (Hierarchisches Speicher-Management)
eingesetzt. Die HSM-Funktion nutzt also das Tiering.
Ein manuelles File-Tiering ist auch möglich. Auf einem Fileserver muss
nur nach alten und nicht genutzten Dateien gesucht werden und diese können
dann verschoben werden. Dann tritt allerdings das Problem auf, das keine die
Daten später wieder finden kann. Also braucht man doch eine HSM Software,
die den Zugriff über die Tiers ermöglicht.
Beim File-Tiering war die Unterscheidung noch sehr einfach, beim Block Tiering
wird es komplizierter. Das File Tiering hat der Fileserver übernommen und
der brauchte nur die Filesystem-Informationen auszuwerten. Beim Block Tiering übernimmt
es das Speichersubsystem und das kennt weder Filesystem noch Dateien, es
kennt nur Blöcke auf den Festplatten.
Und genauso wie im Filesystem ermittelt die Tiering-Anwendung im Speicher-Controller
die Zugriffshäufigkeit von Blöcken und verschiebt mit diesen Informationen
die Blöcke zwischen den Festplatten-Tiers.
Ein Beispiel einer Datenbank: Die Datenbanken bestehen auf der Festplatte aus
Blöcken, die entweder häufig genutzt werden oder aus Blöcken
die nur selten gelesen werden. Ermittelt der Controller eine kleine Nutzungsfrequenz,
so werden die Blöcke auf SATA-Platten (oder NL-SAS) ausgelagert. Bei häufigen Zugriffen
bleiben sie auf schnellen SAS-Platten oder werden später darauf verschoben.
Ist auch SSD-Speicher oder NVMe vorhanden, so können extrem häufig gelesene
Daten auch auf diese SSDs oder NVMe verschoben werden. Da SSDs aber nicht so häufig
beschrieben werden sollen, werden alle Write-I/Os erst mal auf die SAS-Platten
geschrieben und dann analysiert. Das Migrationsverhalten (Tiering)
ist von außen konfigurierbar.
Welche Vorteile bringt diese Methode? Für die Performance wichtige Blöcke
sind auf schnellen Platten, schnelle Platten sind aber teurer in der Anschaffung.
Also sollten sie auch nur für hochperformante Daten genutzt werden, alles
andere geht auf NL-SAS-Platten und spart teuren Speicherplatz. Auch SSDs lassen
sich ideal einsetzen. Wenig Speicherplatz für extrem performante Daten
und wenig Schreibzugriffe auf die SSDs. Ideale Bedingungen
für die SSDs, der Speicherplatz wird passend genutzt und die Schreibzugriffe
werden reduziert.
Beim Block Tiering ist allerdings keine manuelle Verschiebung der Blöcke
möglich, dies muss eine Anwendung im Speicherkontroller vollständig
erledigen. Probleme können auftreten, wenn der Anwender mit der Verteilung
nicht einverstanden ist. Wird zum Beispiel eine Datenbank auf den nächtlichen
Batchbetrieb automatisch optimiert, kann es sein das beim Online-Betrieb am
Tag das Tiering nicht ideal ist. In den meisten Fällen lassen sich solche
Schwankungen durch eine passende Konfiguration verhindern.