Microsoft SQL Failover-Cluster: Cluster konfigurieren
Mit dieser Tutorialreihe möchte ich Schritt für Schritt einen Microsoft SQL Failover-Cluster aus dem Boden stampfen. Du befindest dich dabei beim dritten Artikel zu dieser Reihe, falls du Part 1 und 2 noch nicht gelesen hast, würde ich dir folgenden Post ans Herz legen: Microsoft SQL Failover-Cluster: Einführung. Dort erfährst du das grundlegende Konzept des Clusters, sowie eine Anleitung, wie man iSCSI LUNs auf einem Windows Server bereitstellt. Im dritten Teil möchte ich mich auch die Installation der beiden Cluster-Nodes konzentrieren, mit allem, was dazugehört. Außerdem machen wir einen kleinen unverbindlichen Abstecher in Richtung richtiger Lizenzierung der Installation.
Vorbereitung
- zwei SQL-Windows Server in der AD-Domäne + korrekter Netzwerkkonfiguration – siehe Microsoft SQL Failover-Cluster: Einführung
- iSCSI LUNs – siehe Microsoft SQL Failover-Cluster: iSCSI Server
Lizenzierung
Vorwort: Der nachfolgende Absatz ist nicht bindend! Da sich in der Welt von Microsoft immer wieder etwas ändert, informiert euch vor dem Kauf von Lizenzen und lasst euch gegebenenfalls beraten. Außerdem sind nicht alle SQL-Versionen gleich zu lizenzieren!
Die Lizenzierung des SQL-Clusters ist ein wichtiges Thema und wird nur in wenigen Anleitungen behandelt. Grundlegend werden die meisten SQL-Server auf Basis der zugewiesenen Cores lizenziert. Das bedeutet, man kauft entsprechende SQL-Core-Pakete die der Anzahl der zugewiesenen vCores des Server entsprechen – mindestens sind jedoch immer 4 Cores pro Server zu lizenzieren. Außerdem werden die SQL-Core-Pakete immer im Doppelpack (2 Cores pro Lizenz) verkauft. Zum Verständnis ein kleines Rechenbeispiel:
- SQL-Server mit 8 Cores benötigt 4x 2-Core Pakete
- SQL-Server mit 2 Cores benötigt 2x 2-Core Pakete (es müssen immer mindestens 4 Cores lizenziert werden!)
In unserem Fall möchten wir allerdings ein MSSQL-Failover Szenario realisieren. Das bedeutet auch, dass wir zwei SQL-Instanzen auf zwei unterschiedlichen Servern installieren müssen. Benötigen wir dadurch auch die doppelte Anzahl an Lizenzen? Nein! Solange der SQL-Cluster ausschließlich im Active/Passive Mode betrieben wird, werden nicht die doppelten Lizenzpakete benötigt.
Unser SQL-Cluster besteht somit aus zwei Nodes mit jeweils 4 Cores. Demnach reichen für dieses Szenario 2×2 MSSQL Standard Corepakete aus.
Konfiguration
iSCSI Netzwerkkonfiguration vorbereiten
Da das iSCSI Netzwerk und der einhergehende Netzwerkadapter einer speziellen Konfiguration bedarf, sollte man im Vorfeld auf jeden Fall das vorherige Tutorial anschauen: Microsoft SQL Failover-Cluster: iSCSI Server
iSCSI LUNs verbinden
Im ersten Schritt müssen auf beiden Nodes die iSCSI Initiator mit den Targets verbunden werden. Dazu wird der „iSCSI Initiator“ aufgerufen. Beim ersten Start wird außerdem die Frage gestellt, ob dieser Service immer automatisch gestartet werden soll – wir beantworten sie mit Ja. Anschließend kann beim „Ziel“ die IP-Adresse des iSCSI-Servers eingetragen werden. Mit einem klick auf „Schnell verbinden“ sollte die Connection bereits hergestellt worden sein und das LUN im Diskmanagement aufscheinen.
Es bestünde unter anderem die Möglichkeit, ein iSCSI LUN mittels Multipathing (MPIO) einzubinden. Das erlaubt uns die Route zwischen Cluster und iSCSI Target redundant und hoch verfügbar zu gestalten. Diese Funktion wird in diesem Tutorial allerdings nicht beschrieben.
Anschließend rufen wir das Diskmgmt.msc auf und führen die nachfolgenden Aufgaben aus:
- Die Disks online nehmen und mit dem Partition-Style GPT initialisieren.
- Quorum Disk (500MB) mit NTFS formatieren und Laufwerksbuchstabe Q: vergeben.
- SQL Disks mit NTFS und einer Blocksize von 64kb formatieren.
Sobald das erledigt ist, müssen wir am zweiten Node den iSCSI Initiator ebenfalls gleich konfigurieren. Nur die Disks müssen nicht mehr initialisiert/formatiert werden, da wir diesen Schritt bereits erledigt haben.
Failover Cluster erstellen
Die Vorarbeiten sind getan und jetzt können wir zum eigentlichen Thema voranschreiten: dem Cluster. Dazu installiert man die „Failover Clustering“ Rolle entweder über den Server-Manager unter „Features“ oder über die Powershell mit folgendem Befehl:
Install-WindowsFeature Failover-Clustering,RSAT-Clustering,RSAT-Clustering-Mgmt,RSAT-Clustering-PowerShell,RSAT-Clustering-AutomationServer,RSAT-Clustering-CmdInterface
Nun können wir über das Start-Menü das Failover-Cluster MMC öffnen und die Nodes validieren und den Verbund somit erstellen. Die nachfolgenden Screenshots illustrieren den Ablauf (auf die Screenshots klicken, damit sie vergrößert werden).
Schritt 5: IP-Adresse und Name festlegen
Somit wurde der Cluster erfolgreich erstellt. Damit dieser voll funktionsfähig ist, muss noch die Quorum Disk konfiguriert werden. Was die genaue Aufgabe dieser Disk ist, wurde bereits im ersten Teil beantwortet
Da wir im nächsten Teil dieser Reihe einen MSSQL-Cluster anlegen möchten, müssen wir vorab dem Cluster Computer Objekt die nötigen Permissions im Active Directory zuordnen. Dazu öffnen wir die AD-Konsole und bearbeiten die Berechtigungen jener OU, in welcher sich die SQL Nodes, sowie zukünftig das Cluster Objekt befinden sollen. Wir müssen dem Cluster Account auf der genannten OU die „Create Computer Objects“ Berechtigung vergeben.
Sind wir an diesem Punkt angelangt, sollte die Clusterfunktionalität ausreichend getestet werden. Was passiert, wenn ein Node ausfällt? Wird ein kurzfristiger Netzwerkausfall verkraftet? Greifen alle Mechanismen und die Ressourcen werden erfolgreich am passiven Node online genommen? Das Testen ist das A und O! Denn was bringt ein Verbund, wenn dieser im Notfall nicht funktioniert? Im vierten und somit letzten Teil dieser Reihe installieren wir die MSSQL Instanzen und nehmen den Cluster schlussendlich in Betrieb.