# Speichervirtualisierung

Speichervirtualisierung ist eine Technik aus der Informatik um die physischen Eigenschaften von vorhandenem Speicherplatz gegenüber Nutzern scheinbar zu verändern bzw. von diesen zu abstrahieren. Die Technik wird eingesetzt, damit Nutzer den vorhandenen Speicherplatz nicht zwingend entlang der physischen Grenzen, zum Beispiel pro Festplatte oder pro Speichereinheit, verwalten müssen. Durch Speichervirtualisierung erscheint Nutzern der Speicherplatz demnach virtuell: Der Speicherplatz kann durchaus in Speichersysteme oder Festplatten eingeteilt sein, nur müssen diese Medien nicht physisch vorhanden sein. Eine Software stellt sicher, dass die virtuelle Speichereinteilung auf geeignete Art und Weise auf den physisch vorhandenen Speicherplatz passt.
Nutzer profitieren von Speichervirtualisierung, indem sie nicht an physischen Grenzen gebunden sind. Umstrukturieren oder erweitern des physischen Speicherangebots betrifft Nutzer des Speicherangebots weniger bis gar nicht, wenn der Speicher virtualisiert zur Verfügung steht. Für Systembetreuer besteht der Vorteil andererseits darin, dass das vorhandene physische Speicherangebot effektiver auf die vorhandenen Nutzer aufgeteilt werden kann. Der Auslastungsgrad verbessert sich.
Es gibt verschiedene technologische Ansätze um Speichervirtualisierung durchzuführen.

## Virtualisierungsmethode: Out of Band oder Switch Based

Die Betrachtung der Out-of-Band-Speichervirtualisierung ist heute nur noch akademisch notwendig. Die Produkte, die diesen Ansätzen gefolgt sind, wurden vom Markt verdrängt. Grund hierfür ist vor allen Dingen das sehr komplexe Setup, das für diese Art der Speichervirtualisierung notwendig war.
Dieser Ansatz verspricht, dass die eigentlichen Virtualisierungssysteme sich außerhalb des Datenpfades befinden. Die eigentliche Virtualisierung wird in Switchsystemen durchgeführt. Hier kommt es zu der logischen Verknüpfung von Speicherbereichen zu virtuellen Laufwerken.
Vorteile:
* Keine Behinderung im Datenpfad. Da die Virtualisierung sehr nahe am Switch durchgeführt wird, spricht man hier von IO-Verzögerungen um ca. 30 Mikrosekunden je IO. Das ist vergleichsweise wenig, wenn man davon ausgeht, dass sich ein Diskzugriff im Millisekundenbereich abspielt.
Nachteile:
* Keine Möglichkeit, Caching im Datenpfad zu etablieren. Damit hängt die Leistungsfähigkeit der Virtualisierung von der individuellen Performance und damit auch den Kosten der unterliegenden Speichersysteme ab.
Beispiele: EMC Invista, LSI SVM und HP SVSP

## Virtualisierungsmethode: Virtualisierung über ein Speichersystem

Die Virtualisierung wird direkt in einem Speichersystem durchgeführt, das jetzt die Möglichkeit hat, Fremdspeicher in die eigene Verarbeitung zu integrieren.
Vorteile:
* Ein Speichersystem, das individuell mit Fremdspeicher erweitert werden kann. Alle Funktionen können jetzt von einer zentralen Stelle aus verwaltet werden.
* Das Konzept eignet sich sehr gut zur Konsolidierung verschiedener Speichersysteme.
Nachteile:
* Durch den hohen Konsolidierungswert besteht die Gefahr, dass es wesentlich günstiger ist, das Speichersystem selbst auszubauen als Fremdspeicher an das System anzuschließen. Das wiederum widerspricht dem Virtualisierungsansatz speziell dann, wenn die Speichervirtualisierung als zukünftiges Konzept angesehen wird.
Beispiel: HDS USP-V, HP XP P9000, IBM Storwize V7000 und OEM Derivate SUN

## Virtualisierungsmethode: In Band

Spezielle Virtualisierungssysteme werden im SAN im Datenpfad etabliert. Jeder IO wird durch diese Systeme geleitet und entsprechend auf die Diskblöcke gemappt.
Vorteile:
* Die Virtualisierung ist komplett transparent für die Server.
* Das Virtualisierungssystem wird zur Speicherinstanz: die Server benötigen keine speziellen Treiber für die Speicherhardware, da sie diese nicht mehr sehen können.
* Durch integrierte Caches kann die Leistungsfähigkeit des Systems verbessert werden.
* Günstigere Speichersysteme können dadurch wesentlich höhere Leistung erbringen.
Nachteile:
* Immer dann, wenn das Virtualisierungssystem schwache Cacheeigenschaften hat, wird die Leistung des Speichers verschlechtert.
* Eine erhöhte Latenzzeit durch den Einsatz eines Layers wird im Allgemeinen durch Cache ausgeglichen.
Beispiele: FalconStor IPStor, IBM San Volume Controller SVC, DataCore SANsymphony-V Storage-Hypervisor

## Virtualisierungsmethode: Hostbasiert

Ein Treiber auf dem Hostsystem übernimmt sämtliche Virtualisierungsfunktionen.
Vorteile:
* Es wird keine zusätzliche Hardware benötigt.
* Beste Performance von allen Speichervirtualisierungsverfahren, da alle Speichergeräte immer direkt, d. h. ohne zwischengeschaltete Instanzen (vgl. In Band) und damit ohne zusätzliche Latenzen angesprochen werden können. Caching-Verfahren auf dem Host ermöglichen zusätzliche Beschleunigungen und sind prinzipbedingt schneller als Caches im SAN.
* Beliebig skalierbar, limitierender Faktor ist primär die Zahl möglicher I/O-Controller.
* Leichter Zugriff auf die Funktionen der Speichervirtualisierung vom Betriebssystem des Hosts oder gar aus Applikationen heraus.
* Damit besondere Eignung für die Kombination mit virtuellen Maschinen.
* Leichte Austauschbarkeit der Speichersysteme, hostgesteuerte Live-Migration der Daten zwischen Speichersystemen.
Nachteile:
* Die hostbasierte Speichervirtualisierung muss für jede gewünschte Plattform portiert werden und ist daher meist nur für ausgewählte Betriebssysteme verfügbar.
* Im SAN haben u. U. mehrere Host gleichzeitig Zugriff auf die Speicherressourcen. Erst eine clusterfähige hostbasierte Speichervirtualisierung kann die daraus entstehenden Probleme lösen, bietet dann aber mehr Komfort z. B. für Hochverfügbarkeitslösungen, Live-Migrationen und Ressourcen-Sharing.
Beispiele: Veritas/Symantec Storage Foundation, OSL Storage Cluster, Linux Logical Volume Manager