Konfigurieren eines Azure-Lastenausgleichs für einen AG-VNN-Listener – 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. Bei dieser Lösung hält der Lastenausgleich die IP-Adresse für den VNN-Listener (Virtual Network Name) für die Always On-Verfügbarkeitsgruppe, wenn sich die SQL Server-VMs in einem einzigen Subnetz befinden.

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

Bei einer alternativen Konnektivitätsoption für Kunden mit SQL Server 2019 CU8 und höher sollten Sie stattdessen die Verwendung eines DNN-Listeners (Distributed Network Name, Name des verteilten Netzwerks) in Betracht ziehen. Ein DNN-Listener 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 dieselbe IP-Adresse wie der Verfügbarkeitsgruppenlistener für die 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 nicht dieselbe IP-Adresse wie der Verfügbarkeitsgruppenlistener verwenden, da es sich bei der IP-Adresse des Listeners nicht um eine öffentliche IP-Adresse handeln darf.

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

Wichtig

Am 30. September 2025 wird die Basic-SKU für Azure Load Balancer eingestellt. Weitere Informationen finden Sie in der offiziellen Ankündigung. Wenn Sie derzeit Load Balancer im Tarif „Basic“ verwenden, führen Sie unbedingt vor dem Ablaufdatum ein Upgrade auf Load Balancer Standard durch. Anleitungen finden Sie unter Upgraden von Load Balancer.

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 frontend 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 frontend 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 Verfügbarkeitsgruppe 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 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 = "<AG Listener 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 des Verfügbarkeitsgruppenlisteners. Klicken Sie in Failovercluster-Manager>Rollen unter der Rolle „Verfügbarkeitsgruppe“ 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 des Verfügbarkeitsgruppenlisteners. 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.

Die von Ihnen vorgenommenen Änderungen werden erst wirksam, wenn die IP-Adressressource offline geschaltet und wieder online gestellt wird. Führen Sie ein Failover der Verfügbarkeitsgruppe aus, damit diese Änderung wirksam wird. 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 yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0  
Get-ClusterResource yourListenerName|Set-ClusterParameter HostRecordTTL 300 

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

Tipp

  • Legen Sie in der Verbindungszeichenfolge MultiSubnetFailover parameter 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. Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit Ihrem Verfügbarkeitsgruppenlistener her.
  2. Erweitern Sie Always On-Verfügbarkeitsgruppe im Objekt-Explorer.
  3. Klicken Sie mit der rechten Maustaste auf die Verfügbarkeitsgruppe, und wählen Sie Failover aus.
  4. Befolgen Sie die Anweisungen des Assistenten, um ein Failover der Verfügbarkeitsgruppe auf ein sekundäres Replikat auszuführen.

Das Failover ist erfolgreich, wenn die Replikate ihre Rollen tauschen und beide synchronisiert werden.

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 Verfügbarkeitsgruppenlistener her.

Hinweis

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

Nächste Schritte

Nachdem der VNN erstellt wurde, sollten Sie die Clustereinstellungen für SQL Server-VMs optimieren.

Weitere Informationen finden Sie unter: