Stor IT Back - Ihr Speicherspezialist
Virtualisierung von Storage / Speicher V1.12 (c) Stor IT Back 2023
Speicher oder Storage Virtualisierung, was ist das? Leider verstehen nicht alle unter Virtualisierung
das gleiche. Ursprünglich war das flexible "Mapping von physikalischen Laufwerken
auf logische Volumes" gemeint. Also nichts anderes als die RAID-Technologie
mit einer flexiblen Partitionierung. Aber was ist jetzt neu daran? Erst einmal
kann damit die zentrale Verwaltung aller Storage-Komponenten ermöglicht
und Features wie SnapShot, Spiegelungen und Backups integriert werden, ohne dass die
Hardwarekomponenten dies direkt unterstützen müssen. Alles in allem
die zentrale Administration und Überwachung der gesamten Storage-Landschaft.
Neben der reinen blockbasierenden Virtualisierung in Storage-Umgebungen kommt
auch die filebasierende Virtualisierung immer stärker zum Einsatz.
Seit einiger Zeit hat sich der Begriff Software Defined Storage etabliert.
Aber auch dort gehen die Ansätze und Begrifflichkeiten auseinander. Einmal der Ansatz der
zentralen Administration von herkömmlichen Storage-Systemen und die direkte Einbindung in
mögliche IT-Abläufe. Zum anderen aber auch der Software-Based Storage Ansatz, dort
werden übliche Server mit Festplatten bestückt und eine Software auf dem Server stellt
die Storage Dienste zur Verfügung.
Grundsätzlich sind 4 unterschiedliche Ansatzpunkte möglich. Die dezentrale
Virtualisierung kann direkt in den Storage-Devices (RAID-Controller und Switchen)
vorgenommen werden. Jeder Hersteller liefert Software und Tools zur Administration
und Überwachung mit. Wenn gemeinsame Schnittstellen vorhanden sind, so
können diese Aufgaben direkt über Fibre Channel oder LAN vorgenommen werden.
Diese Ansätze sind aus der Netzwerktechnik bekannt, Software-Produkte wie HP-OpenView,
CA Unicenter und NetView sind die bekanntesten Vertreter im LAN-Bereich.
In Zeiten von Cloud
und Server-Virtualisierung wird aber auch die Storage-Schicht immer stärker in die
zentrale Verwaltung (zum Beispiel Cloud Dienste) einbezogen. Dort verbreitet
sich der Software Defined Storage
Ansatz und ermöglicht ein gemeinsames Provisioning von Storage, Netzwerk über Betriebssystem bis hin zur Anwendung.
Ein weiterer Ansatz liegt in der Verwaltung konventioneller Storage-Systeme über die
angeschlossenen Applikationsserver. Hierbei wird eine Softwarekomponente auf den
Servern installiert, die dann die Verwaltungsaufgaben übernimmt. Diese Clients
können dann von einer zentralen Console aus bedient werden.
Die drei folgenden Prinzipien sind die aussichtsreichsten Vertreter. Sie lassen
sich in die drei Gruppen "In-Band-", "Out-Of-Band-Virtualisierung" und lokale
Virtualisierung trennen.
Sämtliche Funktionen der Virtualisierung sind zentral im Storage-System
integriert. Es wird kein zusätzlicher Server oder zusätzliche Hardware
benötigt, die Verwaltung vom reinen RAID-System und von der Virtualisierung
sind in einem Tool zusammengefasst. Ein Ansatzpunkt der Virtualisierung lässt
sich hier aber nicht realisieren, nämlich das Zusammenfassen von
RAID-Systemen unterschiedlicher Hersteller. Alle anderen Features sind aber realisierbar. Natürlich
kann auch diese Lösung geclustert werden, auch eine Aufteilung an zwei
unterschiedliche Standorte ist möglich.
Da dieses Verfahren mehr mit der In-Band-Virtualisierung verwandt ist, lassen
sich zum Beispiel auch zusätzliche Protokolle realisieren. Das ist natürlich
immer abhängig von den unterschiedlichen Herstellern. Die Verwandtschaft
mit dem Out-Of-Band Verfahren ermöglicht der Virtualisierung im Storage-System
die beste Performance, da im Datenstrom keine zusätzlichen Komponenten
zur Steuerung verbaut sind.
Ein Beispiel für eine umfangreiche Virtualisierung in einem Storage-System
sind die NetApp FAS Systeme und die
Dell EMC Unity Serie.
Hierbei liegt die Hard- und Software zur Virtualisierung direkt in den Datenpfaden zwischen Server und Storage-Device. Sehr einfach lassen sich weitere Protokolle zur Nutzung des Speichers implementieren.
Die kostengünstige
Nutzung von IP (FTP und Web), SMB und NFS ist möglich. Das Gesamtsystem wird
flexibler und universeller, NAS und SAN vermischen sich. Sehr entscheidend ist
die Ausfallsicherheit der Virtualisierungsschicht. Ein Versagen oder eine Störung
in diesem Bereich führt unweigerlich zum Totalausfall des SAN. Der große
Vorteil ist jedoch die direkte Beeinflussung des Datenstroms ohne Umwege. Auf
diesem Wege lässt sich zum Beispiel auch ein "Serverless-Backup" realisieren.
Für eine Steigerung der Performance können SSD- oder RAM-Speicher in die Virtualisierung
eingebunden werden. Somit lässt sich der Cache eines RAID-Controllers kostengünstig von
wenigen Gigabyte auf 100 und mehr Gigabyte selbst durch reinen RAM Speicher aufrüsten. Oder
es werden SSDs eingebunden, selbst schneller Speicher von mehreren Terabyte lässt sich über diesen
Weg realisieren.
Diese Lösungen virtualisieren zum Storage hin und geben dann die virtuellen
Volumes zu den Servern hin frei. Diese Topologie wird auch "symmetrische
Storage-Virtualisierung" genannt.
Beispiele für diese Technologie sind von IBM der SVC, von EMC die VPLEX Serie und von Datacore SANsymphony.
Bei diesem Prinzip liegt die Virtualisierungshardware (oder Software) neben dem Datenpfad.
Sollte die Hard- oder
Software ausfallen, so sind die Grundfunktionen des SANs immer noch funktionstüchtig.
Aber je nach Einfluss der Virtualisierung lassen sich die Daten nicht mehr zuordnen
oder sind nicht verfügbar. Also ist auch diese Technik nicht gegen Ausfall automatisch
gesichert. Ein wesentlicher Nachteil dieser Lösung ist die Beschränkung auf
übliche Storage-Protokolle, wie Fibre Channel,
SAS und iSCSI. Eine direkte
Aufrüstung um NAS- und Internet-Protokolle ist nicht so einfach möglich.
Bei dieser Virtualisierung werden die verfügbaren Ressourcen indirekt in die
Applikationsserver projiziert, entweder über spezielle Hardware im Host-Bus-Adapter
oder über eine Softwareschnittstelle.
Im Zuge der Cloud-Technologien wird diese Technik genutzt, um automatisch Speicherplatz
zuweisen zu können. Damit kann in einer Cloud über ein User-Interface nicht nur automatisiert ein
Applikationsserver erstellt werden, sondern auch die unterliegenden Technologien
komplett automatisch vorbereitet werden. Wichtig ist in diesem Fall, das Cloud-Software und
das Storage-System auch zueinander kompatibel ist, die Cloud-Software also das Storage
auch administrieren kann. Im Zuge der Cloud-Technologie werden die Schnittstellen immer
homogener und es wächst immer mehr zusammen.
Diese Topologie wird entsprechend dann auch "asymmetrische Virtualisierung" genannt.
Ein ganz klarer Vorteil ist die Verfügbarkeit der Lösungen, aber nur bei richtigem Design der Umgebung. Ein Ausfall der Virtualisierung führt
meist zum Versagen der gesamten Storage-Lösung. Also muss die Virtualisierung
hochverfügbar ausgelegt werden. Dies erhöht die Kosten extrem, da Cluster eingesetzt
werden müssen. Das ist aber gleichzeitig auch ein Vorteil: Wird die Virtualisierung
hochverfügbar ausgelegt, so kann durch einfache Spiegelung der Daten eine
komplett hochverfügbare Storage-Lösung aufgebaut werden, die auf alle
Ausfallszenarien automatisch reagieren kann. Wichtig bei diesen HA-Lösungen ist die Aufteilung in zwei Brandabschnitte, was hilft einem die
doppelte Hardware, die doppelten Platten, wenn ein Brand alles zerstört.
Bei der Out-Of-Band Virtualisierung besteht noch ein weiteres Problem: Es ist
der fehlende Standard für die Administration und Überwachung von Storage-Hardware.
Noch kann nicht jede Hardware von jeder Virtualisierungs-Software (oder Cloud Software) angesprochen
werden. Es gibt nur Insellösungen, die sich aber weiter entwickeln.
Ist aber nun eine Virtualisierung möglich oder gar sinnvoll? Dies kommt auf
den Einzelfall an, denn die Vorteile sprechen für sich: Ein Mitarbeiter kann
eine größere Menge an Daten verwalten, da erst jetzt eine echte Konsolidierung
der Daten über Hardware-Grenzen möglich ist. Wenn die vorhandene Hardware
unterstützt wird, ist auch der Schutz der Investition gegeben. Weiterhin können
sehr elegant Protokolle wie iSCSI und NAS-Funktionalitäten ins SAN gebracht
werden. Serverless Backup wird möglich und SnapShots und Spiegelungen lassen
sich flexibel auch für Entry-Level-Hardware integrieren.
In einer Cloud-Umgebung kann die Integration der Storage-Hardware sehr wichtig, bzw. sogar
essentiell notwendig sein. Es bringt ja relativ wenig, wenn sich ein Kunde den
virtuellen Server selbst zusammenstellen und sogar starten kann, aber keinen Speicherplatz erhält.
Die Grundlage der hochverfügbaren Storage-Virtualisierung ist die Virtualisierungs-Appliance, also das Gerät, welches die zentrale Verwaltung aller Speicherbereiche ermöglicht. Diese Appliance wird als Cluster ausgeführt, entweder als reiner Failover-Cluster (eine Appliance stellt im Normallfall die Dienste zur Verfügung, die andere überwacht nur und übernimmt im Fehlerfalle) oder als Lastausgleichscluster, d.h. beide Systeme übernehmen einen Teil der Aufgaben und überwachen sich gegenseitig.
Der Cluster sollte
auf zwei unterschiedliche Brandabschnitte aufgeteilt werden.
Die beiden Storage-Systeme sollten dann auch in den beiden unterschiedlichen
Brandabschnitten angeordnet werden. Die Spiegelung (ein RAID 1) übernimmt
die Virtualisierung. Damit sind die Daten immer konsistent auf beiden Storage-Systemen
vorhanden. Sollte ein Storage ausfallen, so arbeiten die Virtualisierungs-Appliances ohne manuellen
Eingriff direkt weiter.
Sind dann auch noch die Netzinfrastruktur und die Server redundant ausgelegt,
so kann selbst ein kompletter Standort (Brandabschnitt) ausfallen, die Anwendungen
stehen weiterhin zur Verfügung.
In Kombination mit einer Server-Virtualisierung wird hieraus eine kostengünstige
hochverfügbare EDV-Lösung, die auch noch einfach zu administrieren
und zu überwachen ist.
In der Storage-Virtualisierung sind verschiedenen Features denkbar. Nicht jeder
Hersteller bietet jedes Feature an bzw. bietet das jeweilige Feature unter Umständen
etwas anders an. Die folgende Übersicht kann also nur als Leitfaden dienen,
die genaue Realisierung muss jeweils individuell geprüft werden.
Die erste Möglichkeit den Plattenplatz bei einem RAID-System zu erhöhen, ist zum Grundgerät zusätzliche JBODs hinzuzufügen. Die Methode die nahezu jedes System beherrscht. Das ist die vertikale Skalierbarkeit.
Der Vorteil ist, das die JBODs kostengünstiger sind als ein RAID-Grundsystem
und das auch nur ein Grundsystem überwacht werden muss. Der Nachteil ist
jedoch, dass die Performance durch das Grundsystem begrenzt ist. Der RAID-Controller
hat nur einen gewissen Durchsatz und die Anbindung an das SAN ist meist auch
auf 4 Ports begrenzt. Also bei 8Gbit/s Fibre Channel dann maximal 32 Gbit/s.
Diese Nachteile hebt die horizontale Skalierbarkeit auf. Es wird ein neues Grundsystem
mit den vorhandenen kombiniert. Es können auch vorhandene Volumes über
mehrere Grundsysteme verteilt werden. Da jedes Grundsystem eigene RAID-Controller
und damit auch eigene Anschlüsse zum SAN mitbringen, steigert es nicht
nur die Kapazität sondern auch die Performance. So haben dann zum Beispiel
4 eigenständige Grundsysteme mit jeweils 4 x 8 Gbit/s dann schon 128 Gbit/s
zum SAN.
Das nebenstehende Bild zeigt die horizontale Skalierbarkeit eines Storage-Systems.
Es wird ein gemeinsamer Storage-Pool aus verschiedenen Grundgeräten gebildet.
Die virtuelle Festplatte wird auf alle Grundsysteme verteilt. Fordert jetzt
ein Server Daten von seiner virtuellen Festplatte ab, so können beide Grundsysteme
zur gleichen Zeit die Daten liefern. Der Durchsatz verdoppelt sich nahezu. Das
gleiche passiert natürlich auch beim Schreiben, die Daten werden auf die
beiden Systeme verteilt, auch dort wird die doppelte Performance erreicht.
Die Verteilung der Daten übernimmt der Storage-Pool, also der Zusammenschluss
der vorhandenen Grundgeräte. Weder Server noch Betriebssystem wissen, das
hinter dem Storage-Pool mehrere Grundsysteme stehen. Das ist völlig transparent
für alle weiteren Schichten. Wird jetzt ein zusätzliches Grundsystem
in einen vorhandenen Pool integriert, dann werden die Daten über alle Systeme
verteilt.
Thin Provisioning oder Over-Provisioning "gaukelt" dem Betriebssystem
sehr viel Speicherplatz vor, belegt aber tatsächlich nur den wirklich genutzten
Speicherplatz auf den Festplatten.
Aber warum denn das?
Die Frage ist einfach zu beantworten. Wenn ein neues System oder eine neue Anwendung
eingeführt werden soll, weiß eigentlich niemand so richtig, wie viel
Speicherplatz wirklich benötigt wird. Also nimmt man entweder etwas mehr
um in Sicherheit zu sein, verschwendet aber unter Umständen viel Speicherplatz,
oder man nimmt zu wenig und muss dann umständlich erweitern. Also wäre
es doch gut, einfach zu sagen: Das Filesystem bekommt so viel Speicherplatz,
dass es auf jeden Fall ausreichend ist, auf der anderen Seite, wird aber aktuell
immer nur das an Kapazität belegt, was auch wirklich verbraucht wurde.
Alle sind zufrieden, keine Plattenplatzprobleme mehr und auch keine Verschwendung
von Festplattenkapazität.
Wie funktioniert das?
Wenn ein Betriebssystem ein neues Filesystem anlegt, dann ist es ja erst mal
nicht gefüllt. Es sind zwar einzelne Blöcke belegt und evtl. sind
Pointer-Tabellen vorformatiert, aber das belegt sehr wenig Speicherplatz. Das
Betriebssystem "sieht" dann also z.B. 2 TB in seinem Filesystem, auf
den Platten sind aber nur wenige MB belegt. Schreibt das Betriebssystem jetzt
Daten in das Filesystem, dann werden die Daten wirklich auch auf die Platte
geschrieben. Aber eine weitergehende Nutzung von Plattenplatz des leeren Teils
des Filesystems erfolgt nicht. Sind also auf den virtuellen 2 TB wirklich 500
MB an Daten und 2 MB an Filesystemformatierungen, so ist auf der Festplatte
502 MB belegt.
Natürlich muss auch beim Thin Provisioning der Plattenplatz überwacht
werden. Sind auf dem RAID-System 20 virtuelle Festplatten mit je 2 TB angelegt,
aber nur 10 TB an Plattenplatz vorhanden, dann wird es irgendwann einmal eng
werden. Das muss aber nur zentral auf dem RAID-System überwacht werden.
Werden voreingestellte Grenzen überschritten, dann erfolgt eine Warnung
an den Administrator. Es müssen zusätzliche Festplatten eingebaut
werden (vertikale Skalierung) oder es muss ein zusätzliches Grundsystem
integriert werden (horizontale Skalierung). Das lässt sich natürlich
im laufenden Betrieb durchführen.
Diese beiden Verfahren sind zwar sehr ähnlich, unterscheiden sich aber
in einigen wichtigen Punkten. Erreicht werden soll in beiden Fällen die
Daten an zwei unterschiedlichen Standorten zu speichern. Dies ist eine K-Fall
Vorsorge. Sollte ein Standort oder ein System zerstört werden, so kann
entweder unverzüglich bzw. mit kurzer Verzögerung auf die Daten zugegriffen
werden.
Bei der Replikation wird nach dem Master-Slave Verfahren gearbeitet. Der Master
erfüllt hierbei die I/O Anforderungen der Server. Kommt ein Schreib-IO
zu Master, so überträgt dieser die Schreib-Operation an den Slave.
Bei der synchronen Replikation wird das Write-OK dem Server erst dann gegeben,
wenn die Daten sicher auf Master und Slave angekommen sind. Das führt zu
einer leichten Verschlechterung der Schreib-Performance. Jedoch sind die Daten
immer auf beiden Systemen auf dem gleichen Stand. Es muss also nach einem Start
der synchronen Replikation nicht manuell eingegriffen werden.
Bei der asynchronen Replikation bekommt der Server sein Write-OK direkt wenn
die Daten auf dem Master angekommen sind, also ohne zeitliche Verzögerung.
Der Master überträgt dann die Daten zum Slave in bestimmten Intervallen.
Und bei dieser Übertragung muss darauf geachtet werden, dass die Daten
zu diesem Zeitpunkt auch konsistent sind. Das heißt die Steuerung der
asynchronen Replikation muss von den Servern aus durchgeführt werden. Diese
Replikation ist zwar performanter, aber schwerer zu steuern und aufwendiger
in der Überwachung.
Bei der Spiegelung wird ein RAID 1 angewendet. Die Daten werden also zur gleichen
Zeit auf das eine und auf das andere Storage-System geschrieben, die Performance
ist entsprechend dem eines Einzelsystems. Das Verfahren Spiegelung ist etwas
aufwendiger zu realisieren. Es muss in den meisten Fällen eine In-Band-Virtualisierung
zwischengeschaltet werden, die das RAID 1 über die beiden Storage-Systeme
übernimmt (siehe auch obiges Thema "Virtualisierung und Hochverfügbarkeit").
Das Tiering, also die Aufteilung der Daten auf verschiedene Medien, ist sehr
effektiv und sehr flexibel mit der Storage-Virtualisierung zu realisieren. Beim
Tiering werden die Daten je nach Performance- und Verfügbarkeitsansprüchen
auf unterschiedliche Platten bzw. Plattensysteme verteilt. Die Aufteilung auf
verschiedene Plattentypen (SSD, SAS und SATA) sind auch in einem RAID-System
möglich. Bei der Storage-Virtualisierung kommt aber auch der gemeinsame
Zugriff auf verschiedene RAID-Systeme in Betracht. So können die wichtigen
und performanten Daten auf Dual Controller-RAID-Systemen abgelegt werden. Ältere
bzw. nicht so wichtige Daten auf SATA-Storages mit nur einem Single-Controller-Design.
So können auch Test- und Produktionsdaten getrennt werden. Aber alle Server
an der Storage-Virtualisierung können auf alle Daten zugreifen.
Damit kann ein Server auf alle Tiers innerhalb aller vorhandenen Storage-Systeme
die Daten ablegen. Als Beispiel kann der Datenbankserver seine Datenbankfiles
auf dem Dual Controller Enterprise System ablegen, die Logs kommen auf das Enterprise
SATA System und die Exports landen auf dem Single-Controller-System mit großen
SATA-Platten.
Weitere Informationen zum Thema Tiering.
Eine professionelle Planung in diesem Bereich macht eine Virtualisierung erst möglich. Sehr wichtig sind hierbei, die geforderten Funktionalitäten und die vorhandene Hardware zu berücksichtigen. Jeder Hersteller in diesem Bereich bietet unterschiedliche Features an, eventuell sind kleine Details für den Erfolg entscheidend.
Sollten Sie Fragen zu diesem Thema haben, oder wünschen Sie Beratung, so wenden Sie sich an uns. Weiterhin bieten wir herstellerunabhängige Schulungen zum Thema "Storage Area Network" an. In der Basis-Schulung lernen Sie die Unterschiede zu DAS, NAS und iSCSI kennen, sowie die jeweiligen Einsatzgebiete. In der Praxis-Schulung bauen Sie ein komplettes SAN auf, lernen die Topologien kennen und sehen Vor- und Nachteile am "lebenden Objekt". Eine mögliche Virtualisierung wird auch besprochen.