Dateiserver… hochverfügbar und sicher

Dateiserver… hochverfügbar und sicher

Dateiserver kennen wir… Rechtsklick, Freigabe, fertig…

Das kann auch meine Mama – spannend wird es wenn die Dateien verfügbar bleiben sollen wenn ich meinen Serverraum anzünde… oder Updates installiere und neu starte.

Ich finde hier eine Kombination aus dem klassischen Windows-Failovercluster und Storage Replica echt großartig.

Der Hauptzweck des Failoverclusters ist Hochverfügbarkeit – beide (oder mehr) Server teilen sich ein iSCSI (oder Fiberchannel, FCoE, …) Speicher und stellen diesen über einen gemeinsamen vituellen Servernamen zur Verfügung.

Der Hauptzweck von Storage Replica ist einen passiven Backupspiegel zu haben (ausgenommen Stretched Cluster)

Der Stretched Cluster traue ich noch nicht ganz über den Weg, ich habe gerne die Kontrolle darüber, dass es nur einen aktiven Datenpfad gibt, der von Hand geschwenkt wird. Das Risiko, A und B könnten auseinanderlaufen macht mich doch zu unruhig.

Ist also Hochverfügbarkeit nicht erforderlich und man möchte nur auf einen anderen Standort replizieren, wäre die Server zu Server Replikation der richtige Weg; spielt Hochverfügbarkeit eine Rolle bitte bei Schritt 2 fortfahren und die Mutigen, die es Stretchen wollen… ab zur 3:

 

1. Server zu Server Replikation

 

Nachteil: Failover relativ aufwendig, somit monatliche Probleme beim Patchen

Beide Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 3 Volumes pro Server benötigt:

  • Betriebssystem
  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher

Zuerst muss via

  • Diskpart
  • List disk
  • Select disk 1
  • Create partition msr size=128
  • Select disk 2
  • Create partition msr size=128
  • Exit

Auf beiden Servern eine MSR Partition angelegt werden, danach kann via „compmgmt.msc“ ganz normal die Partitionierung vorgenommen werden.

Ob ReFS oder NTFS verwendet wird ist abhängig vom Einsatzzweck; beides ist möglich.

Die Rolle Dateiserver und das Feature Speicherreplikat müssen über den Servermanager installiert werden:

Folgende Dienste bzw. Ports müssen in der Firewall freigegeben werden:

  • ICMP
  • SMB- Ports 445 5445
  • Windows Remoteverwaltung Port 5985

Dies kann via CMD mit folgenden Befehlen durchgeführt werden:

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (SMB eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe über SMBDirect (iWARP eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung - ICMPv4 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung – ICMPv6 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name=" Windows-Remoteverwaltung (HTTP eingehend)" new enable=yes profile=domain remoteip=any

 

Jetzt wird die Topologie darauf getestet, ob die Replikation eingerichtet werden kann


Test-SRTopology -SourceComputerName fs01-tf -SourceVolumeName M: -SourceLogVolumeName N: -DestinationComputerName fs02-tf -DestinationVolumeName M: -DestinationLogVolumeName N: -DurationInMinutes 30 -ResultPath c:\temp

 

Alle Test sollten jetzt erfolgreich abgeschlossen werden

Dann kann die tatsächliche Partnerschaft eingerichtet werden – das Laufwerk geht auf dem Zielserver offline:

New-SRPartnership -SourceComputerName fs01-tf -SourceRGName rg01 -SourceVolumeName M: -SourceLogVolumeName N: -DestinationComputerName fs02-tf -DestinationRGName rg02 -DestinationVolumeName M: -DestinationLogVolumeName N:

 

Failover

Der Failover kann nur manuell ausgelöst werden und wird durch Schwenken der Partnerschaftsquelle ausgelöst; daraufhin geht das Laufwerk auf dem Zielserver online. Das DFS Ziel muss ebenfalls manuell angepasst werden

Set-SRPartnership -NewSourceComputerName fs02-tf -SourceRGName rg002 -DestinationComputerName fs01-tf -DestinationRGName rg001

Wenn beide Seiten wieder online sind muss einige Minuten gewartet und auf beiden Seiten nochmals ein Befehl ausgeführt werden.

Set-SRPartnership -NewSourceComputerName fs02-tf -SourceRGName rg002 -DestinationComputerName fs01-tf -DestinationRGName rg001

Mit get-srgroup muss auf beiden Seiten die korrekte Funktion geprüft werden, danach kann zurückgeschwenkt werden.

Set-SRPartnership -NewSourceComputerName fs01-tf -SourceRGName rg001 -DestinationComputerName fs02-tf -DestinationRGName rg002

2. Cluster zu Cluster Replikation

 

Für Testzwecke wurde als iSCSI Host ein Windows Server verwendet. In Wirklichkeit sollte an dieser Stelle das tatsächliche Storage-System stehen.

Hierzu muss die Rolle iSCSI Zielserver installiert werden.

Danach können iSCSI Volumes für die anderen Server im Server-Manager angelegt werden.

Pro Servercluster werden zwei Volumes benötigt. Im Echtbetrieb sollte der iSCSI Host des zweiten Clusters nicht der gleiche sein wie beim ersten Cluster – sonst wäre ja der Sinn der Replikation nicht mehr gegeben – für einen Test spielt es aber keine Rolle wo die Daten liegen.

 

Es werden vier Fileserver benötigt; alle Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 3 Volumes pro Cluster benötigt, die per iSCSI angebunden werden:

  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher
  • Ein Quorum

Der Einfachheit halber werden alle Fileserver dem Servermanager des ersten Fileservers hinzugefügt.

Auf allen vier Servern müssen die Rolle Dateiserver und die Features Failoverclustering und Speicherreplikat installiert werden.

Wie bei der Einzelserver-Replikation müssen die Firewallports geöffnet werden (funktioniert nur im cmd, nicht in Powershell):

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (SMB eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe über SMBDirect (iWARP eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung - ICMPv4 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung – ICMPv6 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Windows-Remoteverwaltung (HTTP eingehend)" new enable=yes profile=domain remoteip=any

 

Nun müssen über den „Failovercluster-Manager“ zwei Cluster erstellt werden:

 

Da es beim Clustermanager nicht möglich ist, IPv6 Cluster-IPs zu vergeben, muss dies via Powershell geschehen.

Add-ClusterResource -Name “IPv6 Cluster Address” -ResourceType “IPv6 Address” -Group “Clustergruppe”

Get-ClusterResource "IPv6 Cluster Address" | Set-ClusterParameter -Multiple @{"Network"="Clusternetzwerk 1";"Address"= "2001:638:707:403::159";"PrefixLength"=64}

Stop-ClusterResource “Clustername”

Set-ClusterResourceDependency “Clustername” “[Ipv6 Cluster Address]”

Start-ClusterResource “Clustername”

 

Nun müssen die Laufwerke in der Datenträgerverwaltung online geschaltet und GPT initialisiert werden. Das zukünftige Clusterquorum muss mit einer NTFS formatierten Partition versehen werden.

Die anderen Festplatten können auch mit ReFS verwendet werden.

 

Danach können sie im Failovercluster eingefügt werden.

Jetzt kann das Quorum auf beiden Clustern konfiguriert werden.

 

Nur wird die Dateiserverrolle hinzugefügt:

 

Das Datenvolume muss „zu den freigegebenen Clustervolumes“ hinzugefügt werden, das Protokollvolume muss „verfügbarer Speicher“ bleiben.

 

Jetzt kann eine Freigabe angelegt werden.

 

 

Nun kann die Cluster zu Cluster Replikation konfiguriert werden.

Die Clusterserver müssen vorab auf die jeweils anderen Cluster berechtigt werden.

Grant-SRAccess -ComputerName FS01-tf -Cluster fscluster02-tf

Grant-SRAccess -ComputerName FS02-tf -Cluster fscluster02-tf

Grant-SRAccess -ComputerName FS03-tf -Cluster fscluster-tf

Grant-SRAccess -ComputerName FS04-tf -Cluster fscluster-tf

Grant-SRAccess -ComputerName fscluster-tf -Cluster fscluster-tf02

Grant-SRAccess -ComputerName fscluster-tf02 -Cluster fscluster-tf

Grant-ClusterAccess –user FS01-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FS02-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FS03-tf$ –Full –Cluster fscluster-tf

Grant-ClusterAccess –user FS04-tf$ –Full –Cluster fscluster-tf

Grant-ClusterAccess –user FScluster-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FScluster02-tf$ –Full –Cluster fscluster-tf

 

Folgender Befehl aktiviert die Replikation

New-SRPartnership -SourceComputerName fscluster-tf -SourceRGName rg01 -SourceVolumeName C:\ClusterStorage\Volume1 -SourceLogVolumeName n: -DestinationComputerName fscluster02-tf -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\Volume1 -DestinationLogVolumeName n:

 

Failover

Der Failover kann nur manuell ausgelöst werden und wird durch Schwenken der Partnerschaftsquelle ausgelöst; daraufhin geht das Laufwerk auf dem Zielserver online. Das DFS Ziel muss ebenfalls manuell angepasst werden

Set-SRPartnership -NewSourceComputerName fscluster02-tf -SourceRGName rg02 -DestinationComputerName fscluster-tf -DestinationRGName rg01

 

Wenn beide Seiten wieder online sind muss einige Minuten gewartet und auf beiden Seiten nochmals ein Befehl ausgeführt werden.

Set-SRPartnership -NewSourceComputerName fscluster02-tf -SourceRGName rg02 -DestinationComputerName fscluster-tf -DestinationRGName rg01

 

Mit get-srgroup muss auf beiden Seiten die korrekte Funktion geprüft werden, danach kann zurückgeschwenkt werden.

Set-SRPartnership -NewSourceComputerName fscluster-tf -SourceRGName rg01 -DestinationComputerName fscluster02-tf -DestinationRGName rg02

 

3. Stretched Cluster

 

Beim Stretched Cluster wird nur ein Cluster geblildet, das die Server 1-4 enthält.

Es werden vier Fileserver benötigt; alle Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 2 Volumes pro Clusterseite benötigt, die per iSCSI angebunden werden:

  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher

Den Servern FS01 und FS02 steht ein gemeinsamer Speicher zur Verfügung während den Servern FS03 und FS04 ein anderer gemeinsamer Speicher zur Verfügung steht.

 

Zunächst müssen den Servern per Powershell Standorte zugewiesen werden

New-ClusterFaultDomain -Name Seminar -Type Site -Description "Primary" -Location "Seminargebaeude" 

New-ClusterFaultDomain -Name Haus18 -Type Site -Description "Secondary" -Location "Haus18" 

Set-ClusterFaultDomain -Name fs01-tf -Parent Seminar 

Set-ClusterFaultDomain -Name fs02-tf -Parent Seminar 

Set-ClusterFaultDomain -Name fs03-tf -Parent Haus18 

Set-ClusterFaultDomain -Name fs04-tf -Parent Haus18 

(Get-Cluster).PreferredSite="Seminar"

 

Dann werden die verschiedenen Speicher angebunden.

Dass hier einige Offline erscheinen, weil der Besitzer sie nicht erreichen kann, ist in Ordnung; das in diesem Bespiel vorhandene Quorum wird nicht benötigt, da die Verwendung eines Freigabequorums empfohlen wird; dieses sollte auf einem dritten Speicher liegen.

Das Datenvolume muss zu den freigegebenen Clustervolumes hinzugefügt werden, danach kann die Replikation aktiviert werden.

Es werden automatisch die richtigen Laufwerke vorgeschlagen und müssen nur noch angehakt und bestätigt werden.

 

Wenn schon ein Backup der Quelldateien auf dem Ziel vorhanden ist, kann Seeding ausgewählt werden, was die Replikationszeit verkürzt.

Die Synchronisation sollte synchron erfolgen.

Schreibreihenfolge aktivieren verringert die Wahrscheinlichkeit inkonsistenter Daten, für einfache Dateifreigaben sollte die Konfiguration „Höchste Leistung“ keine Probleme bereiten.

 

Nach langwieriger Synchronisation können dann auf dem Cluster eine Dateiserverrolle und Freigaben erstellt werden.

Nur wird die Dateiserverrolle hinzugefügt:

Wenn beim Erzeugen von Freigaben ein Fehler auftritt hilft zumeist abwarten und später nochmal versuchen

Die Freigabe sollte über den Clusterassistenten erstellt werden.

Failover

Der Failover geschieht allein durch Abwesenheit von Servern einer Seite.

Fällt die Zielseite weg gibt es nichts zu beachten; die Quelle läuft weiter.

Fällt die Quellseite weg bzw. soll die Quellseite abgeschaltet werden, ist es erforderlich, dass zunächst die Replikation fehlerfrei abgeschlossen wird.

Ist die Replikation nicht im Status „kontinuierliche Synchronisation“ übernimmt das Ziel nicht die Clustervolumes wenn die Quelle wegbricht.

Fröhliches Clustern 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

11 + zwanzig =