Was ist ein Cluster Shared Volume?


Ein Cluster Shared Volume (kurz CSV) ist eine allen im Cluster befindlichen Systemen zur Verfügung stehende Festplattenressource. Sobald diese verfügbare Ressource in ein CSV umwandelt, wird auf dem jeweiligen Hostsystem unter C:\ ein Ordner „Cluster Storage“ angelegt, der nichts anderes als das CSV ist – Stichwort Pointer. Die Zugrunde liegende Partionierung hierbei ist ein simples NTFS. Moment – ein simples NTFS? Aber NTFS ist als Dateisystem doch gar nicht clusterfähig wie zum Beispiel VMFS bei VMware. Wie macht Microsoft das bloß?

 

Wie macht Microsoft das bloß?


Die Antwort ist prinzipiell ganz einfach, vorab möchte ich kurz auf zwei wichtige Begrifflichkeiten eingehen.

  • MIO (Meta I/O)
  • DIO (Direct I/O)

Beginnen wir der Einfachheit halber mit Direct I/O. Hierunter verstehenwir schlichtweg direkte Schreibvorgänge, die keinerlei Anpassungen an Meta Informationen des Dateisystemes vornehmen. Darunter fällt zum Beispiel das Ändern eines bereits bestehenden Blocks. Hieraus ergibt sich eigentlich bereits was MIO bedeutet. Meta I/O Vorgänge ändern die Meta Informationen des Dateisystems bzw. des Volumes. Hierunter fallen Punkte wie z.B. das Anlegen einer Datei oder das Erweitern einer Datei.

Von Relevanz für ein Cluster sind vor allem die MIOs. Hier verwendet VMware zum Beispiel einen Lock Mechanismus, der die relevanten Meta Daten Bereiche kurz sperrt und die Anpassungen vornimmt. Dies ist mit NTFS nicht möglich. Diese Meta Daten liegen lediglich in der sog. Master File Table (MFT). Diese liegt nur einmalig auf dem Volume und kann nicht von Remote Computern gelockt werden. In dieser Formulierung steckt auch schon die Lösung von Microsoft.

 

Im oben stehenden Bild ist die Zuordnung der CSVs zu sehen. Es gibt dabei immer einen eindeutigen Besitzer der Volumes. Das CSV im Bild ist in Besitz von DC-HV-HV01 im Solution Center. Die vorher angesprochenen Meta Informationen können also nur von DC-HV-HV01 in diesem Fall durchgeführt werden. Aber moment – was ist mit den anderen Hosts im Cluster? Dürfen diese VMs keine Dateien anlegen? Aber sicher doch. Und der Weg ist eigentlich total clever. Denn über die clustereigene Verbindung wird dieser Änderungsrequest einfach an den Besitzer des Volumes übergeben. Zur Übertragung werden dabei lediglich Netze verwendet, die unter „Cluster Use“ mit dem Wert „Cluster Only“ versehen sind. Zu sehen in nachfolgendem Bild.

 

Ein schöner Nebeneffekt entsteht durch diese Architektur ebenfalls. Sofern ein Host die Verbindung zum Storage verliert, können tatsächlich auch die DIO Vorgänge über einen weiteren Host abgebildet werden, sofern dieser weiterhin eine Verbindung zum Storage besitzt.

 

Redakt.: Andreas Düpre