Thin Provisioning
Thin Provisioning (deutsch „schlanke Bereitstellung“) bezeichnet ein kostensparendes Verfahren zur Bereitstellung von Speicherkapazität in virtualisierten Speicherumgebungen (Storage-Virtualisierung). Im Gegensatz zum üblichen Thick Provisioning (deutsch „dicke Bereitstellung“) wird bei der schlanken Bereitstellung nur der Speicher reserviert, welcher auch tatsächlich benötigt wird. Dadurch kann scheinbar mehr Speicher bereitgestellt werden, als tatsächlich vorhanden ist.
Klassische Speicherzuweisung
Wenn Administratoren ein Speichersystem erstmals in Betrieb nehmen, müssen sie:
- die Festplatte für ein oder mehrere Betriebssysteme partitionieren,
- und diese dann mit den jeweiligen Betriebssystem-Werkzeugen formatieren.
Bei diesem klassischen Verfahren, das auch Thick Provisioning, Hard Provisioning, Fat Provisioning oder Exact Provisioning genannt wird, wird Anwendern und Anwendungsprogrammen Speicherkapazität zugeteilt. Ein weiterer Begriff, dedicate-on-allocation (bei der Zuweisung reservieren), umschreibt den tatsächlichen Vorgang.
So definierte Partitionen und logische Festplatten sind mit Betriebssystemfunktionen nicht mehr änderbar. Ist die zugeteilte Speicherkapazität erschöpft (das ist meist schon bei 80 Prozent Nutzungsgrad der Fall, da etwa bei der Reorganisation von Datenbanken zusätzlicher Platz benötigt wird), müssen alle Daten zuerst auf ein anderes Medium kopiert und anschließend die LUN gelöscht und neu angelegt werden. Mit speziellen Software-Werkzeugen können erfahrene Anwender aber auch während des Betriebs die Größe einer LUN inklusive aller Daten korrigieren. Auf eine Datensicherung sollte aus Sicherheitsgründen nicht verzichtet werden.
Während es für private Anwender kein Problem darstellt, die gesamte Speicherkapazität einer Festplatte für ihre Bedürfnisse zu reservieren, müssen Storage-Administratoren in größeren Betrieben umsichtiger mit Ressourcen umgehen. Sie teilen den Benutzern nur den voraussichtlich benötigten Speicherplatz über die Lebensdauer eines Projektes zu. Um Änderungen an diesen Vorgaben und damit kostspielige Verwaltungsarbeiten zu vermeiden, werden die zugeteilten Kapazitäten sicherheitshalber großzügig bemessen. Ein Teil des Datenwachstums ist dieser fixen Reservierung zuzuordnen. Die tatsächlich gespeicherte Datenmenge beträgt oft nur einen Bruchteil der reservierten Kapazität.
Moderne Speicherzuweisung (Dedication-on-write)
Thin Provisioning kann man vergleichen mit dem von einem Elektrizitätswerk zur Verfügung gestellten Strom. Dieses garantiert dem Kunden eine maximale Leistung, die dieser beziehen kann. Trotzdem kann das E-Werk nur einen Teil dieser Maximalleistung allen Kunden gleichzeitig bereitstellen. Da aber niemals alle gleichzeitig die Maximalleistung beziehen, kommt es zu keinen Problemen.
Im IT-Bereich wird der Begriff häufig auch als Überprovisionierung (overcommitment) oder Überquotierung bezeichnet.
Das Thin Provisioning macht sich zunutze, dass moderne Speichersysteme virtuelle Festplatten zur Verfügung stellen. Dem Abnehmer (Server) wird dabei mehr Kapazität zur Verfügung gestellt, als im Speichersystem dafür vorgehalten wird. Sobald die vom Server genutzte Kapazität einen bestimmten Schwellenwert überschreitet, wird aus einem vorhandenen Speicherpool freie Kapazität zusätzlich für den Abnehmer bereitgestellt.
Grundsätzlich gibt es zwei verschiedene Arten der Bereitstellung von Plattenkapazität:
Blockbasierte Speicherbereitstellung oder dateibasierte Speicherbereitstellung. Die SNIA hat mit dem Shared Storage Model eine Beschreibung dieser unterschiedlichen Verfahren entwickelt.[1] Der Unterschied liegt dabei in der Art des Zugriffs.
Beim blockbasierten Speichersystem wird die Festplatte in logische Blöcke aufgeteilt – diese Blöcke werden als Logical Unit mit einer dazugehörigen Logical Unit Number (LUN) zur Verfügung gestellt. Dies kann über unterschiedliche Protokolle wie z. B. Fibre Channel oder iSCSI erfolgen. Der Server (Abnehmer) nutzt diese LUN in der Regel um auf der LUN ein Dateisystem wie z. B. NTFS, ext3, VxFS zu schreiben. Thin Provisioning wird in diesem Fall vom Speichersystem realisiert. Der Server sieht dabei eine LUN, die x GB groß ist. Tatsächlich hat das Speichersystem aber nur x-n GB reserviert. Sollte der Server mehr Kapazität als x-n benötigen, wird die LUN automatisch aus einem freien Pool vergrößert. Anders aber als ein Filesystem wird die LUN mit jedem zusätzlichen Schreiben des Servers erneut erweitert – unabhängig davon, ob der Server zwischenzeitlich Daten auf dem auf der LUN basierenden Filesystem gelöscht hat. Dies hängt damit zusammen, dass der Server keine Kommunikationsmöglichkeit mit dem Storagesystem hat, die es ihm erlaubt, dem Speichersystem mitzuteilen, dass bestimmte Blöcke freigegeben werden können. Einige Speicherhersteller bieten spezielle Software an, mit der eine Reorganisation erfolgen kann – allerdings ist dies nur möglich, wenn während der Reorganisation kein erneutes Schreiben erfolgt.[2] Fast alle Speichersysteme werten dazu das s.g. SCSI TRIM-Kommando aus, mit welchem der Dateisystemtreiber den darunterliegenden Schichten mitteilen kann, welche Blöcke als "frei" angesehen werden können. Seit 2015 gibt es auch keine Betriebssysteme mehr welche dieses TRIM Verfahren nicht beherrschen.
Beim dateibasierten Speichersystem wird die Festplatte von einem Server oder Filer als Dateisystem mittels Protokollen wie NFS oder CIFS zur Verfügung gestellt. Der bereitstellende Server nutzt seinerseits selbst wiederum blockbasierte LUN. Hier erfolgt die Provisionierung über den „Filer“. Nahezu alle Hersteller von dateibasierten Speichersystemen bieten eine solche Funktionalität an. Im Unterschied zum blockbasierten Thin Provisioning hat der „Filer“ selbst mehr Kontrolle über das von ihm bereitgestellte Dateisystem. Wenn Daten gelöscht werden, so kann er selbständig die Kapazitäten wieder freigeben. Auf die Effektivität dateibasierter oder blockbasierter Lösungen hat dies jedoch kein Einfluss da inzwischen (s. o.) alle Betriebssysteme dieses Verfahren beherrschen.
Der Vorteil liegt auf der Hand: Es wird weniger Speicherkapazität benötigt – was direkten Einfluss auf Preis, Stellfläche, Klimatisierungsbedarf, Stromverbrauch etc. hat. Das Risiko ist, dass ein sehr detailliertes Monitoring implementiert werden muss. Wie beim Elektrizitätswerk muss notfalls schnell Kapazität neu bereitgestellt werden. Das E-Werk erreicht dies etwa über Zukauf im Ausland bei Überlasten – im Speicherbereich müssen physische Platten hinzugekauft werden. Steigt die Nutzung stärker als neue Kapazität bereitgestellt werden kann, so führt dies zum Stillstand der Anwendung. Insofern ist nicht nur ein Monitoring, sondern auch eine Trendlinienanalyse wichtige Voraussetzung für die Nutzung von Thin Provisioning.
Siehe auch
Fußnoten
- ↑ SNIA Shared Storage Model(PDF; 384 kB)
- ↑ Unter IBM Redbook Thin Provisioning in an IBM SAN or IP SAN Environment (PDF; 600 kB) findet man eine sehr gute Beschreibung über diesen Effekt und wie schnell der positive Effekt des Thin Provisioning bei einer normalen Plattennutzung wieder zunichtegemacht wird.
Literatur
- Kai Qian, Letian Yi, Jiwu Shu: ThinStore: Out-of-Band Virtualization with Thin Provisioning. In: 2011 Sixth IEEE International Conference on Networking, Architecture, and Storage. Juli 2011, S. 1–10, doi:10.1109/NAS.2011.39.