Tierney - stock.adobe.com

SQL-Server-Cluster mit Google Cloud Platform betreiben

Geht es um Hochverfügbarkeit von Microsoft SQL Server, spielen Cluster eine zentrale Rolle. Diese lassen sich auch in Google Cloud Platform betreiben. Wir zeigen die Grundlagen.

Sollen in der Google Cloud Platform (GCP) hochverfügbare Microsoft SQL Server betrieben werden, empfiehlt Google den Einsatz von Storage Spaces Direct (S2D) und den Betrieb von AlwaysOn-Failover-Cluster. Damit lassen sich die lokalen Datenträger von Servern zu einem gemeinsamen Datenspeicher zusammenfassen. Google und Microsoft empfehlen, dass mit einem permanent aktiven (AlwaysOn) Failover-Cluster (FCI) gearbeitet wird, der S2D einsetzt.

Damit dies bei virtuellen Servern in GCP funktioniert, muss darauf geachtet werden, dass die Server miteinander kommunizieren. Generell sollten dazu die virtuellen Maschinen (VMs) im gleichen Rechenzentrum betrieben werden.

Für eine bessere Hochverfügbarkeit empfiehlt Google allerdings die Platzierung von VMs in verschiedenen GCP-Zonen. Hier widersprechen sich die Empfehlungen von Microsoft (S2D) und die Aufteilung von Google. Den Vorzug sollten Administratoren den Empfehlungen von Google geben, und die VMs in verschiedenen Rechenzentren zu verteilen, unter Umständen sogar in verschiedenen Regionen.

Microsoft SQL-Cluster in GCP bereitstellen

Google stellt Anleitungen zur Verfügung, wie SQL-Cluster in GCP integriert werden. Wir durchleuchten nachfolgend die einzelnen Schritte. Die Einrichtung kann für erfahrene Administratoren auch in der Google Cloud Shell durchgeführt werden. So lässt sich zum Beispiel das notwendige, virtuelle Netzwerk mit wenigen Befehlen erstellen:

gcloud compute networks create wsfcnet --subnet-mode custom

Sobald die virtuelle Private Cloud (VPC) angelegt wurde, kann das gewünschte Subnetz mit den beteiligten Servern integriert werden:

gcloud compute networks subnets create wsfc-subnet1 \

    --network wsfcnet \

    --region us-central1 \

    --range 10.0.0.0/24

Abbildung 1: SQL-Cluster lassen sich in der Weboberfläche von GCP, aber auch mit der Cloud Shell erstellen.
Abbildung 1: SQL-Cluster lassen sich in der Weboberfläche von GCP, aber auch mit der Cloud Shell erstellen.

Für den Betrieb eines SQL Servers in GCP wird zunächst das notwendige virtuelle Netzwerk erstellt und konfiguriert (VPC-Netzwerk). Für die Authentifizierung werden Active-Directory-Domänencontroller genutzt und in das Netzwerk eingebunden. Auf den Domänencontrollern muss zuvor das Active Directory installiert und eingerichtet werden, falls noch nicht geschehen. Grundsätzlich kann man auch hier eine Anbindung an Azure Active Directory herstellen. Allerdings ist es beim Betrieb von Microsoft-Lösungen in GCP durchaus sinnvoll, mit Active Directory zu arbeiten.

In diesem Netzwerk werden anschließend die VMs für Microsoft SQL Server erstellt und eingebunden. Das gilt auch für die geplanten Datenlaufwerke. Hier muss darauf geachtet werden, dass die Laufwerke geeignet für Storage Spaces Direct sind. Die Konfiguration kann ebenfalls in der Google Cloud Shell erfolgen, zum Beispiel mit:

gcloud compute instances create "node-1" \

    --zone "us-central1-f" \

    --machine-type "n1-highmem-4" \

    --subnet "wsfc-subnet1" \

    --private-network-ip "10.0.0.4" \

    --can-ip-forward \

    --image-family "sql-ent-2016-win-2016" \

    --image-project "windows-sql-cloud" \

    --boot-disk-size "50" \

    --boot-disk-type "pd-ssd" \

    --boot-disk-device-name "node-1" \

    --create-disk=name=node-1-datadisk-1,size=50,type=pd-ssd,auto-delete=no \

    --create-disk=name=node-1-datadisk-2,size=50,type=pd-ssd,auto-delete=no \

    --create-disk=name=node-1-datadisk-3,size=50,type=pd-ssd,auto-delete=no \

    --create-disk=name=node-1-datadisk-4,size=50,type=pd-ssd,auto-delete=no \

    --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"

Anschließend müssen die Cluster-VMs miteinander vernetzt werden, unter Umständen in einem eigenen Netzwerk. Wichtig ist, dass die Firewall den Zugriff nicht blockiert und die Namensauflösung funktioniert. Danach kommen die Dateifreigabezeugen (File Share Witness) und das TCP/UDP-Load-Balancing-Modul an die Reihe.

Generell kann die Dateifreigabe auch auf einem der Domänencontroller erstellt werden. Der Load Balancer erkennt, welcher Knoten aktuell aktiv ist und leitet die Anfragen zu diesem Server. Das TCP/UDP-Load-Balancing-Modul ist eine Funktion in der Google Cloud. Diese stellt sicher, dass Anfragen zu den Servern optimal verteilt werden. Am Ende wird der Cluster selbst erzeugt und in GCP integriert. Ein Cluster lässt sich auf einem der Knoten in der PowerShell erstellen, zum Beispiel mit:

New-Cluster -Name windows-fci -Node node-1, node-2 -StaticAddress 10.0.0.201 -NoStorage

Anschließend wird das Quorum konfiguriert und auf den Server mit der Zeugenfreigabe verwiesen, zum Beispiel den Domänencontroller:

Set-ClusterQuorum -FileShareWitness \\dc-windows\QWitness

 Abbildung 2: Die Verwaltung von GCP mit der Google Cloud Shell.
Abbildung 2: Die Verwaltung von GCP mit der Google Cloud Shell.

Nach der Bereitstellung kann der Cluster mit der PowerShell überprüft werden, zum Beispiel mit Test-Cluster. Nachdem der Cluster erstellt wurde und im Einsatz ist, kann man Storage Spaces Direct aktivieren. Die Einrichtung und Konfiguration von Storage Spaces Direct entspricht der Vorgehensweise auf herkömmlichen Servern mit Windows Server 2016/2019. Zur Aktivierung kann zum Beispiel das Cmdlet Enable-ClusterS2D verwendet werden. Die ausführliche Anleitung dazu ist auf der Seite SQL Server-Failover-Cluster-Instanzen konfigurieren zu finden.

Hochverfügbarkeit in Cloud SQL for SQL Server

Neben der Möglichkeit, eigene Cluster in GCP zu erstellen, kann man eine hochverfügbare Konfiguration auch mit Cloud SQL for SQL Server erreichen. Die Konfiguration unterscheidet sich von der Einrichtung eines SQL-Clusters.

Die Hochverfügbarkeit in Cloud SQL wird in den Einstellungen einer Instanz vorgenommen oder bereits bei der Erstellung der Instanz konfiguriert. In den Einstellungen von Instanzen findet sich der Bereich Sicherungen, Wiederherstellung und Hochverfügbarkeit. Hier lässt sich die Hochverfügbarkeit aktivieren. Es muss bei der Aktivierung aber darauf geachtet werden, dass die Verbindung zur Datenbank für mehrere Minuten verloren gehen kann. Die Vorgehensweise dazu ist auf der Seite Hochverfügbarkeit für eine Instanz aktivieren und deaktivieren zu finden.

Erfahren Sie mehr über Cloud-Software