SQL Server-Failover-Clusterinstanzen konfigurieren

Wenn Sie hohe Verfügbarkeit und Redundanz für Microsoft SQL Server in Compute Engine benötigen, können Sie permanent aktive (Always On) Failover-Clusterinstanzen (FCI) mit Storage Spaces Direct (S2D) konfigurieren.

Always On FCI stellt eine einzelne Microsoft SQL Server-Instanz bereit, die auf Windows Server Failover-Cluster-Knoten (WSFC) installiert ist. Nur ein Knoten im WSFC hostet die SQL-Instanz aktiv. Bei einem Failover überträgt der WSFC-Dienst die Inhaberschaft der auf der Instanz gespeicherten Ressourcen an einen bestimmten Failover-Knoten.

S2D stellt ein softwarebasiertes virtuelles SAN bereit, das Compute Engine VM-Datenlaufwerke zum Speichern der SQL-Datenbank verwenden kann.

Dieses Tutorial enthält ein Beispiel für die Einrichtung. Am Ende des Tutorials haben Sie eine Always On SQL Server-FCI mit S2D in Compute Engine erstellt.

Lernziele

  • Ein VPC-Netzwerk mit einem Windows Domain Controller einrichten
  • Zwei Windows SQL Server-VM-Instanzen als Clusterknoten erstellen
  • Failover-Cluster einschließlich Clusterspeicher einrichten
  • Internes Lastenausgleichsmodul einrichten, um den Traffic zu dem aktiven Knoten zu leiten
  • Failover-Vorgang testen, um zu überprüfen, ob der Cluster ordnungsgemäß ausgeführt wird

Kosten

In dieser Anleitung werden Compute Engine-Images verwendet, die Windows Server-Lizenzen enthalten. Das bedeutet, dass die Kosten für die Durcharbeitung dieser Anleitung sehr hoch sein können, wenn Sie die VMs weiter ausführen. Es empfiehlt sich, die VMs zu beenden, wenn Sie sie nicht verwenden.

Eine Schätzung der Kosten für die Durcharbeitung dieser Anleitung finden Sie im Preisrechner.

Vorbereitung

  1. Melden Sie sich in Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie ein GCP-Projekt aus oder erstellen Sie eines.

    Zur Seite "Ressourcen verwalten"

  3. Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Platform-Projekt aktiviert ist.

    Informationen zum Aktivieren der Abrechnung

  4. Aktivieren Sie die Compute Engine erforderliche API.

    Aktivieren Sie die API.

  5. Starten Sie eine Instanz von Cloud Shell, in der Sie alle in diesem Tutorial genannten gcloud-Befehle ausführen können.
    CLOUD SHELL ÖFFNEN
  6. Überprüfen Sie Ihr Kontingent für nichtflüchtigen SSD-Speicher und fordern Sie bei Bedarf eine Erhöhung an. Sie benötigen 500 GB für dieses Tutorial.

Übersicht

Diese Beispieleinrichtung enthält die folgenden Komponenten und IP-Adressen:

  • Benutzerdefiniertes VPC-Netzwerk: 10.0.0.0/24
  • Active Directory Domain Controller: 10.0.0.3
  • Zwei WSFC-Knoten mit angeschlossenem S2D-Speicher
    • node-1: 10.0.0.4
    • node-2: 10.0.0.5
  • Windows Server-Failover-Cluster (für die Clusterverwaltung): 10.0.0.201
  • Interner Load-Balancer und SQL FCI-Listener (für SQL-Verbindungen): 10.0.0.200

Das Lastenausgleichsmodul wartet auf Anfragen. Anhand von Systemdiagnosen erkennt es, welcher SQL Server-Knoten aktiv ist, und leitet den Traffic dorthin. Schlägt die Weiterleitung zum aktiven Knoten fehl, wird der FCI-Failover-Knoten aktiviert. Die Systemdiagnose empfängt das Signal des intakten Knotens und das Lastenausgleichsmodul leitet den Traffic um. Die auf S2D-Volumes gespeicherte Datenbank bleibt verfügbar.

Architekturdiagramm mit zwei Compute Engine-VMs in einem Failover-Cluster

VPC-Netzwerk einrichten

Sie können zwar für diese Anleitung ein vorhandenes Netzwerk verwenden, es empfiehlt sich jedoch, Systeme in verschiedenen Netzwerken und Subnetzen mit Firewallregeln, die den Traffic beschränken, zu isolieren.

  1. Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus, das Ihnen vollständige Kontrolle über die Subnetze und IP-Bereiche gibt.

    gcloud compute networks create wsfcnet --subnet-mode custom
    
  2. Fügen Sie ein Subnetz wsfc-subnet1 hinzu, das alle in dieser Anleitung genannten VMs enthalten wird.

    gcloud compute networks subnets create wsfc-subnet1 \
        --network wsfcnet \
        --region us-central1 \
        --range 10.0.0.0/24
    
  3. Erstellen Sie eine Firewallregel, die Traffic zwischen den VMs in diesem Netzwerk erlaubt.

    gcloud compute firewall-rules create allow-internal-ports \
        --network wsfcnet \
        --allow tcp:1-65535,udp:1-65535,icmp \
        --source-ranges 10.0.0.0/24
    
  4. Erstellen Sie eine Firewallregel, um eingehenden Traffic für RDP auf Port 3389 zuzulassen. Beachten Sie, dass Sie tcp:3389 für alle IP-Adressen (0.0.0.0/0) öffnen. In einer Produktionsumgebung würden Sie den Zugriff auf genehmigte IP-Adressen beschränken.

    gcloud compute firewall-rules create allow-rdp \
        --network wsfcnet \
        --allow tcp:3389 \
        --source-ranges 0.0.0.0/0
    

Windows Domain Controller erstellen und konfigurieren

Eine Active Directory Domain wird für Domain Name Services sowie für die Funktionen von Windows Failover Clustering und Storage Spaces Direct verwendet, die Sie für dieses Tutorial benötigen. Die Verwendung des AD Domain Controllers innerhalb derselben VPC ist nicht zwingend erforderlich und dient hier lediglich der Vereinfachung.

In diesem Tutorial ist die Domain gontoso.com. Der VM-Name des Domain Controllers lautet dc-windows (und der Windows-Computername entspricht standardmäßig dem VM-Namen dc-windows). Die VM wird im Subnetz unter 10.0.0.3 erstellt.

  1. Erstellen Sie eine VM, die als Domain Controller verwendet werden soll. Sie können einen beliebigen Maschinentyp und die von Ihnen benötigte Windows Server-Version festlegen. Verwenden Sie für dieses Beispiel jedoch folgende Parameter:

    gcloud compute instances create "dc-windows" \
        --zone "us-central1-a" \
        --machine-type "n1-standard-2" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.3" \
        --can-ip-forward \
        --image-family "windows-2016" \
        --image-project "windows-cloud" \
        --boot-disk-size "200" \
        --boot-disk-type "pd-standard" \
        --boot-disk-device-name "dc-windows"
    
  2. Legen Sie ein Passwort fest, damit Sie über ein lokales Konto eine Verbindung zur Domain Controller-VM herstellen können. Notieren Sie Nutzernamen und Passwort.

  3. Stellen Sie über RDP mit dem Nutzernamen und dem Passwort Ihres lokalen Kontos eine Verbindung zur Domain Controller-VM her.

  4. Führen Sie auf der VM PowerShell als Administrator aus, um eine erweiterte PowerShell-Eingabeaufforderung zu öffnen.

  5. Richten Sie einen Nutzer mit Administratorrechten ein.

    1. Führen Sie den folgenden Befehl aus und geben Sie ein Passwort ein, das Sie mit dem Administratorkonto verwenden werden.

      PS C:\> $Password = Read-Host -AsSecureString
      

      Notieren Sie sich das eingegebene Passwort. Sie werden dieses Passwort für das Administratorkonto verwenden.

    2. Legen Sie das Passwort für das Administratorkonto fest.

      PS C:\> Set-LocalUser -Name Administrator -Password $Password
      
    3. Aktivieren Sie das Administratorkonto.

      PS C:\> Enable-LocalUser -Name Administrator
      
  6. Richten Sie ein SQL Server-Dienstkonto ein, das Sie als SQL Agent- und als SQL Admin-Konto verwenden.

    1. Geben Sie ein sicheres Passwort für die Verwendung mit dem SQL Server-Dienstkonto ein.

      PS C:\> $Password = Read-Host -AsSecureString
      

      Notieren Sie sich das eingegebene Passwort. Sie werden es für das SQL Server-Dienstkonto verwenden.

    2. Erstellen Sie das SQL Server-Dienstkonto und legen Sie dessen Passwort fest.

      PS C:\> New-LocalUser -Name "service_account" -Description "SQL Agent and SQL Admin account."  -Password $Password
      
  7. Melden Sie sich ab und stellen Sie die Verbindung zur Domain Controller-VM über RDP mit dem Administratorkonto und dem Passwort neu her.

  8. Legen Sie in einer PowerShell mit erweiterten Rechten die folgenden Variablen fest, die zum Konfigurieren der Active Directory-Gesamtstruktur verwendet werden.

    PS C:\> $DomainName = "gontoso.com";
    PS C:\> $DomainMode = "Win2012R2";
    PS C:\> $ForestMode = "Win2012R2";
    PS C:\> $DatabasePath = "C:\Windows\NTDS";
    PS C:\> $LogPath = "C:\Windows\NTDS";
    PS C:\> $SysvolPath = "C:\Windows\SYSVOL";
    
  9. Installieren Sie Active Directory-Dienste und -Tools.

    PS C:\> Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
    Success Restart Needed Exit Code      Feature Result
    ------- -------------- ---------      --------------
    True    No             Success        {Active Directory Domain Services, Group P...
    
    
  10. Installieren und konfigurieren Sie die Active Directory-Gesamtstruktur. Dieser Befehl fordert Sie zur Eingabe von Anmeldedaten auf. Verwenden Sie den zuvor erstellten Nutzernamen und das Passwort von Administrator.

    PS C:\> Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath $DatabasePath -LogPath $LogPath -SysvolPath $SysvolPath -DomainName $DomainName -DomainMode $DomainMode -ForestMode $ForestMode -InstallDNS:$true -NoRebootOnCompletion:$false -SafeModeAdministratorPassword ((Get-Credential).Password) -Force:$true;
    
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential
    ...
    
    

    Die VM wird neu gestartet.

  11. Nachdem die VM neu gestartet wurde, stellen Sie sie noch einmal eine Verbindung über RDP her. Verwenden Sie dazu die ursprünglichen Anmeldedaten Ihres lokalen Kontos.

Cluster-VMs und Datenlaufwerke erstellen

Erstellen Sie zwei SQL Server-VMs mit zusätzlichen Datenlaufwerken. Eine VM dient als aktiver FCI-Knoten, die andere als Failover-Knoten. Die zusätzlichen Laufwerke dienen als S2D-Volumes.

Jede SQL Server-VM muss die folgenden Anforderungen erfüllen:

  • Sie wurde in dem Subnetz wsfc-subnet1 erstellt, das Sie zuvor definiert haben.
  • Sie hat eine private IP-Adresse im Subnetzbereich 10.0.0.0/24.
  • Die Windows Server-Failover-Cluster-Funktion ist installiert.
  • Der Compute Engine-WSFC-Agent, der den aktiven Knoten im Failover-Cluster überwachen kann, ist aktiviert.
  1. Erstellen Sie in der Cloud Shell zwei SQL Server-VMs mit zusätzlichen Datenlaufwerken. Die Laufwerke werden als S2D- und Cache-Volumes verwendet.

    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;"
    
    gcloud compute instances create "node-2" \
        --zone "us-central1-a" \
        --machine-type "n1-highmem-4" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.5" \
        --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-2" \
        --create-disk=name=node-2-datadisk-1,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-2,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-3,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-4,size=50,type=pd-ssd,auto-delete=no \
        --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"
      
  2. Stellen Sie optional über RDP eine Verbindung zu jedem Knoten her und überprüfen Sie in einer erweiterten PowerShell, ob die Failover-Cluster-Funktion aktiviert ist.

    PS C:> Get-WindowsFeature Failover-Clustering
    Display Name                                            Name                       Install State


    [X] Failover Clustering Failover-Clustering Installed

Netzwerk der Cluster-VMs konfigurieren

  1. Konfigurieren Sie den ersten Knoten.

    1. Erstellen Sie ein Passwort für node-1. Notieren Sie Nutzernamen und Passwort.

    2. Stellen Sie über RDP eine Verbindung zu node-1 her.

    3. Öffnen Sie eine PowerShell mit erweiterten Rechten.

    4. Fügen Sie eine Firewallregel hinzu, mit der ein Port für den Compute Engine-WSFC-Agent geöffnet wird. Standardmäßig überwacht der Compute Engine-WSFC-Agent den Port tcp:59998. Sie können einen anderen Port auswählen, der jedoch mit dem Port der Systemdiagnose übereinstimmen muss, den Sie später festlegen. Der Systemdiagnoseprozess sendet regelmäßig Pings an die Agents auf jedem Clusterknoten, um deren Verfügbarkeit zu ermitteln.

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. Fügen Sie eine Firewallregel hinzu, mit der ein Port für die SQL Server-Instanz geöffnet wird. In der Regel wird hierfür Port tcp:1433 verwendet.

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. Legen Sie das DNS auf den Domain Controller fest.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. Aktualisieren Sie den Knoten so, dass er eine statische IP-Adresse verwendet, und legen Sie die Netzmaske fest.

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.4 255.255.0.0 10.0.0.1 1
      

      Sie werden von der VM getrennt. Bauen Sie mit Ihrem lokalen Nutzernamen und Passwort über RDP die Verbindung neu auf.

    8. Fügen Sie den Knoten zu der Active Directory Domain hinzu, die Sie zuvor erstellt haben.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      Sie werden aufgefordert, Anmeldedaten einzugeben. Verwenden Sie den zuvor beim Konfigurieren der Domain Controller-VM festgelegten Nutzernamen und das Passwort des Administrators.

      Der Computer wird neu gestartet.

  2. Konfigurieren Sie den zweiten Knoten.

    1. Erstellen Sie ein Passwort für node-2. Notieren Sie Nutzernamen und Passwort.

    2. Stellen Sie über RDP eine Verbindung zu node-2 her.

    3. Öffnen Sie eine PowerShell mit erweiterten Rechten.

    4. Fügen Sie eine Firewallregel hinzu, mit der ein Port für den Compute Engine-WSFC-Agent geöffnet wird. Dieser Port muss mit dem Port der Systemdiagnose übereinstimmen, den Sie später festlegen.

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. Fügen Sie eine Firewallregel hinzu, mit der ein Port für die SQL Server-Instanz geöffnet wird. In der Regel wird hierfür Port tcp:1433 verwendet.

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. Legen Sie das DNS auf den Domain Controller fest.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. Aktualisieren Sie den Knoten so, dass er eine statische IP-Adresse verwendet, und legen Sie die Netzmaske fest.

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.5 255.255.0.0 10.0.0.1 1
      

      Sie werden von der VM getrennt. Bauen Sie mit Ihrem lokalen Nutzernamen und Passwort über RDP die Verbindung neu auf.

    8. Fügen Sie den Knoten zu der Active Directory Domain hinzu, die Sie zuvor erstellt haben.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      Sie werden aufgefordert, Anmeldedaten einzugeben. Verwenden Sie den zuvor beim Konfigurieren der Domain Controller-VM festgelegten Nutzernamen und das Passwort des Administrators.

      Der Computer wird neu gestartet.

Dateifreigabenzeuge erstellen

Wenn Sie für das Failover-Szenario eine ausschlaggebende Priorität bereitstellen und ein Quorum erreichen möchten, können Sie einen Dateifreigabenzeugen hinzufügen. In dieser Anleitung erstellen Sie den Dateifreigabenzeugen auf der Domain Controller-VM. In einer Produktionsumgebung würden Sie ihn an einer anderen Stelle erstellen.

  1. Stellen Sie mit dem Administratorkonto über RDP eine Verbindung zur Domain Controller-VM dc-windows her.

  2. Öffnen Sie eine PowerShell mit erweiterten Rechten.

  3. Erstellen Sie für den Dateifreigabenzeugen ein Verzeichnis.

    PS C:\> New-Item "C:\QWitness" –type directory
    
  4. Geben Sie das Verzeichnis frei.

    PS C:\> New-SmbShare -Name "QWitness" -Path "C:\QWitness" -Description "SQL File Share Witness" -FullAccess "gontoso.com\Administrator", "gontoso.com\node-1$", "gontoso.com\node-2$"
    
  5. Optional können Sie über RDP zu beiden Knoten eine Verbindung als gontoso.com\Administrator herstellen und prüfen, ob Sie auf das freigegebene Verzeichnis zugreifen können.

    PS C:\> dir \\\\dc-windows\QWitness
    

Internes Load-Balancing-Modul erstellen

Ein internes Lastenausgleichsmodul stellt für den SQL Server eine einzelne IP-Adresse bereit. Das Lastenausgleichsmodul überwacht Anfragen und leitet den Netzwerk-Traffic an den aktiven Clusterknoten weiter. Es erkennt, welcher der aktive Knoten ist, da an allen Knoten die Systemdiagnose ausgeführt wird. Nur der aktive Knoten antwortet und wird somit als intakt erkannt. Bei Ausfall des aktiven Knotens wird der SQL FCI-Failover-Knoten aktiviert. Die Systemdiagnose empfängt das Signal und der Traffic wird dorthin umgeleitet.

  1. Erstellen Sie zwei Instanzgruppen und fügen Sie jeder Gruppe jeweils einen SQL Server-Knoten hinzu. Diese Instanzgruppen arbeiten als Back-Ends, zu denen das Load-Balancing-Modul den Traffic leiten kann.

    gcloud compute instance-groups unmanaged create wsfc-group-f --zone us-central1-f
    gcloud compute instance-groups unmanaged add-instances wsfc-group-f --instances node-1 --zone us-central1-f
    
    gcloud compute instance-groups unmanaged create wsfc-group-a --zone us-central1-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a --instances node-2 --zone us-central1-a
    
  2. Erstellen Sie eine Systemdiagnose, damit der Load-Balancer den aktiven Knoten ermitteln kann.

    gcloud compute health-checks create tcp sql-healthcheck \
        --check-interval="2s" \
        --healthy-threshold=1 \
        --unhealthy-threshold=2 \
        --port=59998 \
        --request=10.0.0.200 \
        --timeout="1s" \
        --response=1
    
  3. Fügen Sie eine Firewallregel hinzu, mit der die Systemdiagnose zugelassen wird.

    gcloud compute firewall-rules create allow-health-check \
        --network wsfcnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp
    
  4. Erstellen Sie einen Back-End-Dienst und fügen Sie die beiden Back-End-Instanzgruppen hinzu.

    gcloud compute backend-services create wsfcbackend \
        --load-balancing-scheme internal \
        --region us-central1 \
        --health-checks sql-healthcheck \
        --protocol tcp
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-a \
        --instance-group-zone us-central1-a \
        --region us-central1
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-f \
        --instance-group-zone us-central1-f \
        --region us-central1
    
  5. Erstellen Sie einen internen Load-Balancer, um Anfragen an den aktiven Knoten der SQL-FCI weiterzuleiten. Die FCI wird später erstellt und so konfiguriert, dass sie Port 10.0.0.200 überwacht.

    gcloud compute forwarding-rules create wsfc-forwarding-rule \
        --load-balancing-scheme internal \
        --ports 1433 \
        --network wsfcnet \
        --subnet wsfc-subnet1 \
        --region us-central1 \
        --backend-service wsfcbackend \
        --address 10.0.0.200
    

Windows-Failover-Cluster erstellen

  1. Stellen Sie als gontoso.com\Administrator über RDP noch einmal die Verbindung zu node-1 her. Möglicherweise müssen Sie vorherige Zertifikate löschen, um die Verbindung wiederherzustellen.

  2. Öffnen Sie eine PowerShell mit erweiterten Rechten.

  3. Erstellen Sie den Cluster.

    PS C:\> New-Cluster -Name windows-fci -Node node-1, node-2 -StaticAddress 10.0.0.201 -NoStorage
    
    PS C:\> Set-ClusterQuorum -FileShareWitness \\\\dc-windows\QWitness
    
  4. Testen Sie den Cluster. Sie werden einige Warnungen sehen, die ignoriert werden können.

    PS C:\> Test-Cluster
    WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the warnings in the Report.  A cluster solution is
    supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
    Test report file path: C:\Users\Administrator\AppData\Local\Temp\Validation Report 2018.05.01 At 19.25.01.htm
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----         5/1/2018   7:26 PM         747166 Validation Report 2018.05.01 At 19.25.01.htm
    
    

    Sie können auch das Cluster Admin-GUI starten, um den Clusterzustand zu überprüfen. Dazu führen Sie cluadmin.msc aus.

Storage Spaces Direct aktivieren

  1. Stellen Sie über RDP eine Verbindung zu node-1 oder node-2 her und öffnen Sie eine PowerShell mit erweiterten Rechten.

  2. Aktivieren Sie Storage Spaces Direct.

    PS C:\> Enable-ClusterS2D
    
    Confirm
    Are you sure you want to perform this action?
    Performing operation 'Enable Cluster Storage Spaces Direct' on Target 'windows-fci'.
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
    WARNING: 2018/05/01-19:36:41.315 Node node-1: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.330 Node node-2: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.362 C:\Windows\Cluster\Reports\Enable-ClusterS2D on 2018.05.01-19.36.41.362.htm
    
    

    Übernehmen Sie den Standardwert, wenn Sie zur Bestätigung aufgefordert werden. Sie sehen dann einige Warnungen, die Sie ignorieren können.

    • Optional: Wenn Sie die Laufwerksleistung verbessern möchten, können Sie den VMs des Clusters zusätzlich zu den nichtflüchtigen SSD-Standardspeichern auch lokale SSDs hinzufügen. Die lokalen SSDs können als S2D-Caching-Ebene dienen. Die Anzahl der Kapazitätslaufwerke (in diesem Fall nichtflüchtige SSD-Speicher) sollte ein Vielfaches der Anzahl der lokalen SSDs sein. Führen Sie den folgenden Befehl aus, um S2D mit Caching zu aktivieren:

      PS C:\> Enable-ClusterS2D -CacheDeviceModel "EphemeralDisk"
      
    • Für einen besseren Lesedurchsatz können Sie im Speichercache auch Cluster Shared Volume (CSV) aktivieren:

      PS C:\> (Get-Cluster).BlockCacheSize = 2048
      
  3. Da S2D für die Verwaltung 2 GB pro Volume benötigt und pro Knoten 4 Volumes mit jeweils 50 GB vorhanden sind, definieren Sie den Speicherpool und legen Sie die Größe auf 192 GB fest.

    PS C:\> New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 192GB
    
  4. Achten Sie darauf, dass für das Speicher-Volume Lese-/Schreibmodus eingestellt ist.

    PS C:\> dir C:\ClusterStorage\Volume1\ | Get-ACL
    
    Directory: C:\ClusterStorage\Volume1
    
    Path                Owner                  Access
    ----                -----                  ------
    MSSQL13.MSSQLSERVER BUILTIN\Administrators BUILTIN\Administrators Allow  FullControl...
    
    

Mit FCI hohe Verfügbarkeit für den SQL Server konfigurieren

  1. Entfernen Sie die SQL Server-Standardinstanz vom ersten Knoten. Sie werden sie später durch eine neue FCI-Konfiguration ersetzen.

    1. Stellen Sie über RDP als gontoso.com\Administrator eine Verbindung zu node-1 her.

    2. Öffnen Sie eine PowerShell mit erweiterten Rechten.

    3. Entfernen Sie die SQL Server-Standardinstanz.

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. Starten Sie die VM neu.

      PS C:\> shutdown /r
      
  2. Entfernen Sie die SQL Server-Standardinstanz vom zweiten Knoten. Sie werden sie später durch eine neue FCI-Konfiguration ersetzen.

    1. Melden Sie sich über RDP als gontoso.com\Administrator bei node-2 an.

    2. Öffnen Sie eine PowerShell mit erweiterten Rechten.

    3. Entfernen Sie die SQL Server-Standardinstanz.

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. Starten Sie die VM neu.

      PS C:\> shutdown /r
      
  3. Installieren Sie SQL Server mit FCI auf dem ersten Knoten neu.

    1. Melden Sie sich über RDP als node-1 bei gontoso\Administrator an.

    2. Öffnen Sie einen Texteditor, z. B. Notepad.

    3. Kopieren Sie den Inhalt der Konfigurationsdatei fci_install_master_node.ini in den Texteditor auf node-1. Zeilenumbrüche werden möglicherweise nicht beibehalten, aber die Konfiguration funktioniert trotzdem.

    4. Aktualisieren Sie die Konfigurationsdatei mit Ihrem Passwort für gontoso.com\service_account. Das Passwort muss an zwei Stellen aktualisiert werden: unter AGTSVCPASSWORD und SQLSVCPASSWORD. Suchen Sie nach changeme und ersetzen Sie den Eintrag durch das von Ihnen festgelegte Passwort. Speichern Sie die Datei als Nur-Text-Datei mit dem Dateinamen C:\fci_install_master_node.ini.

    5. Öffnen Sie eine PowerShell mit erweiterten Rechten und installieren Sie den SQL Server mithilfe der Konfigurationsdatei.

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_install_master_node.ini
      
  4. Installieren Sie SQL Server mit FCI auf dem zweiten Knoten neu.

    1. Melden Sie sich über RDP als gontoso\Administrator bei node-2 an.

    2. Öffnen Sie einen Texteditor, z. B. Notepad.

    3. Kopieren Sie den Inhalt der Konfigurationsdatei fci_add_node.ini in den Texteditor auf node-1.

    4. Aktualisieren Sie die Konfigurationsdatei mit Ihrem Passwort für gontoso.com\service_account. Das Passwort muss an zwei Stellen aktualisiert werden: unter AGTSVCPASSWORD und SQLSVCPASSWORD. Suchen Sie nach changeme und ersetzen Sie den Eintrag durch das von Ihnen festgelegte Passwort. Speichern Sie die Datei als Nur-Text-Datei mit dem Dateinamen C:\fci_add_node.ini.

    5. Öffnen Sie eine PowerShell mit erweiterten Rechten und installieren Sie den SQL Server.

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_add_node.ini
      

Failover-Szenario testen

Client vorbereiten

  1. Erstellen Sie in Cloud Shell eine neue VM, die als SQL-Client dient.

    gcloud compute instances create "sqlclient-1" \
    --zone "us-central1-a" \
    --machine-type "n1-standard-2" \
    --subnet "wsfc-subnet1" \
    --private-network-ip "10.0.0.10" \
    --can-ip-forward \
    --image-family "sql-ent-2016-win-2016" \
    --image-project "windows-sql-cloud" \
    --boot-disk-size "200" \
    --boot-disk-type "pd-standard" \
    --boot-disk-device-name "sqlclient-1"
    
  2. Stellen Sie über RDP eine Verbindung zu sqlclient-1 her.

  3. Öffnen Sie eine PowerShell mit erweiterten Rechten.

  4. Konfigurieren Sie den Client.

    1. Legen Sie das DNS auf den Domain Controller fest.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    2. Fügen Sie den Knoten zu der Active Directory Domain hinzu, die Sie zuvor erstellt haben.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      Sie werden aufgefordert, Anmeldedaten einzugeben. Verwenden Sie den zuvor beim Konfigurieren der Domain Controller-VM festgelegten Nutzernamen und das Passwort des Administrators.

      Der Computer wird neu gestartet.

    3. Stellen Sie mit dem Administratorkonto über RDP eine neue Verbindung her.

    4. Fügen Sie das Konto gontoso.com\service_account der lokalen Administratorgruppe hinzu.

      PS C:\> Add-LocalGroupMember -Group "Administrators" -Member "gontoso.com\service_account"
      
    5. Melden Sie sich ab.

      PS C:\> logoff
      

Testen

  1. Stellen Sie über RDP mit dem Nutzernamen und Passwort von gontoso.com\service_account eine neue Verbindung zu sqlclient-1 her.

  2. Senden Sie in einer PowerShell eine Testabfrage an die Tabelle der dm_os_cluster_nodes des Systems.

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    NodeName                       status      status_description is_current_owner
    \------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    
    

    Beachten Sie, dass node-1 der aktuelle Eigentümer der SQL Server-Failover-Clusterressource ist.

  3. Fahren Sie in Cloud Shell die VM node-1 herunter, um das Failover-Szenario zu testen.

    gcloud compute instances stop node-1 --zone us-central1-f
    
  4. Führen Sie auf der VM sqlclient-1 die Testabfrage noch einmal aus.

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    NodeName                       status      status_description is_current_owner
    \------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    
    

    Trotz des Ausfalls von node-1 ist die Abfrage erfolgreich und zeigt, dass node-2 jetzt der aktuelle Eigentümer des Failover-Clusters ist.

Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud Platform-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

Nachdem Sie das Tutorial für SQL Server FCI abgeschlossen haben, können Sie die Ressourcen bereinigen, die Sie auf der Google Cloud Platform erstellt haben. Damit verhindern Sie, dass Ihr Kontingent unnötig in Anspruch genommen wird und dass Ihnen die Ressourcen in Zukunft in Rechnung gestellt werden. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie unnötige Kosten, wenn Sie das erstellte Projekt löschen.

So löschen Sie das Projekt:

  1. Rufen Sie in der GCP Console die Seite "Projekte" auf.

    Zur Seite "Projekte"

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Instanzen löschen

So löschen Sie eine Compute Engine-Instanz:

  1. Rufen Sie in der GCP Console die Seite "VM-Instanzen" auf.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf das Kästchen neben der Instanz, die Sie löschen wollen.
  3. Auf die Schaltfläche Löschen im oberen Seitenbereich klicken, um die Instanz zu löschen.

Nichtflüchtige Speicher löschen

So löschen Sie nichtflüchtige Speicher:

  1. Rufen Sie in der GCP Console die Seite "Laufwerke" auf.

    Weiter zur Seite "Laufwerke"

  2. Wählen Sie das Kästchen neben dem zu löschenden Laufwerk aus.

  3. Klicken Sie oben auf der Seite auf Löschen.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation