Windows 2012 macht Dateifreigaben über SMB 3.0

Transcription

Windows 2012 macht Dateifreigaben über SMB 3.0
Windows 2012 macht Dateifreigaben
über SMB 3.0 hochverfügbar
Eine Änderung der Datei- und Speicherdienste und der Einsatz des Protokolls SMB 3.0 (Server Message
Block) führen zu hochverfügbaren Dateidiensten. Damit soll allein diese Verbesserung für viele Anwendungsfälle ausreichen, um sofort die Migration auf die neueste Version des Windows-Serverbetriebssystems
anzugehen. John Savill nimmt die Verbesserungen genau unter die Lupe.
Fragt man die Administratoren, was sie
für das beste Feature bei Windows Server
halten, wird der Bereich der Dateidienste
es wohl nicht unter die Top 5 schaffen.
Doch mit der Vorstellung des Windows
Server 2012 wird sich das ändern. Das
Zusammenspiel der „File and Storage Services“ mit dem SMB Version 3.0 (SMB 3.0; es
wurde von SMB 2.2 zur Version 3 umbenannt) bringt einige erstaunliche Features
ins Spiel. Damit ändert sich die Art und
Weise, wie das Filesharing arbeitet. Dabei
lassen sich auch hochverfügbare Konfigurationen mit wenig Aufwand erstellen.
In diesem Beitrag werden zwei wichtige
Neuerungen der Dateidienste bei einem Failover Clustering gezeigt: das SMB Transparent Failover und das SMB Scale-Out. Dabei
wird auch gezeigt, wie der Systembetreuer
diese Neuerungen einsetzen kann, um eine
Dateidienste-Umgebung für sehr komplexe
Arbeitslasten zu bieten – inklusive Datenbanken auf Basis des Microsoft SQL Servers
und Konfigurationen mit virtuellen Maschinen (VMs) auf der Basis des Hyper-V.
nen Servern im Cluster (sie werden auch als
Nodes oder Knoten bezeichnet) verschieben. Diese Dienste bestehen aus verschiedenen Ressourcen, wie etwa einer IP-Adresse,
einen Netzwerknamen, Speicher und den
aktuellen Dienst – wie etwa Dateiserver,
Printserver, VM, Exchange Server Mailbox
Server und so weiter. Die Dienste können
nach einem vorgegebenen Plan von einem
Knoten zum anderen verschoben werden
oder aber bei einem unerwarteten Ausfall
eines Servers auf einen anderen transferiert
werden. Im letzteren Fall werden die Dienste, die auf dem ausgefallenen Server aktiv
waren unter den verbleibenden – gesunden
– Knoten im Cluster verteilt. In Abbildung 1
Dateidienste in einer Failover
Cluster-Umgebung
Ehe es an die Vorstellung der neuen Funktionalitäten geht, soll zuerst beschrieben
werden, wie die Dateidienste in einer Failover Cluster-Umgebung funktionieren. Damit
lassen sich hochverfügbare Dateiserver –
noch genauer – hochverfügbare Dateifreigaben erstellen. Bei Windows Server 2012
können bis zu 64 Server zu einem Failover
Cluster zusammengespannt werden – bei
der Vorgängerversion Windows Server 2008
Release 2 waren es nur 16 Server in einem
Cluster. Alle 64 Server in dem Cluster müssen allerdings dann auch die Rolle „Failover
Cluster“ installiert haben und dann so konfiguriert sein, dass sie einen gemeinsamen
Satz von Speicher und Diensten teilen.
Dann lassen sich die Dienste, die in einem
Cluster definiert sind, zwischen den einzel-
Bild 1. Das Prinzip eines Failover Cluster, bei dem ein Dienst zwischen den Knoten verschoben werden kann.
1
ist eine Konfiguration mit einem 4-KnotenCluster und einer Dateiserver-Ressource zu
sehen. Der Dateiserver stellt eine einzige
Dateifreigabe zur Verfügung, die alle Inhalte auf einer NTFS-formatierten LUN (Logical
Unit Number) ablegt. Bei der LUN handelt
es sich um einen Blockbereich eines
gemeinsamen Speichers, mit dem sich alle
Knoten des Clusters verbinden können. Der
Dateiserver – und damit auch die Dateifreigabe – ist anfangs online mit dem dritten
Knoten des Clusters verbunden. Dieser
Knoten mountet auch die LUN, die die
Inhalte des Dateiservers beherbergt. Bei
einem beliebigen Fehler zieht der Dateiserver auf den vierten Knoten um, der auch
die LUN mountet, die nötig ist, um die
gemeinsamen Inhalte vorzuhalten. Die LUN
von jedem der Knoten gemountet sein, der
den Dateiserver beherbergt. So kann man
auf die Inhalte zugreifen, denn das NTFS ist
ein „Shared Nothing“-Dateisystem, auf das
immer nur von einem Knoten aus zugegriffen werden kann. Daher muss, wenn ein
Dateiserver zu einem anderen Knoten
umzieht, die LUN ebenfalls zwischen allen
Knoten verschoben werden. Ein Dateiserver
ist somit immer nur bei einem der Knoten
zu einer Zeit online.
Transparenter
SMB-Failover-Vorgang
Das beschriebene Szenario enthält Herausforderungen, denn es geht um eine Dateifreigabe, die zwischen Knoten eines Clusters in geplanten und nicht geplanten
Ausfällen verschoben werden soll. Wenn
eine Applikation auf eine Datei zugreifen
möchte, die auf einer Dateifreigabe liegt,
wird zuerst „Handler“ angelegt. Sie erlauben der Anwendung, auf die Datei zuzugreifen und sie unter Umständen auch zu
sperren, damit keine andere Anwendung
nicht gleichzeitig in diese Datei schreiben
kann und dass es so zu Inkonsistenzen
kommt. Des Weiteren legt der Handler fest,
wie auf die Daten zugegriffen wird und
sogar noch ob Daten auf dem Dateiserver
gepuffert werden können – das hat dann
positive Auswirkungen auf die Performance
des Systems.
Beim Windows Server 2008 Release 2 (und
frühere Versionen des Windows Server)
gehen alle Handler verloren, wenn ein
Dateiserver auf einen anderen Knoten verschoben wird. Üblicherweise ist diese Ein2
schränkung kein allzu großes Problem für
normale Anwender, die zum Beispiel auf
ein Word-Dokument zugreifen möchten.
Doch das sieht beim Zugriff auf einen
Datenbank auf Basis des SQL Servers ganz
anders aus.
Eine zweite Herausforderung ist der Zeitaufwand, den ein Client eines Dateiservers
spendieren muss, um zu erkennen, dass der
gewünschte Dateiserver nicht länger zur
Verfügung steht und dass für die Wiederherstellung der Verbindung einige Schritte
auszuführen sind. Die Werte für den
TCP/IP-Timeout (inklusive des mehrmaligen
Versuchs, doch noch auf die Daten zugreifen zu können) führen typischerweise zu
einer Unterbrechung von 40 Sekunden –
das ist für Server-Applikationen nicht
akzeptabel, wenn sie Daten auf Dateifreigaben ablegen müssen. Denn für diese 40
Sekunden setzen alle Aktivitäten aus, die
mit Ein-/Ausgabe auf der Dateifreigabe zu
tun haben. Diese Situation wird auch als
„Brownout“ – im Gegensatz zum Totalausfall (Blackout) bezeichnet. Diese Problemfelder müssen für das SMB gelöst werden.
Wenn Server-Applikationen wie der SQL
Server oder der Hyper-V auf SMB-Freigaben
zugreifen sollen, dürfen sie die Datei-Handler nicht verlieren oder ungefähr 40 Sekunden mit der Ein-/Ausgabe aussetzen.
Hier setzt das Feature des „SMB Transparent Failover“ ein und behebt diese beiden
Herausforderungen. Es aktiviert die Funktionalität der ununterbrochen verfügbaren
Dateifreigaben für SMB 3.0-Clients, vermeidet den Verlust des Datei-Handlers bei
einem Ausfall und reduziert die Zeit, die
nötig ist, um zu erkennen, dass der Dateiserver auf einen anderen Knoten umgezogen ist – dann gibt es keine „Brownouts“
mehr.
Dateifreigaben verfügbar halten
Das „SMB Transparent Failover“ besteht aus
einige Konfigurationsänderungen sowie
neuen Techniken. Einen Vorteil, den Dateiserver üblicherweise bieten, ist das Puffern
von Daten, die auf den Massenspeicher zu
schreiben sind. Damit bekommen die
Clients schneller die Benachrichtigung, dass
der Schreibvorgang abgeschlossen ist, denn
die Dateiserver puffern den Schreibauftrag –
mit den zu schreibenden Daten – im flüchtigen Speicher, ehe der Schreibvorgang auf
Disk tatsächlich ausgeführt wird. Doch
damit ergibt sich auch ein Problem: Kommt
es beim Dateiserver zu einem Stromausfall
und sind noch nicht alle Daten auf die Festplatte geschrieben, kommt es auch zu
einem Datenverlust.
Es gibt allerdings auch Applikationen, die
das Puffern unterbinden. Sie setzen dazu
beim Anlegen des Datei-Handlers das Attribut „FILE_FLAG_WRITE_THROUGH“. Damit
wird sichergestellt, dass die Anwendung die
Informationen immer sofort auf die Festplatte schreibt. Erst dann kommt die Bestätigung an den Client zurück, die besagt, dass
diese Aktion abgeschlossen ist. Beim „SMB
Transparent Failover“ wird standardmäßig
beim Anlegen eines jeden datei-Handlers
das„FILE_FLAG_WRITE_THROUGH“
gesetzt. Damit wird auf einen flüchtigen
Zwischenspeicher verzichtet. Dadurch gibt
es zwar eine geringe Einschränkung in
Sachen Performance, weil der Cache nicht
mehr verwendet wird. Doch die gewonnen
Datenintegrität erweist sich in der Praxis als
ein gutes Gegengewicht.
Die zweite Änderung, die beim „SMB
Transparent Failover“ ins Spiel kommt, ist
die Art und Weise, wie das Betriebssystem
die datei-Handler verwaltet. Üblicherweise
werden diese Objekte im Speicher auf dem
Dateiserver abgelegt. Wenn nun aber ein
Knoten ausfällt und der Server auf einen
anderen Knoten im Cluster umzieht, gehen
die Handler verloren. Das hat natürlich die
entsprechenden Konsequenzen für die
betroffene Applikation. Daher legt der
„SMB Transparent Failover“ den Zustand
des Handlers nicht nur im Arbeitsspeicher
ab, sondern sichert ihn auch noch in der
„Resume Key Database“ – im Systemverzeichnis auf der Festplatte, auf der die Datei
liegt und auf die sich der Handler bezieht.
Das Ablegen der Handler-Information auf
der Festplatte bewahrt den Zustand des
Handlers, wenn der Dateiserver zwischen
Knoten eines Clusters verschoben wird.
Da aber die Zugriffs- und Schreibzeiten bei
Festplatten um ganze Größenordnungen
langsamer sind als beim Arbeitsspeicher,
verursachen Arbeitslasten, bei denen viele
Metadaten anfallen (wie etwa das Anlegen,
Löschen, Umbenennen, Erweitern, Öffnen
und Schließen von Dateien) zusätzlich EinAusgabelast in der Resume Key Database.
Damit verfügt die Festplatte über weniger
effektiven Ein-/Ausgabedurchsatz als
ansonsten. Aber auch hier gilt: Die Vorteile
durch dieses Konzept machen die Reduzie-
rung der Ein-/Ausgabe-Performance wieder
wett.
Das Reduzieren der
Brownout-Zeiten
Um die zweite Herausforderung zu beherrschen und um die Zeit zu verringern, die
der SMB-Client benötigt, um zu erkennen,
dass die TCP-Verbindung nicht mehr verfügbar ist, muss der Cluster eine Form von
proaktiven Verhalten an den Tag legen. Der
Cluster muss die SMB-Clients informieren,
die sich mit einer Freigabe, die auf einem
Cluster liegt, verbinden, dass sich der Dateiserver auf einen anderen Knoten im Cluster
verschiebt, wenn das eintritt. Auf diese Art
kann sich der SMB-Client schneller erneut
verbinden. Dazu kommt die neue Fähigkeit,
die als „SMB Witness“ bezeichnet wird, ins
Spiel – sie arbeiten vom logischen Kommunikationsprinzip her wie folgt:
SMB-Client:
Ich möchte die Verbindung zu dieser Freigabe auf dem ServerA herstellen.
SMB ServerA:
OK, die Verbindung steht. Diese Freigabe
liegt auf einem Cluster, informiere den
„SMB Witness“-Prozess.
SMB Client Witness:
Sehr schön, bitte teil mir mit, welche Knoten alle im Cluster sind.
SMB ServerA:
Hier ist die Liste mit allen Knoten im Cluster:
ServerA, ServerB, ServerC,. . .
SMB Client Witness:
Hallo ServerB. Ich verbinde mich mit dieser
Freigabe mit der IP-Adresse auf ServerA. Ich
möchte mich bei dir eintragen, damit du mir
mitteilen kannst, wenn etwas Unvorhergesehenes beim ServerA passiert oder wenn
der Dateiserver verschoben wird.
SMB ServerB:
Na klar, ich lasse es dich wissen.
Nach diesem Informationsaustausch wird
der SMB-Client über den „SMB Witness“Prozess immer dann informiert, wenn etwas
mit dem Dateiserver im Cluster passiert.
Dadurch kann der Client viel schneller sich
neu mit dem Dateiserver verbinden, als das
zuvor nur mit Hilfe des TCP Timeouts machbar war. Denn mit der neuen Konfiguration
liegt die Zeit für das Erkennen und Reagieren auf einen derartigen Ausfall zwischen 5
und 7 Sekunden – und nicht mehr im
Bereich von 40 Sekunden. Um das „SMB
Transparent Failover“ zu aktivieren, muss
der Administrator nichts unternehmen.
Wenn er den Failover Cluster Manager, den
Server Manager oder die Powershell verwendet, um eine Freigabe auf einem Dateiserver unter Windows Server 2012 Cluster
zu erzeugen, ist das „SMB Transparent Failover“ standardmäßig für diese Freigabe
aktiviert. Wenn man die Freigabe mit dem
Windows Explorer oder über das Kommando Net Share anlegt, wird der SMB Transparent Failover nicht aktiviert, denn diese Tools
kennen diesen Modus nicht. Clients auf der
Basis von Windows 8 oder Windows Server
2012, die mit SMB 3.0 zurecht kommen,
verwenden dann die Funktionalität des SMB
Witness und werden die Sessions öffnen,
um die Write-Trough-Handler zu nutzen.
Der Administrator kann die Powershell einsetzen, um zu bestätigen, dass dieser Prozess ausgeführt wird. In einer Testumgebung hat der Autor zwei Knoten in einem
Cluster mit einer Dateiserver-Ressource und
einer Freigabe angelegt. Dann erfolgt der
Reconnect von dem Client-System aus und
über ein entsprechend berechtigtes Powershell-Fenster wurde dann das folgende
Kommando auf einem Knoten im Cluster
ausgeführt:
PS C:\> get-smbwitnessclient | select
clientname, fileservernodename,
witnessnodename
clientname fileservernodename witnessnodename
---------- ------------------ --------------savdalwks08 WIN8FC01 WIN8FC02
Wie man sehen kann zeigt die Ausgabe den
Namen des Client-Systems (hier: savdalwks08), den Dateiserver, mit dem sich
der Client verbunden hat (Win8FC01) und
den Knoten, bei dem er für die Benachrichtigung eingetragen ist. (den Witness,
Win8FC02). Eine andere Option ist der Einsatz des Powershell-Cmdlets Get-SmbOpenFile und das Untersuchen der Property ContinuouslyAvailable.
Um eine Liste aller vom Administrator angelegten Freigaben zu bekommen und um
dann zu bestimmen, ob sie für die Hochverfügbarkeit konfiguriert sind, kann man den
folgenden Powershell-Code verwenden:
PS C:\> Get-SmbShare | Where {$_.Scoped -eq "true" -and $_.Special -ne
"True"} | Sort ClusterType | Format-Table
Name, ScopeName, ClusterType, ContinuouslyAvailable, Path
Name ScopeName ClusterType ContinuouslyAvailable Path
---- --------- ----------- --------------------- ---NonCSVData WIN8FSTRAD Traditional
True E:\Shares\NonCSVData
DataCSV WIN8FSSCOUT ScaleOut True
C:\ClusterStorage\Vo...
Scale-Out-Möglichkeiten des SMB
Der Einsatz von Dateiservern in einem Cluster hat sich seit der ersten Einführung nicht
großartig geändert. Nur eine Knoten im
Cluster kann zu einem Zeitpunkt eine
bestimmte NTFS-formatierte LUN mounten
und die Freigaben beherbergen. Dieses
Angebot eines Dienstes von nur einem Knoten kann zu Einschränkungen im Bereich
der Skalierbarkeit und auch zu Verzögerungen führen. Denn die betreffenden LUNs
müssen abgehängt (dismountet), verschoben und erneut gemountet werden, wenn
die Ressource „Dateiserver“ verschoben
wird. Diese Notwendigkeit hat dazu
geführt, dass die Speicherarchitekten zu
einigen nicht optimalen Entwurfsentscheidungen gezwungen waren, wenn sie ihren
Cluster geplant hatten und dabei vermeiden
wollten, dass einzelne Knoten untätig sind.
Angenommen ein Unternehmen möchte
ein NTFS-Volume für den gemeinsamen
Zugriff vorsehen. Doch diese Freigabe soll
hochverfügbar sein. Bei diesem Szenario
sind zumindest zwei Hosts in einem Cluster
nötig. Doch nur einer von ihnen kann die
Freigabe zu einer Zeit bereitstellen. Um eine
derartige Aktiv-Passiv-Situation zu vermeiden, in der ein System sozusagen gar nichts
tut, teilen die Speicher-Admins die LUN auf
und machen zwei daraus. Dann legen sie
zwei NTFS-Volumes an (eines auf jeder LUN)
und erzeugen dann zwei Dateiserver im
Cluster – einen jeden mit einer eigenen Freigabe. Diese Konfiguration erlaubt es dann,
dass jeder Knoten eine Freigabe anbieten
kann und auch die Freigabe des anderen
Knotens in einem Fehlerfall übernehmen
kann. Auf dieser Art arbeiten dann auch
3
beide Knoten – aber der Speicher ist nun
auf eine Art aufgeteilt, die ein Unternehmen nicht unbedingt haben möchte.
Zudem ergibt sich ein weiteres Problem:
Wenn man die Inhalte nicht korrekt verteilt,
bekommt ein Knoten unter Umständen
deutlich mehr Verkehr ab als der andere.
Das führt zu einem unausgewogenen
Design und daraus kommt dann unter
Umständen der Bedarf, viele Daten verschieben zu müssen. Und dieses Beispiel
arbeitet ja nur mit zwei Knoten – angenommen es sind vier Knoten auf diese Weise zu
konfigurieren (siehe Abbildung 2) oder gar
deren acht, gibt es eine Vielzahl von einzelnen LUNs, NTFS-Volumes und Freigaben zu
separieren, allein um alle Knoten im Cluster
beschäftigt zu halten.
Das Grundproblem für diesen Zusatzaufwand ist bei den NTFS-Volumes zu suchen:
Sie können nicht wirklich gemeinsam freigeben werden und können immer nur von
einem Knoten zu einer Zeit benutzt werden.
Beim Windows Server 2008 Release 2 hat
man das bereits teilweise behoben – mit der
Einführung der CSV (Cluster Shared Volumes). Vom Prinzip her befähigen die CSVs
eine einzelne NTFS-formatierte LUN, von
allen Knoten in einem Cluster gleichzeitig
beschrieben und gelesen zu werden.
Dazu stellen einige recht clevere Mechanismen im Hintergrund sicher, dass die
Daten immer konsistent gehalten werden.
Doch die CSVs beim Windows Server 2008
R2 sind nur für den Einsatz mit der Virtualisierungs-Plattform Hyper-V und die zugehörigen VMs (virtuelle Maschinen) konzipiert.
Dabei dürfen die VMs auf Hyper-V-Systemen in einem Cluster laufen, der die CSV
beherbergt.
Beim Windows Server 2012 wird der Einsatz
der CSV erweitert: Sie spielen auch mit
einem neuen Typus von Dateiservern
zusammen du zwar mit dem sogenannten
„SMB Scale-Out“-Dateiserver. Der Typus des
Dateiservers – Scale-Out oder der traditionelle (also das bestehende DateiserverModell) – wird zum Zeitpunkt des Anlegens
des Dateiservers bestimmt. Legt er Administrator einen neuen Dateiserver des Typs
Scale-Out an, muss er die Freigaben auf Verzeichnissen anlegen, die auf Volumes eines
CSV liegen. Beim Windows Server 2012 tragen die NTFS-Volumes die Bezeichnung
„CSVFS“, wenn sich als CSV-aktiviert ange-
legt wurden. Doch das Dateisystem ist nach
wie vor NTFS, doch mit der Änderung des
Labels für das Dateisystem wird die Unterscheidung einfacher: So ist auf den ersten
Blick zu erkennen, ob es sich um CSVDatenträger handelt oder um die gewöhnlichen NTFS-Volumes.
Dabei darf man nicht aus den Augen verlieren, dass ein CSV für alle Knoten im Cluster
gleichzeitig verfügbar ist. Daher wird die
derart angelegte Freigabe nun gleichzeitig
allen Knoten im Cluster angeboten werden
können. Und alle Knoten können dadurch
auf den Inhalt zugreifen. Wenn der Systembetreuer einen Scale-Out-Server anlegt,
muss er keine IP-Adresse explizit angeben –
die IP-Adressen für die Schnittstellen, die für
den Zugriff der Clients auf dem ClusterKnoten konfiguriert sind, finden Verwendung – und alle Knoten bieten den entsprechenden Dienst an.
Eine weitere sehr interessante Funktionalität
in diesem Zusammenhang ist der Einsatz
des „SMB Transparent Failover“, um einen
Client von einem Knoten, der die Funktionalität des Scale-out Dateiservers bietet, an
einen anderen Knoten zu verschieben –
ohne dass dabei eine Unterbrechung des
Zugriffs erfolgt. Angenommen man möchte
einen Knoten in einen Wartungs-Modus
bringen, dann kann man mit dem folgenden Befehl einen bestimmten SMB-Client
von einem Knoten zu einem anderen verschieben. Mit Hilfe der Powershell lässt sich
dieser Befehl leicht für alle Clients ausführen, die mit einem bestimmten Knoten im
Cluster verbunden sind.
Zuerst muss er Administrator den Server
bestimmen, den ein SMB-Client verwendet:
PS C:\> get-smbwitnessclient | select
clientname, fileservernodename, witnessnodename
clientname fileservernodename witnessnodename
---------- ------------------ --------------savdalwks08 WIN8FC01 WIN8FC02
Dann wird der Client auf den anderen Server in der Testumgebung verschoben:
Bild 2. Kompromisse prägen den Einsatz der üblichen geclusterten Dateiserver.
4
PS C:\> Move-SmbWitnessClient -ClientName savdalwks08 -DestinationNode
Win8FC02
Um zu verifizieren, dass dieser Verschiebevorgang auch ausgeführt wurde, wird das
erste Kommando erneut gestartet. Dabei
zeigt sich, dass der Client nun auf den anderen Knoten im Cluster verschoben wurde.
Aber die „Witness“ liegt nach wie vor beim
ursprünglichen Knoten.
PS C:\> get-smbwitnessclient | select
clientname, fileservernodename, witnessnodename
clientname fileservernodename witnessnodename
---------- ------------------ --------------savdalwks08 WIN8FC02 WIN8FC01
Nun stellt sich die Frage, was diese Ausgabe
bedeutet. Hierzu muss man sich erneut die
Abbildung 2 vor Augen führen: Nun kann
der Administrator eine einzige, große LUN
anlegen – mit einem NTFS-Volume gleichzeitig verfügbar für alle vier Knoten. Microsoft unterstützt derzeit bis zu acht Knoten
auf einem SMB Scale-out Dateiserver. Diese
Konstellation reduziert die Verwaltungsaufgaben enorm: Es sind keine zusätzlichen
separaten LUNs anzulegen, keine Freigaben
und keine Probleme mit den IP-Adressen der
einzelnen Dateiserver sind zu beachten.
Deswegen sei die Frage erlaubt: Warum gibt
es den traditionellen Dateiserver-Typus –
wer wird das jemals noch einsetzen?
Die CSV verwenden sehr clevere Mechanismen, um sicherzustellen, dass ein NTFSVolume von allen Knoten in einem Custer
beschrieben und aus ihm gelesen werden
kann, ohne dass es zu Dateninkonsistenzen
kommt. Dabei sind die klügsten Teile für das
Schreiben von Metadaten auf die NTFSVolumes eingesetzt worden – denn das ist
auch der größte Problembereich, wenn
mehrere Knoten gleichzeitig ein NTFS-Volume benutzen. Schon wenn nur zwei Server
gleichzeitig auf Metadaten in einem NTFSVolume scheiben, kann es zu Inkonsistenzen
und Datenverlust kommen. Bei den CSV
wird das Problem gelöst, indem ein „Coordinator Node“ für jede CSV-Disk existiert.
Dieser Knoten mountet die Festplatte lokal
und führt alle Metadaten-Aktionen aus –
auch für alle anderen Knoten des Clusters.
Die anderen Cluster-Knoten senden ihre
Metadata-Schreibaktionen über das ClusterNetzwerk an den Coordinator Node. Die
Standardaktionen im Bereich der Ein-/Ausgabe können die anderen Knoten direkt
ausführen. Das Umleiten der MetadatenAktionen über das Netzwerk führt allerdings
zu einer gewissen Verzögerung. Das ist der
Grund, weswegen die „SMB Scale-Out“Dateiserver für die Schlüssel-Arbeitslasten
eines Servers – wie etwa SQL Server oder
Hyper-V – konzipiert sind. Denn diese
Anwendungen benötigen nur wenige
Metadaten-Aktionen und haben ihren
Fokus auf der reinen Daten-Ein-/Ausgabe.
Vergleicht man die Ein-/Ausgabe-Charakteristika derartiger Server-Arbeitslasten mit
denen von typischen Information Worker,
die zum Beispiel in erster Linie Dokumente
mit Microsoft Office bearbeiten, dann
beträgt der Anteil der Metadaten-Operationen bei den Information Workern 60 bis zu
70 Prozent der gesamte Ein-/Ausgabelast.
Das bedeutet, dass man sehr viele Daten
umleiten muss. Daraus lässt sich aber nicht
ableiten, dass ein SMB Scale-Out-Dateiserver bei einem Einsatz im Umfeld der Information Worker nicht gut funktioniert, doch
das darf man sicher nicht aus den Augen
verlieren. Derzeit lautet zumindest die Empfehlung, dass man die Sale-Out Dateiserver
in erster Linie für Microsoft SQL Server und
Hyper-V verwenden soll.
Es gibt aber noch einen weiteren Grund,
weswegen ein Scale-Out Dateiserver nicht
so gut für das Abspeichern von OfficeDokumenten und anderen Benutzerdaten
geeignet ist. Die Windows-Dateiserver-Plattform wird in vielen Einsatzfällen verwendet
– aufgrund von Funktionalitäten wie den
Kontingenten (Quotas), Datei-Klassifizierungen, Branch Cache und – ab Server 2012
auch wegen der Daten-Deduplizierung.
Aber keine dieser Funktionen ist bei einem
Scale-Out Dateiserver verfügbar. Die typischen Server-Anwendungen benötigen
diese Funktionalitäten dagegen nicht.
soft-Umfeld erreichbar war. Auch wenn das
Scale-Out-Konzept in erster Linie auf Arbeitslasten wie den SQL Server und den Hyper-V
abzielt, so werden noch weitere Szenarien folgen und empfohlen werden. Damit bekommen die Anwender neue Optionen, wenn es
um die Speicherarchitektur und die generelle
IT-Konzeption geht.
John Savill
SMB Transparent Failover
vermeidet Ausfallzeit
Keine Ausfallzeit, lediglich eine geringe Verzögerung bei der Ein-/Ausgabe verspricht das
Konzept des SMB Transparent Failover. In
Abbildung 3 ist die Funktionsweise skizziert,
wie sie beim Einsatz zusammen mit einem
Hyper-V-Host abläuft, der die Daten auf
einem geclusterten Dateiserver (mit zwei
Knoten im Cluster) ablegt: Zuerst läuft alles
normal (Zustand 1), dann erfolgt die „Failover-Operation“ für die Freigabe \\fs1\share,
die zuerst auf dem Knoten A aktiv ist und
nach dem Failover auf dem Knoten B läuft.
Die Verbindungen und die Datei-Handler
werden dann automatisch umgestellt, so dass
diese Freigabe dann auf dem Knoten B liegt
und genauso benutzt werden kann, wie vorher auf dem Knoten A. Für die Anwendung
bedeutet das, dass die Ein-/Ausgabe weiterläuft ohne dass ein Fehler auftritt. Es kommt
während der automatischen Umstellung
lediglich zu einer kurzen Verzögerung bei den
anstehenden Ein-/Ausgabeoperationen.
Nötig für dieses Szenario sind SMB 3.0 als
Protokoll, ein Failover Cluster für die Freigaben (auf Basis von Windows Server 2012)
und die Freigaben selbst müssen für die
„Continuous Availability“ aktiviert sein.
Abschließende Feststellungen
Die Kombination aus Scale-Out Dateiserver
und SMB Transparent Failover (letztere Funktionalität funktioniert sowohl mit dem traditionellen Dateiserver-Konzept wie auch dem
Scale-Out Dateiserver) führt zu einer Dateiserver-Plattform, bei der mehrere Server dieselbe
Freigabe mit denselben Inhalt nutzen können.
Daraus ergibt sich eine höhere Skalierbarkeit
für die Clients und eine Zuverlässigkeit sowie
Ausfallsicherheit, die zuvor nicht im Micro-
Bild 3. Ablauf des Transparent Failovers beim
SMB 3.0, Quelle: Microsoft/SNIA/SNW.
5