Beim Cluster-Shared-Volume (CSV) handelt es sich um eine zusätzliche Ebene, die aus einem gemeinsamen Speicher auf Basis des Dateisystems NTFS ein Cluster-Dateisystem zur Verfügung stellt. Damit können mehrere Hosts auf eine einzige LUN gleichzeitig zugreifen. So will Microsoft zum Konkurrenten Vmware und dessen VMFS (Virtual-Machine-File-System) aufschließen.
Bild 1: Das Prinzip des VMFS. (Grafik: Vmware)
Mit der Vorstellung des Release 2 für seine Hypervisor-basierte Virtualisierungs-Lösung »Hyper-V« bringt Microsoft Hochverfügbarkeitsansätze ins Spiel. Dazu gibt es nun die »Live Migration«, die – ähnlich wie es bei VMware schon seit Jahren möglich ist – ein Verschieben von virtuellen Maschinen (VMs) von einem physikalischen Server auf einen zweiten erlaubt, ohne dass die angeschlossenen Applikationen davon etwas bemerken. Diese Methodik ist bei Vmware unter dem Namen »Vmotion« bekannt. Damit der gleichzeitige Zugriff von mehreren Hosts auf dieselbe LUN (Logical Unit Number) erfolgen kann, sind in einem üblichen Dateisystem Änderungen nötig.
Vmware hat das mit dem VMFS (»Virtual Machine File System«) abgedeckt, denn es müssen mehrere Einheiten (Knoten eines Clusters oder mehrere VMs) auf eine LUN synchronisiert zugreifen können. Dazu speichert VMFS den gesamten Zustand einer virtuellen Maschine an einem zentralen Speicherort.
Gleichzeitiger Lese-Schreibzugriff auf denselben Speicher
Bei herkömmlichen Dateisystemen kann nur ein Server zu einem Zeitpunkt im Lese- und Schreibmodus auf dieselbe Datei zugreifen. Im Gegensatz dazu handelt es sich bei VMFS um ein Cluster-Dateisystem, das gemeinsamen über iSCSI oder Fibre-Channel angebundenen Speicher nutzt, um mehreren Instanzen von »ESX«- oder »vSphere-4«-Servern den gleichzeitigen Lese-Schreibzugriff auf denselben Speicher zu ermöglichen. Das VMFS ist im Rahmen der Reihen »ESX-3« und Vsphere-4 von Vmware verfügbar, kann aber nicht als eigenes Produkt erworben werden.
Über das Sperren von Festplatteninhalten stellt das VMFS sicher, dass eine virtuelle Maschine nicht von mehreren ESX-Server-Installationen zur selben Zeit gestartet wird. Fällt ein Server aus, wird die Sperre für alle betroffenen virtuellen Maschinen aufgehoben, so dass diese auf anderen physischen Servern neu gestartet werden können.
Auf Grund der bisherigen positiven Erfahrungswerte hat sich gezeigt, dass VMFS sich für den unternehmensweiten Einsatz eignet. Selbst umfangreiche Applikationen wie ERP-Systeme funktionieren auf dieser Plattform gut.
CSV setzt NTFS auf
Bild 2: CSV macht aus NTFS ein Cluster-Dateisystem.
(Grafik: Add-On)
Um eine entsprechende Funktionalität zu bieten, bringt Microsoft das »Cluster Shared Volume« (CSV) ins Spiel. Dabei wurde allerdings kein neues Dateisystem konzipiert. Vielmehr setzt diese Technik auf dem bekannten Dateisystem NTFS auf. Es wurde in Form eines eigenen Filtertreibers realisiert und nutzt dabei einige Funktionen, die mit dem »alternate File Stream« von NTFS gegeben sind. Damit stellt Microsoft dann eine Synchronisierung der Zugriffe auf eine LUN sicher.
Für die Live-Migration, also das Verschieben einer laufenden VM von einem physischen Host auf einen zweiten, ist unbedingt das CSV nötig. Bei »Windows Server 2008 R2« benötigt man mindestens die Enterprise-Edition mit dem Failover-Cluster, denn nur mit einem aktivierten Cluster steht CSV zur Verfügung. Wer dagegen auf Microsofts kostenlose Variante, den Hyper-V R2, zurückgreift, der bekommt diese Funktion auch kostenlos.
Mit Hilfe des »Failover Cluster Manager« ist der Administrator in der Lage, für beliebige Volumes das CSV zu aktivieren. Ohne diese Technologie müsste man ein irgendwie geartetes Umschalten einer LUN von einem Rechner-Knoten zum anderen Knoten machen. Üblicherweise ist das ein Aushängen (»Unmounten«) an einem System und ein Einhängen (»Mounten«) an dem zweiten System. Doch das dauert mehrere Sekunden, selbst wenn man diese Aufgaben über Skripting weitgehend automatisiert. Das würde zu lange dauern, denn das würden die angeschlossenen VMs bemerken und die Applikationen müssten normalerweise neu gestartet werden.
Bis zu 16 Knoten im Cluster-Verbund können mit den CSV auf eine einzige LUN gleichzeitig und somit auch alle auf dasselbe Filesystem zugreifen. Das ist auch der signifikante Unterschied zum »Failover Cluster« selbst. Dabei haben die Redmonder nach wie vor NTFS verwendet. Allerdings kommt noch ein Gerätetreiber mit ins Spiel.
CSV-Treiber entscheidet über Art des Schreibens
Je nach Zugriffsart auf die Disk entscheidet der CSV-Treiber, ob direkt auf die Disk geschrieben wird oder ob ein Umweg nötig ist. Das ist abhängig von der betreffenden Art der Ein-Ausgabeoperation. Ist es ein Zugriff auf eine VHD, wird direkt geschrieben. Handelt es sich dagegen um einen Zugriff, um die Datei anzulegen – was nichts mit VHD zu tun hat – dann wird das über den so genannten »Coordinator Node« durchgeführt.
Innerhalb des Failover-Clusters gibt es für die CSV einen »Owner«. Und dieser Owner trägt die Bezeichnung Coordinator-Node. Er wickelt alle dateibasierten Aktionen ab wie das Anlegen, Löschen oder Verschieben.
Was parallel von verschiedenen Knoten erfolgen kann, ist der Zugriff auf die VHD-Dateien, also für eine VM. Man kann diese Technologie daher auch nur für Hyper-V verwenden, nicht für andere Szenarien wie etwa SQL-Server. CSV gehören nach dem heutigen Stand nur zum Hyper-V.
Bild 3: Der Coordinator-Node führt Dateioperationen aus.
(Grafik: Add-On)
Abbildung 3 zeigt ein Beispiel für eine Filesystem-Operation wie das Anlegen deiner Datei. Angenommen ein Knoten, der nicht Coordinator-Node sein soll, will eine Datei anlegen. Dann wird er nicht direkt auf der LUN arbeiten, sondern er wird über seinen Coordinator-Node mit der LUN verbunden. Der Benutzer bemerkt nichts, der Verkehr geht über das Netz und der Coordinator-Node ändert die Dateitabelle auf dem NTFS.
Bild 4: VHD-Zugriff von jedem Knoten. (Grafik: Add-On)
Wenn dagegen nun direkt aus einer VHD gelesen werden soll, entscheidet der Gerätetreiber, dass dies der Knoten direkt machen (siehe Abbildung 4) kann. Wenn ein Coordinator-Node ausfällt, der Eigentümer der LUN ist, entstehen keine größeren Probleme. Denn der Coordinator-Node ist nur eine Ressource im Cluster. Wenn sie ausfällt, übernimmt eine andere diese Aufgabe und wird dann eben zum Coordinator für diese CSV. Das wird noch schwieriger, denn normalerweise verwendet man ja nicht nur eine LUN, sondern gleich mehrere. Das heißt bei zehn LUNs müssen auch zehn Coordinator-Nodes vorhanden sein. Sollten aber nur fünf physische Knoten existieren, würde jeder dieser Knoten eben für zwei Einheiten der Coordinator-Node sein.
Mehr Ökonomie bei der Plattennutzung
Bild 5: Vorteile des CSV. (Grafik: Add-On)
Die Vorteile in Bezug auf die Ausnützung des vorhandenen Festplattenplatzes gegenüber Hyper-V in der ersten Version verdeutlicht die Abbildung 5. Früher musste man entweder eine LUN von Knoten A auf B umschalten und wenn dort zehn VMs lagen, musste man alle zehn VMs mitnehmen. Oder das andere Extrem: eine jede VM bekommt eine eigene LUN zugewiesen. Das führt zu einer enormen Platzverschwendung, wenn man zu viel Platz einer einzelnen LUN zugewiesen hat.
Mit dem Hyper-V R2 wird das nun anders. Der Administrator kann eine große LUN anlegen, auf die viele VMs zugreifen. Die teilen sich dann den vorhandenen Platz. Schaut sich der Administrator mit dem »Windows Explorer« die Volumes an, zeigt sich, dass CSV auf allen Knoten identische Pfade angelegt hat – nach dem folgenden Muster:
%windir%\ClusterStorage\Volume1\
%windir%\ClusterStorage\Volume2\
%windir%\ClusterStorage\Volume3\
Beim Windows Server 2008 R2 benötigt man die Enterprise-Variante, um an das CSV zu kommen. Doch beim kostenlosen Hyper-V Server R2 ist nun auch die Rolle des Failover-Cluster (zusätzlich zur Hyper-V-Rolle) verfügbar. Damit gibt es kostenlose Hochverfügbarkeit und Live-Migration. Nur die Gastbetriebssysteme und Applikationen in den VMs sind dann noch zu lizenzieren.
Im Produktivbetrieb ist ein spezielles Netz für die Live-Migration sinnvoll, es sollte kein Clientverkehr auf diesem Netz aktiv sein. Damit das Verschieben der VMs mit Live-Migration funktioniert, sind zwei Bedingungen zu erfüllen: Zum einen kann man nur innerhalb einer Prozessor-Architektur verschieben – eine Migration von AMD-basierten Servern auf Intel-Rechner ist nicht machbar. Zum anderen sollten die physischen Server – also die Hosts – im selben Subnetz liegen. Generell wird maximal eine Live-Migration zwischen zwei Knoten zu einer Zeit unterstützt.