3dmentat - Fotolia

Storage-Kapazitäten richtig einschätzen und effizient nutzen

Umesh Maheshwari erläutert die unterschiedlichen Kapazitätsformen, Provisioning-Typen und wie Datenreduktion Effizienz der Arrays bringen kann.

Bei der Bereitstellung der Infrastruktur für ein Rechenzentrum ist die Speicher-Kapazität ein entscheidender Faktor, den es zu berücksichtigen gilt. Allerdings verwenden Hersteller oft unterschiedliche Bezeichnungen für die Kapazität ihrer Speichersysteme. Nur wer weiß, was die verschiedenen Angaben konkret bedeuten, kann die Infrastruktur gemäß den Anforderungen eines Unternehmens dimensionieren und die Kosten pro Gigabyte Speicherkapazität zwischen den einzelnen Systemen vergleichen.

Aus den Kapazitätsangaben für moderne Speichersysteme die richtigen Schlüsse zu ziehen, kann mitunter kompliziert sein, da die Hersteller die Kapazität ihrer Produkte teilweise mit unterschiedlichen Kennzahlen anpreisen. Die wichtigsten Bezeichnungen sind:

  • Rohkapazität: Die Rohkapazität (raw capacity) bezeichnet die Gesamtkapazität der Speichermedien in einem System. Enthält das System beispielsweise 20 Laufwerke mit jeweils fünf TB, beträgt die Rohkapazität 100 TB.
  • Nutzbare Kapazität: Die nutzbare Kapazität (useable capacity) gibt an, welche Datenmenge ohne Datenreduktion auf dem System gespeichert werden kann. Sie ist niedriger als die Rohkapazität, da ein gewisser Overhead auf RAID und das Over-Provisioning von Flash-Speicher entfällt.
  • Effektive Kapazität: Die effektive Kapazität (effective capacity) gibt Aufschluss darüber, welche Datenmenge auf dem System gespeichert werden kann, wenn Datenreduktionsverfahren wie Komprimierung und Deduplizierung angewandt werden. Für gewöhnlich ist die effektive größer als die nutzbare Kapazität.

Gleichermaßen hilfreich sowohl für Anbieter als auch für Anwender ist das Begriffsschema „nutzbare Kapazität“ gleich Kapazität vor der Datenreduktion und „effektive Kapazität“ gleich Kapazität nach der Datenreduktion. Die Unterscheidung zwischen diesen beiden Kennzahlen ist wichtig, da sich die nutzbare Kapazität zuverlässig berechnen lässt, während die effektive Kapazität je nach Art der Daten variiert und dieser Wert somit nicht immer aussagekräftig ist. Was aber bedeuten die verschiedenen Kennzahlen konkret?

Rohkapazität

Mit Angaben zur Rohkapazität ist in der Praxis wenig anzufangen. Bei manchen Anbietern richten sich die Preise der Systeme nach deren Rohkapazität; für die Anwender ist jedoch die Angabe der nutzbaren Kapazität relevant, da diese deutlich niedriger sein kann als die Rohkapazität.

Eine Notiz am Rande: Die Rohkapazität wird in der Regel als dezimaler Terabyte-Wert (1012 Byte) dargestellt, die nutzbare Kapazität entweder als dezimaler oder als binärer Terabyte-Wert (240 Byte). Ein binäres Terabyte, für das mitunter auch die Abkürzung „TiB“ verwendet wird, ist rund zehn Prozent größer als ein dezimales Terabyte. Dadurch kann die nutzbare Kapazität kleiner wirken, obwohl sie nicht wirklich geringer ausfällt. Dieser Unterschied ist im Gegensatz zur tatsächlichen Verringerung der nutzbaren Kapazität durch den System-Overhead vergleichsweise gering.

Nutzbare Kapazität

Neben einem gewissen Overhead für RAID (Redunt Array of Independent Disks) benötigt das System Over-Provisioning von Flash-Speicher, Metadaten, Systemsoftware sowie Systemprotokolle, weshalb die nutzbare Kapazität niedriger als die Rohkapazität ist. Konkreter lässt sich das Verhältnis zwischen nutzbarer und Rohkapazität als „nutzbarer Anteil“ bezeichnen, der per definitionem kleiner oder gleich eins ist.

nutzbarer Anteil = nutzbare Kapazität/Rohkapazität

Dieser nutzbare Anteil wird in der Regel am stärksten durch RAID und das Over-Provisioning von Flash-Speicher beeinflusst. Durch letzteres verringern die Hersteller den internen Schreibfaktor (Write Amplification), der durch die automatische Speicherbereinigung (Garbage Collection) entsteht. Abhängig von den Anforderungen der jeweiligen Systemarchitektur setzen unterschiedliche Hersteller Over-Provisioning in unterschiedlichem Ausmaß ein. Over-Provisioning ist das Gegenteil von Thin-Provisioning, das heißt die zugrundeliegende Kapazität ist höher als die angegebene Kapazität.

Abbildung 1

Die Auswirkungen von RAID sind unterschiedlich und hängen davon ab, ob ein System mit Spiegelung oder mit Parität verwendet wird. Bei RAID-Array mit dreifacher Spiegelung verringert sich der nutzbare Anteil auf den Faktor 0,33, bei einem System mit Parität hingegen kann der nutzbare Anteil wesentlich höher sein. Enthält eine RAID-Gruppe mit doppelter Parität beispielsweise zehn Festplatten, ergibt sich ein nutzbarer Anteil von (10-2)/10 beziehungsweise 0,8. RAID-Systeme mit dreifacher Spiegelung beziehungsweise mit doppelter Parität bieten eine ähnliche Fehlertoleranz, da beide den Ausfall von zwei Festplatten überbrücken können.

Bei manchen Speichersystemen stehen verschiedene Ebenen zur Auswahl, da beim Einsatz von RAID mit Parität die Geschwindigkeit von zufälligen Schreibvorgängen, bedingt durch das interne Design, verringert wird. In manchen Fällen sind die Performance-Einbußen so groß, dass für die meisten Anwendungen Systeme mit Spiegelung verwendet werden müssen, obwohl das System theoretisch RAID mit Parität unterstützt. Es kommt sogar vor, dass der Hersteller mit einer hohen nutzbaren Kapazität (etwa durch RAID mit Parität) und einer hohen Leistung (etwa durch RAID mit Spiegelung) wirbt, obwohl die Anwendungen nicht beide Funktionen gleichzeitig nutzen können.

Manche Systeme verwenden RAID auf einem einzelnen Knoten, bei anderen ist die Nutzung auf mehrere Knoten verteilt, wieder andere verwenden eine Kombination aus beidem. Für die Verteilung über mehrere Knoten wird anstelle von RAID mit Spiegelung häufig die Bezeichnung „Remote-Spiegelung“, für RAID mit Parität oft auch der Begriff „Erasure Coding“ (fehlertolerante Codierung) verwendet. Unabhängig davon, ob RAID auf einem Knoten genutzt oder über mehrere Knoten verteilt wird, erzielt ein System mit Parität einen höheren nutzbaren Quotienten als eines mit Spiegelung. Da bei einer Verteilung auf mehrere Knoten jedoch die Parität die Performance noch stärker beeinträchtigt, verwenden die meisten Systeme dieser Art ausschließlich RAID mit Spiegelung. Systeme mit Parität kommen allenfalls für Archivierungsanwendungen zum Einsatz, die vorwiegend sequentielle Schreibvorgänge durchführen.

Effektive Kapazität mit Datenreduktion

Unter den Begriff „Datenreduktion“ fallen Verfahren, die zur Verringerung des von einem Data-Set benötigten Speicherplatzes dienen. Hierzu zählen beispielsweise Komprimierung und Deduplizierung. Als „Datenreduktionsverhältnis“ oder auch „Datenreduktionsrate“ wird das Verhältnis zwischen dem von einem Data-Set ohne Datenreduktion benötigten Speicherplatz und dem vom gleichen Data-Set nach der Datenreduktion benötigten Platz bezeichnet. Der Wert ist hierbei immer größer oder gleich eins. Wendet ein System mehrere Verfahren zur Datenreduktion an, ergeben die Reduktionsraten der einzelnen Verfahren miteinander multipliziert das gesamte Datenreduktionsverhältnis. Wenn beispielsweise der benötigte Speicherplatz durch Komprimierung um den Faktor 2 und durch Deduplizierung um den Faktor 2,5 verringert wird, ergibt sich ein Gesamtreduktionsverhältnis von 2×2,5 beziehungsweise 5.

Während die nutzbare Kapazität durch den RAID-Overhead und anderen System-Overhead verringert wird, führt die Datenreduktion zu einer Erhöhung der effektiven Kapazität. Die effektive Kapazität eines Systems berechnet sich durch die Multiplikation von Rohkapazität, nutzbarem Anteil sowie Datenreduktionsrate.

effektive Kapazität = Rohkapazität * nutzbarer Anteil * Datenreduktionsrate

Die Speichereffizienz eines Systems lässt sich demnach als Verhältnis zwischen effektiver und Rohkapazität definieren. Dieses Verhältnis, das an dieser Stelle als „effektives Verhältnis“ bezeichnet werden soll, ergibt sich aus dem nutzbaren Anteil multipliziert mit der Datenreduktionsrate. Beträgt der nutzbare Anteil beispielsweise 0,8 und die Datenreduktionsrate 5, beläuft sich das effektive Verhältnis auf 0,8×5 beziehungsweise 4.

effektives Verhältnis = effektive Kapazität/Rohkapazität = nutzbarer Anteil * Datenreduktionsverhältnis

Während die nutzbare Kapazität eines Systems in der Regel bekannt ist, lässt sich die effektive Kapazität meist nur schwer berechnen. Auf den meisten Systemen wird die nutzbare Kapazität direkt angezeigt oder kann relativ präzise berechnet werden, indem die Rohkapazität mit dem nutzbaren Anteil multipliziert wird. Dieser Anteil wiederum lässt sich anhand der RAID-Konfiguration relativ zuverlässig bestimmen. Die Berechnung des Datenreduktionsverhältnisses hingegen gestaltet sich deutlich komplizierter, was wiederum dazu führt, dass sich das effektive Verhältnis nur schwer bestimmen lässt. Hierfür gibt es verschiedene Gründe:

Zunächst einmal hängt das Datenreduktionsverhältnis stark davon ab, wie sehr sich bestimmte Datensätze auf dem System reduzieren lassen. Sowohl der Komprimierungs- als auch der Deduplizierungsgrad können erheblich variieren, wobei letzterer den größten Schwankungen unterworfen ist. Grund hierfür ist, dass die Komprimierung eine „lokale“ Funktion ist und in der Regel jeweils auf Datenblöcke von maximal einem MB angewandt wird. Daher kann der Komprimierungsgrad oft anhand des Datentyps ermittelt werden: Ausführbare Dateien werden um den Faktor 1,5 komprimiert, Textdateien um den Faktor 2 und relationale Datenbanken um den Faktor 2 bis 6. Audio- und Videodateien oder Bilder werden in der Regel nicht komprimiert, da bereits in der Anwendung selbst eine Komprimierung erfolgt.

Die Deduplizierung hingegen wird eher auf „globaler“ Ebene vorgenommen, wobei in der Regel zahlreiche Blöcke oder Objekte zusammen dedupliziert werden. Ausschlaggebend ist also nicht nur der Datentyp, sondern auch der tatsächliche Datensatz. Aus diesem Grund kann der Deduplizierungs-Grad innerhalb einer Anwendung sowie im Verlauf der Zeit variieren. Bei einem System, auf dem viele Images virtueller Maschinen gespeichert werden, hängt das Deduplizierungs-Verhältnis beispielsweise von der Anzahl der ähnlichen Images ab. Wenn die Images unterschiedlich aktualisiert werden, kann sich das Verhältnis im Lauf der Zeit ändern.

Zweitens gilt: Werden mehrere Datensätze auf demselben System gespeichert, ist das gesamte Reduktionsverhältnis nicht einfach der Durchschnitt der einzelnen Reduktionsverhältnisse. Es wird vielmehr von den umfangreicheren Datensätzen und den Datensätzen bestimmt, die sich nicht gut reduzieren lassen. Zur Veranschaulichung soll ein System dienen, auf dem Images virtueller Maschinen mit einem Datenvolumen von zehn TB und einem Datenreduktionsverhältnis 20 sowie Datenbanken mit einem Datenvolumen von 100 TB und dem Reduktionsverhältnis 2 gespeichert sind. Den größten Einfluss auf das Gesamtreduktionsverhältnis haben hier die Datenbanken. Das Verhältnis berechnet sich wie folgt: (10+100)/(10/20+100/2) beziehungsweise 2,2.

Selbst wenn zwei Datensätze gleich groß sind, aber ein unterschiedliches Reduktionsverhältnis aufweisen, liegt das gesamte Reduktionsverhältnis näher bei dem niedrigeren Wert. Als Beispiel dient das bereits erwähnte System, auf dem Images virtueller Maschinen mit einem Datenvolumen von zehn TB und einem Datenreduktionsverhältnis 20 sowie Datenbanken mit einem Datenvolumen von 100 TB und dem Reduktionsverhältnis 2 gespeichert sind. Man könnte folgern, dass das gesamte Reduktionsverhältnis dem Mittelwert zwischen 20 und 2 entspricht, also 11. Tatsächlich aber fällt es wesentlich geringer aus: (10+10)/(10/20+10/2) beziehungsweise 3,6.

Aus mathematischer Sicht ist das gesamte Reduktionsverhältnis nicht das arithmetische, sondern das harmonische Mittel der datensatzspezifischen Reduktionsverhältnisse gewichtet nach Datensatzgröße. Weist also ein Datensatz ein sehr hohes Reduktionsverhältnis auf, wirkt sich dies nur eingeschränkt positiv auf das Gesamtverhältnis aus, wenn es noch weitere Datensätze mit weniger gutem Reduktionsverhältnis gibt. Dieser Effekt ist ein Beispiel für das Amdahlsche Gesetz, nach dem der Leistungszuwachs einzelner Komponenten eines Systems nicht linear auf den Leistungszuwachs des Gesamtsystems übertragbar ist.

Drittens sind Speichersysteme unterschiedlich gut in der Lage, die Datenmenge zu reduzieren und gleichzeitig eine hohe Performance aufrechtzuerhalten. Auf diesem Weg können manche Systeme Daten zwar komprimieren, jedoch nimmt dadurch bei zufälligen Schreibvorgängen die Leistung derart stark ab, dass die Hersteller empfehlen, die Komprimierung für Anwendungen wie transaktionale Datenbanken zu deaktivieren – was schade ist, da sich Datenbanken äußerst gut komprimieren lassen. Ebenso verfügen manche Systeme über eine Inline-Deduplizierung, können jedoch Leistungsengpässe nicht verhindern, wenn Daten über einen längeren Zeitraum eingehen. In diesem Fall wird entweder das System angehalten oder die Deduplizierung verzögert. Andere Systeme wiederum versuchen, eine hohe Leistung aufrechtzuerhalten, indem sie den für die Deduplizierung benötigten Index im DRAM vorhalten. Dadurch wird jedoch die Speicherkapazität, die diese Systeme unterstützen können, eingeschränkt.

Schließlich gibt es neben der Komprimierung und Deduplizierung noch weitere Verfahren, mit denen sich der benötigte Speicherplatz deutlich verringern und damit die effektive Kapazität erhöhen lässt. Diese Verfahren werden von unterschiedlichen Speichersystemen unterschiedlich effektiv unterstützt. Doch selbst Systeme, die solche Verfahren gut unterstützen, deklarieren diese nicht einheitlich als „Datenreduktion“, was einen Vergleich der Datenreduktionsverhältnisse unterschiedlicher Systeme schwierig macht. Folgende Verfahren kommen zum Einsatz:

  • Zero-Block Pruning – Hierbei handelt es sich um einen Extremfall der Komprimierung oder Deduplizierung, bei dem das System keine leeren (mit Nullen überschriebenen) Blöcke speichert. Manche Systeme wenden dieses Verfahren außerdem allgemein an, um das Speichern von Blöcken zu vermeiden, die mit einem sich wiederholenden Byte-Muster überschrieben sind.
  • Thin Clones – Bei diesem Verfahren nutzen verschiedene Klone eines Datenvolumens die Blöcke auf dem System gemeinsam. Thin Clones können entweder durch den blockbasierten gemeinsamen Speicherzugriff oder den inhaltsbasierten gemeinsamen Speicherzugriff realisiert werden, wobei letztere Methode vergleichbar mit der Deduplizierung ist. Der blockbasierte gemeinsame Speicherzugriff ist meist effizienter, während die Deduplizierung mehr Flexibilität bietet. Bei Systemen, die Thin Clones durch den inhaltsbasierten gemeinsamen Speicherzugriff implementieren, sind die damit verbundenen Speicherplatzeinsparungen in der Regel bereits im Deduplizierungs-Verhältnis berücksichtigt. Die Speicherplatzeinsparungen durch Thin Clones auf der Basis eines blockbasierten gemeinsamen Speicherzugriffs werden hingegen nicht grundsätzlich in das Datenreduktionsverhältnis mit einbezogen. Daher kann es den Anschein haben, dass ein solches System ein geringeres Datenreduktionsverhältnis aufweist, obgleich es nicht mehr Speicherkapazitäten benötigt als ein System, bei dem Thin Clones durch Deduplizierung implementiert werden.
  • Thin-Provisioning – Hierbei benötigt das System keinen Speicherplatz für Blöcke, die nicht geschrieben wurden oder deren Zuordnung explizit aufgehoben wurde. Bei manchen Systemen werden die damit erzielten Speicherplatzeinsparungen im Datenreduktionsverhältnis berücksichtigt, bei anderen nicht.
  • Thin Snapshots – Blöcke von mehreren Versionen eines Datenvolumens werden bei diesem Verfahren gemeinsam genutzt. Die meisten Speichersysteme berücksichtigen die Speicherplatzeinsparungen auf Basis von Thin Snapshots nicht in den Angaben zum Datenreduktionsverhältnis, obwohl sie beträchtlich sind und auch von System zu System erheblich variieren können.

Storage-Kapazitäten richtig planen

Bei modernen Speichersystemen bestehen komplexe Wechselwirkungen zwischen Kapazität, Zuverlässigkeit und Leistung. Es gilt daher, nicht nur die Speicherkapazität eines Systems zu berücksichtigen, sondern auch seine Zuverlässig- und Leistungsfähigkeit.

Folgendes ist daher zu empfehlen:

1. Ignorieren der Rohkapazität, da diese in der Praxis wenig relevant ist.

2. Befassen mit der nutzbaren Kapazität. Sie ist ein zuverlässiger Ausgangspunkt dafür, welche Datenmengen auch ohne Datenreduktion auf dem System gespeichert werden kann. Der Wert ist deshalb wichtig, weil die Vorteile einiger Datenreduktionsverfahren bei unterschiedlichen Datensätzen und im zeitlichen Verlauf erheblich variieren können.

  • Ermittlung der nutzbaren Kapazität des Live-Systems, da dort höchstwahrscheinlich bereits der gesamte System-Overhead berücksichtigt wird, in den technischen Angaben zu einem System hingegen nicht unbedingt.
  • Bei manchen Speichersystemen werden nur Roh- und effektive Kapazität angegeben – Angaben zur nutzbaren Kapazität sucht man vergeblich; vermutlich weil dieser Wert der niedrigste ist. In diesem Fall kann man selbst eine Schätzung vornehmen. Hierfür gibt es zwei Möglichkeiten: Man multipliziert die Rohkapazität mit dem nutzbaren Quotienten, der wiederum auf der Grundlage der RAID-Konfiguration abgeschätzt werden kann. Allerdings ist darin der System-Overhead noch nicht berücksichtigt. Alternativ kann die effektive Kapazität durch die angenommene Datenreduktionsrate geteilt werden, die der Hersteller unter Umständen in einer Fußnote angegeben hat.
  • Unterstützt das Speichersystem unterschiedliche RAID-Ebenen, ist es ratsam, beim Hersteller nachzufragen, welche nutzbare Kapazität für die Ebene gilt, mit der Anwendungen und Performance-Ziele unterstützt werden sollen. Bei Systemen, die bei Angaben zur nutzbaren Kapazität davon ausgehen, dass RAID mit Parität verwendet wird und deren Angaben zur Leistung darauf basieren, dass RAID mit Spiegelung zum Einsatz kommt, ist zur Vorsicht zu raten.
  • Die Kosten der nutzbaren Kapazität (EUR/GB) können jetzt dadurch berechnet werden, indem die Anschaffungskosten durch diese nutzbare Kapazität geteilt werden. Warum diese Kennzahl hilfreich ist, erklärt Schritt 3.

Umesh Maheshwari,
Nimble Storage

3. Als Nächstes ist zu überlegen, wie viel Speicherplatz durch Datenreduktion eingespart werden kann. Auf diesem Weg kann ermittelt werden, um welchen Faktor sich die effektive Kapazität möglicherweise verbessert.

  • Angaben des Herstellers zum „angenommenen“ oder „durchschnittlichen“ Reduktionsverhältnis sind mit Vorsicht zu genießen. Ein angenommenes Datenreduktionsverhältnis kann auf Datensätzen beruhen, die wenig mit den Datensätzen des Unternehmens gemeinsam haben: Die Angaben zum durchschnittlichen Reduktionsverhältnis können überhöht sein, wenn sie nicht auf die Größe der jeweiligen Datensätze ausgerichtet sind oder anstelle des harmonischen Mittels das arithmetische Mittel berechnet wurde.
  • Noch besser ist es, die Datenreduktion anhand der Datensätze im System eines Unternehmens abzuschätzen. Hierfür bieten einige Hersteller spezielle Tools an. Gibt es in einem Unternehmen viele unterschiedliche Datensätze, sollten größere sowie solche, die sich weniger gut reduzieren lassen, als Ausgangspunkt genommen werden. Im Zweifelsfall kann das gesamte Reduktionsverhältnis auch abgeschätzt werden, indem das nach Größe gewichtete harmonische Mittel der einzelnen Verhältnisse berechnet wird. Im Idealfall übernimmt diese Berechnung das Tool des Herstellers.
  • Jetzt kann die effektive Kapazität des Systems nun für die jeweiligen Datensätze berechnet werden, indem die nutzbare Kapazität mit dem Gesamtreduktionsverhältnis multipliziert wird. Durch die Division von Anschaffungskosten und effektiver Kapazität können zudem die Kosten der effektiven Kapazität (EUR/GB) berechnet werden.
  • Am besten jedoch sollten die Datensätze probehalber auf dem Speichersystem gespeichert werden. Werden verschiedene Speichersysteme miteinander verglichen, empfiehlt es sich, nicht die von den jeweiligen Systemen angezeigten Datenreduktionsverhältnisse zu vergleichen, sondern den tatsächlich für eine bestimmte Datenmenge verwendeten Speicherplatz. Der Grund hierfür ist, dass bei manchen Systemen die Speicherplatzeinsparungen durch Verfahren wie Cloning und Thin-Provisioning bereits berücksichtigt sind, bei anderen hingegen nicht. Ebenfalls nicht im Reduktionsverhältnis berücksichtigt ist der Speicherplatz, der für Snapshots verwendet wird. Letztlich kommt es darauf an, wie viel Speicherplatz tatsächlich genutzt wird. Zur Berechnung der tatsächlichen Kosten für die Speicherung von Datensätzen müssen die Kosten für die nutzbare Kapazität (siehe Schritt 2) mit dem tatsächlich genutzten Speicherplatz multipliziert werden.

Das Thema Speicherkapazität ist sehr vielschichtig. Befasst man sich jedoch sorgfältig mit allen Aspekten, kann das Speichersystem so dimensioniert werden, dass Kapazität und Leistung optimal auf Anforderungen und Budget des Unternehmens zugeschnitten sind.

Über den Autor:
Umesh Maheshwari ist Mitbegründer und CTO von Nimble Storage.

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

Erfahren Sie mehr über Disk-Systeme