Konfigurieren eines Azure-Lastenausgleichs für einen FCI-VNN – SQL Server auf Azure-VMs

Gilt für:SQL Server auf Azure-VM

Tipp

Es gibt viele Methoden zum Bereitstellen einer Verfügbarkeitsgruppe. Vereinfachen Sie Ihre Bereitstellung, indem Sie Ihre SQL Server-VMs in mehreren Subnetzen innerhalb desselben virtuellen Azure-Netzwerks erstellen. So benötigen Sie weder eine Azure Load Balancer-Instanz noch einen verteilten Netzwerknamen (DNN) für Ihre Always On-Verfügbarkeitsgruppe. Wenn Sie Ihre Verfügbarkeitsgruppe bereits in einem einzelnen Subnetz erstellt haben, können Sie sie in eine Umgebung mit mehreren Subnetzen migrieren.

Auf virtuellen Azure-Computern wird für Cluster ein Lastenausgleich für eine IP-Adresse verwendet, die zu einem bestimmten Zeitpunkt auf einem Clusterknoten vorhanden sein muss. In dieser Lösung enthält der Lastenausgleich die IP-Adresse für den Namen des virtuellen Netzwerks (Virtual Network Name, VNN), der von der Clusterressource in Azure verwendet wird.

In diesem Artikel erfahren Sie, wie Sie Lastenausgleich mit dem Azure Load Balancer-Dienst konfigurieren. Der Lastenausgleich leitet Datenverkehr an Ihre Failoverclusterinstanz mit SQL Server auf Azure-VMs weiter und sorgt für Hochverfügbarkeit und Notfallwiederherstellung (High Availability und Disaster Recovery, HADR).

Wenn Sie eine andere Konnektivitätsoption für SQL Server 2019 CU2 und höher verwenden möchten, sollten Sie stattdessen die Verwendung eines verteilten Netzwerknamens (Distributed Network Name, DNN) in Erwägung ziehen. Ein DNN bietet eine vereinfachte Konfiguration und ein verbessertes Failover.

Voraussetzungen

Bevor Sie die in diesem Artikel aufgeführten Schritte ausführen, sollten Sie über Folgendes verfügen:

Einrichten eines Load Balancers

Sie können eine der folgenden Arten von Lastenausgleichen erstellen:

  • Intern: Ein interner Lastenausgleich kann nur von privaten Ressourcen aus erfolgen, die sich innerhalb des Netzwerks befinden. Wenn Sie einen internen Lastenausgleich und seine Regeln konfigurieren, verwenden Sie die FCI-IP-Adresse als Front-End-IP-Adresse.

  • Extern: Ein externer Lastenausgleich kann den Datenverkehr von öffentlichen Ressourcen zu internen Ressourcen leiten. Wenn Sie einen externen Lastenausgleich konfigurieren, können Sie keine öffentliche IP-Adresse wie die FCI-IP-Adresse verwenden.

    Um also einen externen Lastenausgleich zu verwenden, weisen Sie logisch eine IP-Adresse im gleichen Subnetz wie die FCI zu, die mit keiner anderen IP-Adresse in Konflikt steht. Verwenden Sie diese Adresse als Front-End-IP-Adresse für die Lastenausgleichsregeln.

So erstellen Sie den Lastenausgleich

  1. Navigieren Sie im Azure-Portal zu der Ressourcengruppe mit den virtuellen Computern.

  2. Wählen Sie Hinzufügen. Durchsuchen Sie Azure Marketplace nach Lastenausgleichen. Wählen Sie Load Balancer aus.

  3. Klicken Sie auf Erstellen.

  4. Richten Sie unter Lastenausgleich erstellen auf der Registerkarte Grundlagen den Lastenausgleich mithilfe der folgenden Werte ein:

    • Abonnement: Ihr Azure-Abonnement.
    • Ressourcengruppe: Die Ressourcengruppe, die Ihre virtuellen Computer enthält.
    • Name: Ein Name, mit dem der Lastenausgleich identifiziert wird.
    • Region: Der Azure-Standort, der Ihre virtuellen Computer enthält.
    • SKU: Standard
    • Typ: Entweder öffentlich oder intern. Auf einen internen Lastenausgleich kann innerhalb des virtuellen Netzwerks zugegriffen werden. Für die meisten Azure-Anwendungen kann ein interner Lastenausgleich verwendet werden. Verwenden Sie einen öffentlichen Lastenausgleich, wenn Ihre Anwendung direkten Zugriff auf SQL Server über das Internet benötigt.
    • Ebene: Regional.

    Screenshot of the Azure portal that shows the page for basic information about a load balancer.

  5. Wählen Sie Weiter: Front-End-IP-Konfiguration aus.

  6. Wählen Sie Add a frontend IP configuration (Front-End-IP-Konfiguration hinzufügen) aus.

    Screenshot of the Azure portal that shows the button for adding a front-end IP configuration.

  7. Richten Sie die Front-End-IP-Adresse mit den folgenden Werten ein:

    • Name: Ein Name, der die Front-End-IP-Konfiguration bezeichnet
    • Virtuelles Netzwerk: Dies ist dasselbe Netzwerk wie für die virtuellen Computer.
    • Subnetz: Dies ist dasselbe Subnetz wie für die virtuellen Computer.
    • Zuordnung: Statisch
    • IP-Adresse: Die IP-Adresse, die Sie der Clusternetzwerkressource zugewiesen haben
    • Verfügbarkeitszone: Eine optional wählbare Verfügbarkeitszone zum Bereitstellen Ihrer IP-Adresse

    Screenshot of the Azure portal that shows the page for configuring a front-end IP address.

  8. Wählen Sie Hinzufügen aus, um die Front-End-IP-Adresse zu erstellen.

  9. Wählen Sie Überprüfen + erstellen aus, um den Lastenausgleich zu erstellen.

Konfigurieren eines Back-End-Pools

  1. Wechseln Sie zurück zur Azure-Ressourcengruppe mit den virtuellen Computern, und suchen Sie nach dem neuen Lastenausgleich. Möglicherweise müssen Sie die Ansicht in der Ressourcengruppe aktualisieren. Wählen Sie den Load Balancer aus.

  2. Wählen Sie Back-End-Pools und dann Hinzufügen aus.

  3. Geben Sie für Name einen Namen für den Back-End-Pool an.

  4. Wählen Sie für Back-End-Poolkonfiguration die Option NIC aus.

  5. Wählen Sie Hinzufügen aus, um den Back-End-Pool der Verfügbarkeitsgruppe mit den virtuellen Computern zuzuordnen.

  6. Wählen Sie unter Virtuelle Computer die virtuellen Computer aus, die als Clusterknoten teilnehmen sollen. Schließen Sie dabei alle virtuellen Computer ein, die die FCI hosten.

    Fügen Sie nur die primäre IP-Adresse jeder VM hinzu. Fügen Sie keine sekundären IP-Adressen hinzu.

  7. Wählen Sie Hinzufügen aus, um dem Back-End-Pool die virtuellen Computer hinzuzufügen.

  8. Wählen Sie Speichern aus, um den Back-End-Pool zu erstellen.

Konfigurieren eines Integritätstests

  1. Wählen Sie im Bereich für den Lastenausgleich Integritätstests aus.

  2. Legen Sie im Bereich Integritätstest hinzufügen die folgenden Parameter für den Integritätstest fest:

    • Name: Ein Name für den Integritätstest.
    • Protokoll: TCP
    • Port: Der Port, den Sie in der Firewall für den Integritätstest beim Vorbereiten der VM erstellt haben. Im Beispiel dieses Artikels wird der TCP-Port 59999 verwendet.
    • Intervall: 5 Sekunden
  3. Wählen Sie Hinzufügen.

Festlegen von Lastenausgleichsregeln

  1. Wählen Sie im Bereich für den Lastenausgleich Lastenausgleichsregeln aus.

  2. Wählen Sie Hinzufügen.

  3. Legen Sie diese Parameter fest:

    • Name: Ein Name für die Lastenausgleichsregel
    • Front-End-IP-Adresse: Die IP-Adresse, die Sie beim Konfigurieren des Front-Ends festgelegt haben
    • Back-End-Pool: Der Back-End-Pool, der die virtuellen Computer enthält, die für den Lastenausgleich vorgesehen sind
    • HA-Ports: Aktiviert einen Lastenausgleich an allen Ports für TCP- und UDP-Protokolle.
    • Protokoll: TCP
    • Port: Der SQL Server-TCP-Port. Der Standardport ist 1433.
    • Back-End-Port: Der gleiche Port, den Sie als Wert für Port angeben, wenn Sie Floating IP (Direct Server Return) aktivieren.
    • Integritätstest: Der Integritätstest, den Sie zuvor konfiguriert haben.
    • Sitzungspersistenz: Keine
    • Leerlauftimeout (Minuten): 4
    • Floating IP (Direct Server Return) : Aktiviert.
  4. Wählen Sie Speichern aus.

Konfigurieren eines Clustertests

Legen Sie den Parameter für den Clustertestport in PowerShell fest.

Aktualisieren Sie die Variablen im folgenden Skript mit Werten aus Ihrer Umgebung. Entfernen Sie die spitzen Klammern (< und >) aus dem Skript.

$ClusterNetworkName = "<Cluster Network Name>"
$IPResourceName = "<SQL Server FCI IP Address Resource Name>" 
$ILBIP = "<n.n.n.n>" 
[int]$ProbePort = <nnnnn>

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

Die Werte, die Sie aktualisieren können, werden in der folgenden Tabelle beschrieben:

Variable Wert
ClusterNetworkName Der Name des Windows Server-Failoverclusters für das Netzwerk. Klicken Sie in Failovercluster-Manager>Netzwerke mit der rechten Maustaste auf das Netzwerk, und wählen Sie Eigenschaften aus. Der richtige Wert befindet sich auf der Registerkarte Allgemein unter Name.
IPResourceName Der Ressourcenname für die IP-Adresse der SQL Server-FCI. Klicken Sie in Failovercluster-Manager>Rollen unter der Rolle „SQL Server-FCI“ unter Servername mit der rechten Maustaste auf die IP-Adressressource, und wählen Sie dann Eigenschaften aus. Der richtige Wert befindet sich auf der Registerkarte Allgemein unter Name.
ILBIP Die IP-Adresse des internen Lastenausgleichs. Diese Adresse wird als Front-End-Adresse des internen Lastenausgleichs im Azure-Portal konfiguriert. Dies ist auch die IP-Adresse der SQL Server-FCI. Sie finden sie im Failovercluster-Manager auf der gleichen Eigenschaftenseite, auf der sich der Wert für IPResourceName befindet.
ProbePort Der Testport, den Sie im Integritätstest des Lastenausgleichs konfiguriert haben. Alle nicht verwendeten TCP-Ports sind zulässig.
SubnetMask Die Subnetzmaske für den Clusterparameter. Dabei muss es sich um die TCP/IP-Broadcastadresse handeln: 255.255.255.255.

Nach dem Festlegen des Clustertests werden in PowerShell alle Clusterparameter angezeigt. Führen Sie dieses Skript aus:

Get-ClusterResource $IPResourceName | Get-ClusterParameter

Ändern der Verbindungszeichenfolge

Fügen Sie für Clients, die dies unterstützen, der Verbindungszeichenfolge MultiSubnetFailover=True hinzu. Die MultiSubnetFailover-Verbindungsoption ist zwar nicht erforderlich, bietet jedoch den Vorteil eines schnelleren Subnetzfailovers. Das liegt daran, dass der Clienttreiber versucht, parallel ein TCP-Socket für alle IP-Adressen zu öffnen. Der Clienttreiber wartet, bis die erste IP-Adresse erfolgreich reagiert. Nach der erfolgreichen Antwort verwendet der Clienttreiber diese IP-Adresse für die Verbindung.

Wenn Ihr Client den MultiSubnetFailover-Parameter nicht unterstützt, können Sie die Einstellungen RegisterAllProvidersIP und HostRecordTTL ändern, um Konnektivitätsverzögerungen nach dem Failover zu vermeiden.

Verwenden Sie PowerShell, um die RegisterAllProvidersIp- und HostRecordTTL-Einstellungen zu ändern:

Get-ClusterResource yourFCIname | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourFCIname | Set-ClusterParameter HostRecordTTL 300 

Weitere Informationen finden Sie in der Dokumentation zum Listenerverbindungstimeout in SQL Server.

Tipp

  • Legen Sie den MultiSubnetFailover-Parameter in der Verbindungszeichenfolge auf true fest, auch für HADR-Lösungen, die ein einzelnes Subnetz umfassen. Diese Einstellung unterstützt die zukünftige Einrichtung von Subnetzen, ohne dass Verbindungszeichenfolgen aktualisiert werden müssen.
  • Standardmäßig werden von Clients DNS-Clustereinträge 20 Minuten zwischengespeichert. Durch das Reduzieren von HostRecordTTL, reduzieren Sie die Gültigkeitsdauer (Time to Live, TTL) für den zwischengespeicherten Eintrag. Legacyclients können dann schneller wieder eine Verbindung herstellen. Das Reduzieren der Einstellung HostRecordTTL kann zu größerem Datenverkehr an die DNS-Server führen.

Testfailover

Testen Sie das Failover der Clusterressource, um die Clusterfunktionalität zu überprüfen:

  1. Stellen Sie mithilfe von Remotedesktopprotokoll (RDP) eine Verbindung mit einem der SQL Server-Clusterknoten her.
  2. Öffnen Sie den Failovercluster-Manager. Wählen Sie Rollen aus. Achten Sie darauf, welcher Knoten im Besitz der SQL Server-FCI-Rolle ist.
  3. Klicken Sie mit der rechten Maustaste auf die SQL Server-FCI-Rolle.
  4. Wählen Sie Verschieben aus, und wählen Sie dann Bestmöglicher Knoten aus.

Unter Failovercluster-Manager wird die Rolle angezeigt, und die Ressourcen werden in den Offlinezustand versetzt. Die Ressourcen werden dann verschoben und auf dem anderen Knoten dann wieder in den Onlinezustand versetzt.

Testen der Konnektivität

Melden Sie sich zum Testen der Konnektivität an einem anderen virtuellen Computer in demselben virtuellen Netzwerk an. Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit dem SQL Server-FCI-Namen her.

Hinweis

Bei Bedarf können Sie SQL Server Management Studio herunterladen.

Nächste Schritte

Weitere Informationen finden Sie unter: