Dela via


Konfigurera en ILB-lyssnare för tillgänglighetsgrupper på virtuella Azure SQL Server-datorer

Översikt

Viktigt!

Azure har två olika distributionsmodeller för att skapa och arbeta med resurser: Azure Resource Manager och klassisk. Den här artikeln beskriver användningen av den klassiska distributionsmodellen. Vi rekommenderar att de flesta nya distributioner använder Resource Manager-modellen.

Information om hur du konfigurerar en lyssnare för en AlwaysOn-tillgänglighetsgrupp i Resource Manager-modellen finns i Konfigurera en lastbalanserare för en AlwaysOn-tillgänglighetsgrupp i Azure.

Din tillgänglighetsgrupp kan innehålla repliker som endast är lokala eller endast Azure, eller som sträcker sig över både lokalt och Azure för hybridkonfigurationer. Azure-repliker kan finnas i samma region eller i flera regioner som använder flera virtuella nätverk. Procedurerna i den här artikeln förutsätter att du redan har konfigurerat en tillgänglighetsgrupp men ännu inte har konfigurerat en lyssnare.

Riktlinjer och begränsningar för interna lyssnare

Användningen av en intern lastbalanserare (ILB) med en tillgänglighetsgruppslyssnare i Azure omfattas av följande riktlinjer:

  • Tillgänglighetsgruppens lyssnare stöds på Windows Server 2008 R2, Windows Server 2012 och Windows Server 2012 R2.
  • Endast en intern lyssnare för tillgänglighetsgrupper stöds för varje molntjänst, eftersom lyssnaren är konfigurerad för ILB och det bara finns en ILB för varje molntjänst. Det är dock möjligt att skapa flera externa lyssnare. Mer information finns i Konfigurera en extern lyssnare för AlwaysOn-tillgänglighetsgrupper i Azure.

Fastställa tillgängligheten för lyssnaren

Det är viktigt att inse att det finns två sätt att konfigurera en tillgänglighetsgruppslyssnare i Azure. Olika sätt skiljer sig åt i vilken typ av Azure-lastbalanserare du använder när du skapar lyssnaren. I följande tabell beskrivs skillnaderna:

Typ av lastbalanserare Genomförande Använd när:
extern Använder den offentliga virtuella IP-adressen för molntjänsten som är värd för de virtuella datorerna (VM). Du måste komma åt lyssnaren utanför det virtuella nätverket, inklusive från Internet.
Intern Använder en intern lastbalanserare med en privat adress för lyssnaren. Du kan bara komma åt lyssnaren från samma virtuella nätverk. Den här åtkomsten omfattar plats-till-plats-VPN i hybridscenarier.

Viktigt!

För en lyssnare som använder molntjänstens offentliga VIP (extern lastbalanserare) så länge klienten, lyssnaren och databaserna finns i samma Azure-region debiteras du inte utgående avgifter. Annars betraktas alla data som returneras via lyssnaren som utgående och debiteras enligt normala dataöverföringshastigheter.

En ILB kan endast konfigureras i virtuella nätverk med ett regionalt omfång. Befintliga virtuella nätverk som har konfigurerats för en tillhörighetsgrupp kan inte använda en ILB. För mer information, se Översikt av intern lastbalanserare.

Den här artikeln fokuserar på att skapa en lyssnare som använder en ILB. Om du behöver en offentlig eller extern lyssnare kan du läsa den version av den här artikeln som beskriver hur du konfigurerar en extern lyssnare.

Skapa belastningsbalanserade VM-slutpunkter med direkt serverretur

Du skapar först en ILB genom att köra skriptet senare i det här avsnittet.

Skapa en belastningsutjämningsslutpunkt för varje virtuell dator som är värd för en Azure-replik. Om du har repliker i flera regioner måste varje replik för den regionen finnas i samma molntjänst i samma virtuella Azure-nätverk. För att skapa tillgänglighetsgruppsrepliker som sträcker sig över flera Azure-regioner måste du konfigurera flera virtuella nätverk. Mer information om hur du konfigurerar anslutning mellan virtuella nätverk finns i Konfigurera virtuellt nätverk till virtuell nätverksanslutning.

  1. I Azure-portalen går du till varje virtuell dator som är värd för en replik för att visa informationen.

  2. Klicka på fliken Slutpunkter för varje virtuell dator.

  3. Kontrollera att Namn och offentlig port för lyssnarens slutpunkt som du vill använda inte redan är i bruk. I exemplet i det här avsnittet är namnet MyEndpoint och porten är 1433.

  4. På din lokala klient laddar du ned och installerar den senaste PowerShell-modulen.

  5. Starta Azure PowerShell.
    En ny PowerShell-session öppnas med de administrativa Azure-modulerna inlästa.

  6. Kör Get-AzurePublishSettingsFile. Den här cmdleten dirigerar dig till en webbläsare för att ladda ned en fil för publiceringsinställningar till en lokal katalog. Du kan uppmanas att ange dina inloggningsuppgifter för din Azure-prenumeration.

  7. Kör följande Import-AzurePublishSettingsFile kommando med sökvägen till filen med publiceringsinställningar som du laddade ned:

    Import-AzurePublishSettingsFile -PublishSettingsFile <PublishSettingsFilePath>
    

    När filen med publiceringsinställningar har importerats kan du hantera din Azure-prenumeration i PowerShell-sessionen.

  8. För ILB tilldelar du en statisk IP-adress. Granska den aktuella konfigurationen av virtuella nätverk genom att köra följande kommando:

    (Get-AzureVNetConfig).XMLConfiguration
    
  9. Observera undernätets namn för det undernät som innehåller de virtuella datorer som är värdar för replikerna. Det här namnet används i parametern $SubnetName i skriptet.

  10. Observera namnet på VirtualNetworkSite och startadressprefixet för det undernät som innehåller de virtuella datorer som är värdar för replikerna. Leta efter en tillgänglig IP-adress genom att skicka båda värdena till Test-AzureStaticVNetIP kommandot och genom att undersöka AvailableAddresses. Om det virtuella nätverket till exempel heter MyVNet och har ett adressintervall för undernätet som börjar på 172.16.0.128 visas följande kommando med tillgängliga adresser:

    (Test-AzureStaticVNetIP -VNetName "MyVNet"-IPAddress 172.16.0.128).AvailableAddresses
    
  11. Välj en av de tillgängliga adresserna och använd den i parametern $ILBStaticIP i skriptet i nästa steg.

  12. Kopiera följande PowerShell-skript till en textredigerare och ange variabelvärdena så att de passar din miljö. Standardvärden har angetts för vissa parametrar.

    Befintliga implementeringar som använder tillhörighetsgrupper kan inte lägga till en ILB. Mer information om ILB-krav finns i Översikt över intern lastbalanserare.

    Om tillgänglighetsgruppen omfattar Azure-regioner måste du också köra skriptet en gång i varje datacenter för molntjänsten och noderna som finns i det datacentret.

    # Define variables
    $ServiceName = "<MyCloudService>" # the name of the cloud service that contains the availability group nodes
    $AGNodes = "<VM1>","<VM2>","<VM3>" # all availability group nodes containing replicas in the same cloud service, separated by commas
    $SubnetName = "<MySubnetName>" # subnet name that the replicas use in the virtual network
    $ILBStaticIP = "<MyILBStaticIPAddress>" # static IP address for the ILB in the subnet
    $ILBName = "AGListenerLB" # customize the ILB name or use this default value
    
    # Create the ILB
    Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ILBName -SubnetName $SubnetName -ServiceName $ServiceName -StaticVNetIPAddress $ILBStaticIP
    
    # Configure a load-balanced endpoint for each node in $AGNodes by using ILB
    ForEach ($node in $AGNodes)
    {
        Get-AzureVM -ServiceName $ServiceName -Name $node | Add-AzureEndpoint -Name "ListenerEndpoint" -LBSetName "ListenerEndpointLB" -Protocol tcp -LocalPort 1433 -PublicPort 1433 -ProbePort 59999 -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -InternalLoadBalancerName $ILBName -DirectServerReturn $true | Update-AzureVM
    }
    
  13. När du har angett variablerna kopierar du skriptet från textredigeraren till PowerShell-sessionen för att köra det. Om kommandotolken fortfarande visas >>trycker du på Retur igen för att kontrollera att skriptet börjar köras.

Kontrollera att KB2854082 har installerats om det behövs

Om några servrar i klustret kör Windows Server 2008 R2 eller Windows Server 2012 måste du kontrollera att snabbkorrigeringen #B0 KB2854082 #C1 är installerad på var och en av de lokala servrar eller virtuella Azure-datorer som ingår i klustret. Alla servrar eller virtuella datorer som finns i klustret, men inte i tillgänglighetsgruppen, bör också ha den här snabbkorrigeringen installerad.

I fjärrskrivbordssessionen för var och en av klusternoderna ska du ladda ner KB2854082 till en lokal katalog. Installera sedan snabbkorrigeringen på varje klusternod sekventiellt. Om klustertjänsten körs på klusternoden startas servern om i slutet av snabbkorrigeringsinstallationen.

Varning

Om klustertjänsten stoppas eller servern startas om påverkas kvorumhälsan för klustret och tillgänglighetsgruppen, och det kan leda till att klustret kopplas från. Om du vill behålla hög tillgänglighet för klustret under installationen kontrollerar du att:

  • Klustret är i optimal kvorumhälsa.
  • Innan du installerar snabbkorrigeringen på en nod är alla klusternoder online.
  • Innan du installerar snabbkorrigeringen på någon annan nod i klustret ska du tillåta att snabbkorrigeringsinstallationen körs på en nod, inklusive att servern startas om helt.

Öppna brandväggsportarna i tillgänglighetsgruppnoder

I det här steget skapar du en brandväggsregel för att öppna proberingsporten för den lastbalanserade slutpunkten (59999, som du angav tidigare) och en annan regel för att öppna lyssnarporten för tillgänglighetsgruppen. Eftersom du skapade den belastningsbalanserade slutpunkten på de virtuella datorer som innehåller tillgänglighetsgrupprepliker måste du öppna avsökningsporten och lyssnarporten på respektive virtuella datorer.

  1. På virtuella datorer som är värdar för repliker startar du Windows-brandväggen med avancerad säkerhet.

  2. Högerklicka på Inkommande regler och klicka sedan på Ny regel.

  3. På sidan Regeltyp väljer du Port och klickar sedan på Nästa.

  4. På sidan Protokoll och portar väljer du TCP, skriver 59999 i rutan Specifika lokala portar och klickar sedan på Nästa.

  5. Åtgärd-sidan ser du till att Tillåt anslutningen är markerad och klicka sedan på Nästa.

  6. På sidan Profil godkänner du standardinställningarna och klickar sedan på Nästa.

  7. Namn sidan, i textrutan Namn, ange ett regelnamn, som Always On Listener Probe Port, och klicka sedan på Slutför.

  8. Upprepa föregående steg för tillgänglighetsgruppens lyssnarport (som specificerats tidigare i parametern $EndpointPort i skriptet) och ange sedan ett lämpligt regelnamn, till exempel Always On-lyssnarport.

Skapa lyssnaren för tillgänglighetsgruppen

Skapa lyssnaren för tillgänglighetsgruppen i två steg. Skapa först klusterresursen för klientåtkomstpunkter och konfigurera beroenden. För det andra konfigurerar du klusterresurserna i PowerShell.

Skapa klientåtkomstpunkten och konfigurera klusterberoenden

I det här steget skapar du manuellt lyssnaren för hög tillgänglighetsgrupp i Failover Cluster Manager och SQL Server Management Studio.

  1. Öppna Failover-klusterhanteraren från noden som är värd för primärreplikan.

  2. Välj noden Nätverk och anteckna sedan nätverksnamnet för klustret. Det här namnet används i variabeln $ClusterNetworkName i PowerShell-skriptet.

  3. Expandera klusternamnet och klicka sedan på Roller.

  4. I panelen Roller högerklickar du på namnet på tillgänglighetsgruppen och välj sedan Lägg till resurs>Klientåtkomstpunkt.

    #B0 #A1 Lägg till klientåtkomstpunkt för tillgänglighetsgrupp #A2 #C3

  5. I rutan Namn skapar du ett namn för den nya lyssnaren, klickar på Nästa två gånger och klickar sedan på Slutför.
    Ta inte med lyssnaren eller resursen online vid denna tidpunkt.

  6. Klicka på fliken Resurser och expandera sedan den klientens åtkomstpunkt som du nyss skapade. IP-adressresursen för varje klusternätverk i klustret visas. Om det här är en azure-lösning visas bara en IP-adressresurs.

  7. Gör något av följande:

    • Så här konfigurerar du en hybridlösning:

      a. Högerklicka på den IP-adressresurs som motsvarar ditt lokala nätverksundernät och välj sedan Egenskaper. Observera IP-adressnamnet och nätverksnamnet.

      b) Välj Statisk IP-adress, tilldela en oanvänd IP-adress och klicka sedan på OK.

    • Så här konfigurerar du en azure-lösning:

      a. Högerklicka på den IP-adressresurs som motsvarar ditt Azure-undernät och välj sedan Egenskaper.

      Anmärkning

      Om lyssnaren senare inte kan komma online på grund av en IP-adress i konflikt som valts av DHCP kan du konfigurera en giltig statisk IP-adress i det här egenskapsfönstret.

      b) I samma egenskapsfönster för IP-adress, ändra IP-adressens namn.
      Det här namnet används i $IPResourceName variabeln för PowerShell-skriptet. Om din lösning omfattar flera virtuella Azure-nätverk upprepar du det här steget för varje IP-resurs.

Konfigurera klusterresurserna i PowerShell

  1. För ILB måste du använda IP-adressen för den ILB som skapades tidigare. Använd följande skript för att hämta den här IP-adressen i PowerShell:

    # Define variables
    $ServiceName="<MyServiceName>" # the name of the cloud service that contains the AG nodes
    (Get-AzureInternalLoadBalancer -ServiceName $ServiceName).IPAddress
    
  2. På en av de virtuella datorerna kopierar du PowerShell-skriptet för ditt operativsystem till en textredigerare och ställer sedan in variablerna på de värden som du antecknade tidigare.

    Använd följande skript för Windows Server 2012 eller senare:

    # Define variables
    $ClusterNetworkName = "<MyClusterNetworkName>" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)
    $IPResourceName = "<IPResourceName>" # the IP address resource name
    $ILBIP = "<X.X.X.X>" # the IP address of the ILB
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    För Windows Server 2008 R2 använder du följande skript:

    # Define variables
    $ClusterNetworkName = "<MyClusterNetworkName>" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)
    $IPResourceName = "<IPResourceName>" # the IP address resource name
    $ILBIP = "<X.X.X.X>" # the IP address of the ILB
    
    Import-Module FailoverClusters
    
    cluster res $IPResourceName /priv enabledhcp=0 address=$ILBIP probeport=59999  subnetmask=255.255.255.255
    
  3. När du har angett variablerna öppnar du ett upphöjt Windows PowerShell-fönster och klistrar in skriptet från textredigeraren i PowerShell-sessionen för att köra det. Om kommandotolken fortfarande visas >>trycker du på Retur igen för att kontrollera att skriptet börjar köras.

  4. Upprepa föregående steg för varje virtuell dator.
    Det här skriptet konfigurerar IP-adressresursen med IP-adressen för molntjänsten och anger andra parametrar, till exempel avsökningsporten. När IP-adressresursen är online kan den svara på kontrollen på testporten från den lastbalanserade slutpunkten som du skapade tidigare.

Få lyssnaren online

  1. I Hanteraren för växlingskluster, expandera Roller och markera sedan din tillgänglighetsgrupp.

  2. Resurser-fliken, högerklicka på lyssnarnamnet, och klicka sedan på Egenskaper.

  3. Klicka på Beroenden. Om flera resurser visas kontrollerar du att IP-adresserna har ELLER, inte OCH, beroenden.

  4. Klicka på OK.

  5. Högerklicka på lyssnarnamnet och klicka sedan på Aktivera online.

  6. När lyssnaren är online, på fliken Resurser, högerklicka på tillgänglighetsgruppen och klicka sedan på Egenskaper.

    Konfigurera tillgänglighetsgruppsresursen

  7. Skapa ett beroende av lyssnarens namnresurs (inte IP-adressens namnresurs) och klicka sedan på OK.

    Lägg till beroende på lyssnarnamnet

  8. Starta SQL Server Management Studio och anslut sedan till den primära repliken.

  9. Gå till AlwaysOn High Availability>tillgänglighetsgrupper><AvailabilityGroupName>>tillgänglighetsgruppslyssnare.
    Lyssnarnamnet som du skapade i Failover Cluster Manager ska visas.

  10. Högerklicka på lyssnarnamnet, och klicka sedan på Egenskaper.

  11. I rutan Port anger du portnumret för tillgänglighetsgruppens lyssnare med hjälp av $EndpointPort som du använde tidigare (i den här handledningen var 1433 standard), och klickar sedan på OK.

Uppföljningsobjekt

När du har skapat tillgänglighetsgruppens lyssnare kan det vara nödvändigt att justera parametrarna RegisterAllProvidersIP och HostRecordTTL-kluster för lyssnarresursen. Dessa parametrar kan minska återanslutningstiden efter en redundansväxling, vilket kan förhindra tidsgränser för anslutningar. För mer information om dessa parametrar samt exempelkod, se Skapa eller konfigurera en tillgänglighetsgruppslyssnare.

Testa tillgänglighetsgruppens lyssnare (inom samma virtuella nätverk)

I det här steget testar du lyssnaren för tillgänglighetsgruppen med hjälp av ett klientprogram som körs i samma nätverk.

Klientanslutningen har följande krav:

  • Klientanslutningar till lyssnaren måste komma från datorer som finns i en annan molntjänst än den som är värd för AlwaysOn-tillgänglighetsreplikerna.
  • Om Always On-replikerna finns i olika undernät måste klienterna ange MultisubnetFailover=True i anslutningssträngen. Det här villkoret resulterar i parallella anslutningsförsök till repliker i de olika undernäten. Det här scenariot inkluderar en Always On-tillgänglighetsgruppsdistribution över regioner.

Ett exempel är att ansluta till lyssnaren från en av de virtuella datorerna i samma Azure-nätverk (men inte en som är värd för en replik). Ett enkelt sätt att slutföra det här testet är att försöka ansluta SQL Server Management Studio till tillgänglighetsgruppens lyssnare. En annan enkel metod är att köra SQLCMD.exe, enligt följande:

sqlcmd -S "<ListenerName>,<EndpointPort>" -d "<DatabaseName>" -Q "select @@servername, db_name()" -l 15

Anmärkning

Om EndpointPort-värdet är 1433 behöver du inte ange det i anropet. Det tidigare anropet förutsätter också att klientdatorn är ansluten till samma domän och att anroparen har beviljats behörigheter för databasen med hjälp av Windows-autentisering.

När du testar lyssnaren, se till att växla över tillgänglighetsgruppen för att säkerställa att klienterna kan ansluta till lyssnaren vid överväxlingar.

Nästa steg

Förutom att automatiskt ansluta klienter till den primära repliken kan en lyssnare användas för att omdirigera skrivskyddade arbetsbelastningar till de sekundära replikerna. Den här användningen kan förbättra prestanda och skalbarhet för din övergripande lösning. För mer information, se Använd ReadIntent-routning med en lyssnare för Azure Always On-tillgänglighetsgrupper.

Anmärkning

Felsökningstips för Azure-lyssnare finns i avsnittet "Felsöka tillgänglighetsgruppslyssnare i Azure" på AlwaysOn Support Team bloggen.

Mer information om hur du använder SQL Server i Azure finns i SQL Server på Azure virtuella datorer.