Bei der Speichervirtualisierung (Storage-Virtualisierung) handelt sich um ein Virtualisierungskonzept, das darauf abzielt, diverse Speicherressourcen eines Unternehmens wie Festplattenlaufwerke, Flashspeicher oder Bandlaufwerke virtuell abzubilden und als zusammenhängenden Speicherpool bereitzustellen. Dabei etabliert eine Virtualisierungslösung eine Abstraktionsschicht zwischen den verschiedenen physischen Speichermedien und der logischen Ebene, auf der sich die zusammengefassten Speicherressourcen mittels Software zentral verwalten lassen.
Auch virtueller Speicher lässt sich in Kontingente zerlegen und ausgewählten Anwendungen zuteilen. Anwender können auf gespeicherte Daten trotz Virtualisierung stets über dieselben Dateipfade zugreifen, auch wenn sich der physische Speicherort ändert. Sichergestellt wird dies durch eine von der Virtualisierungssoftware verwaltete Zuordnungstabelle. Man spricht von einem Mapping der physischen Speichermedien auf ein logisches Laufwerk (auch Volumes genannt).
An die physischen Kapazitätsgrenzen der zugrundeliegenden einzelnen Speichermedien sind logische Laufwerke nicht gebunden. Speichervirtualisierung bietet somit deutlich mehr Flexibilität bei der Zuteilung von Speicherressourcen. Die zur Datenspeicherung zur Verfügung stehende Hardware lässt sich effektiver auslasten. Für Unternehmen bedeutet dies, dass sich Speicherkapazitäten im Rechenzentrum kostengünstiger bereitstellen lassen.
Im Unternehmenskontext wird Speichervirtualisierung in der Regel blockbasiert umgesetzt. Bei der Blockspeicherung werden Daten in gleich große Blöcke unterteilt. Jeder Datenblock erhält eine einzigartige Adresse. Diese wird von der Virtualisierungssoftware in der zentralen Zuordnungstabelle (Mapping-Table) gespeichert. Die Zuordnungstabelle enthält somit alle Metadaten, die benötigt werden, den physischen Speicherort eines Datenblocks ausfindig zu machen. Dieses Mapping erlaubt es, Daten auf der virtuellen Ebene unabhängig vom jeweiligen Controller des physischen Speichermediums zu verwalten und somit beispielsweise zu verschieben, zu kopieren, zu spiegeln oder zu replizieren.
In der Praxis lässt sich die blockbasierte Virtualisierung durch drei verschiedene Ansätze umsetzen:
- Hostbasiert
- Gerätebasiert
- Netzwerkbasiert
Hostbasierte Speichervirtualisierung
Die hostbasierte Virtualisierung von Speicherressourcen ist ein Ansatz der Speichervirtualisierung, der in der Regel in Kombination mit virtuellen Maschinen zum Einsatz kommt. Bei diesem Konzept präsentiert ein Hostsystem einem oder mehreren Gastsystemen (siehe Hardware-Virtualisierung) virtuelle Laufwerke auf einer Abstraktionsebene, die entweder durch einen betriebssysteminternen Volume-Manager oder eine separate Software (einen sogenannten Storage-Hypervisor) realisiert wird. Der Zugriff auf die Hardware (Festplatten und andere Speichermedien) erfolgt durch die Gerätetreiber des Hostsystems. Der Volume-Manager bzw. Storage-Hypervisor kommt als Software-Schicht oberhalb der Gerätetreiber zum Einsatz und verwaltet Ein- und Ausgabe (Input/Output, kurz: I/O), I/O-Mapping-Tabellen sowie die Metadatensuche.
Native Funktionen, die es ermöglichen, virtuelle Laufwerke zu erzeugen, stehen in nahezu allen modernen Betriebssystemen zur Verfügung.
- Windows: Logical Disk Manager (LDM)
- macOS: CoreStorage (seit OS X Lion)
- Linux: Logical Volume Manager (LVM)
- Solaris und FreeBSD: zPools des Dateisystems Z File Systems (ZFS)
Die hostbasierte Speichervirtualisierung kommt ohne zusätzliche Hardware aus, unterstützt jedes Speichergerät und lässt sich mit geringem Aufwand umsetzen. Zudem bietet der Ansatz im Vergleich zu anderen Konzepten die beste Performance, da jedes Speichergerät unmittelbar und somit ohne Latenzzeit angesprochen wird. Anwender müssen jedoch in Kauf nehmen, dass sich die Speichervirtualisierung – und damit die Möglichkeit zur Optimierung der Speicherauslastung – auf den jeweiligen Host beschränkt.
Gerätebasierte Speichervirtualisierung
Auch Disk-Arrays – Massenspeichergeräte, mit denen sich Festplatten im Netzwerk bereitstellen lassen – bieten die Möglichkeit, Speicherressourcen zu virtualisieren. Dabei kommen sogenannte RAID-Schemata zum Einsatz. Bei RAID (kurz für: Redundant Array of Independent Disks, die Redundante Anordnung unabhängiger Festplatten) handelt es sich um ein Konzept der Datenhaltung, bei dem mehrere physische Laufwerke zu einer virtuellen Speicherplattform zusammengefasst werden. Ziel der Speichervirtualisierung ist dabei Ausfallsicherheit durch Redundanz. Dazu werden die Daten in einem Disk-Array gespiegelt und auf verschiedene Festplatten verteilt.