Konfigurace naslouchacího procesu interního nástroje pro vyrovnávání zatížení pro skupiny dostupnosti na virtuálních počítačích Azure SQL Serveru

Přehled

Důležité

Azure má dva různé modely nasazení pro vytváření a práci s prostředky: Azure Resource Manager a classic. Tento článek popisuje použití modelu nasazení Classic. Doporučujeme, aby většina nových nasazení používala model Resource Manager.

Pokud chcete nakonfigurovat naslouchací proces pro skupinu dostupnosti AlwaysOn v modelu Resource Manager, přečtěte si téma Konfigurace nástroje pro vyrovnávání zatížení pro skupinu dostupnosti AlwaysOn v Azure.

Vaše skupina dostupnosti může obsahovat repliky, které jsou jenom místní nebo pouze Azure, nebo které zahrnují místní i Azure pro hybridní konfigurace. Repliky Azure se můžou nacházet ve stejné oblasti nebo v několika oblastech, které používají více virtuálních sítí. Postupy v tomto článku předpokládají, že jste už nakonfigurovali skupinu dostupnosti, ale ještě nenakonfigurovali naslouchací proces.

Pokyny a omezení pro interní naslouchací procesy

Použití interního nástroje pro vyrovnávání zatížení (ILB) s naslouchacím procesem skupiny dostupnosti v Azure podléhá následujícím pokynům:

  • Naslouchací proces skupiny dostupnosti je podporovaný v systémech Windows Server 2008 R2, Windows Server 2012 a Windows Server 2012 R2.
  • Pro každou cloudovou službu se podporuje jenom jeden interní naslouchací proces skupiny dostupnosti, protože naslouchací proces je nakonfigurovaný pro interní nástroj pro vyrovnávání zatížení a pro každou cloudovou službu existuje jenom jeden interní nástroj pro vyrovnávání zatížení. Je však možné vytvořit více externích naslouchacích procesů. Další informace najdete v tématu Konfigurace externího naslouchacího procesu pro skupiny dostupnosti AlwaysOn v Azure.

Určení přístupnosti naslouchacího procesu

Je důležité si uvědomit, že existují dva způsoby konfigurace naslouchacího procesu skupiny dostupnosti v Azure. Způsoby, jak se liší v typu nástroje pro vyrovnávání zatížení Azure, který používáte při vytváření naslouchacího procesu. Následující tabulka popisuje rozdíly:

Typ nástroje pro vyrovnávání zatížení Implementace Použijte, když:
Externí Používá veřejnou virtuální IP adresu cloudové služby, která hostuje virtuální počítače. Potřebujete přístup k naslouchacímu procesu mimo virtuální síť, včetně z internetu.
Interní Používá interní nástroj pro vyrovnávání zatížení s privátní adresou pro naslouchací proces. K naslouchacímu procesu můžete přistupovat pouze ze stejné virtuální sítě. Tento přístup zahrnuje vpn typu site-to-site v hybridních scénářích.

Důležité

U naslouchacího procesu, který používá veřejnou VIRTUÁLNÍ IP adresu cloudové služby (externí nástroj pro vyrovnávání zatížení), pokud klient, naslouchací proces a databáze jsou ve stejné oblasti Azure, nebudete účtovat poplatky za výchozí přenos dat. V opačném případě se všechna data vrácená prostřednictvím naslouchacího procesu považují za výchozí a účtují se za normální přenos dat.

Interní nástroj pro vyrovnávání zatížení je možné nakonfigurovat jenom ve virtuálních sítích s regionálním rozsahem. Existující virtuální sítě nakonfigurované pro skupinu spřažení nemůžou používat interní nástroj pro vyrovnávání zatížení. Další informace najdete v tématu Přehled interního nástroje pro vyrovnávání zatížení.

Tento článek se zaměřuje na vytvoření naslouchacího procesu, který používá interní nástroj pro vyrovnávání zatížení. Pokud potřebujete veřejný nebo externí naslouchací proces, přečtěte si verzi tohoto článku, která popisuje nastavení externího naslouchacího procesu.

Vytvoření koncových bodů virtuálních počítačů s vyrovnáváním zatížení s přímým vrácením serveru

Nejprve vytvoříte interní nástroj pro vyrovnávání zatížení spuštěním skriptu dále v této části.

Vytvořte koncový bod s vyrovnáváním zatížení pro každý virtuální počítač, který je hostitelem repliky Azure. Pokud máte repliky ve více oblastech, musí být každá replika pro danou oblast ve stejné cloudové službě ve stejné virtuální síti Azure. Vytváření replik skupiny dostupnosti, které zahrnují více oblastí Azure, vyžaduje konfiguraci více virtuálních sítí. Další informace o konfiguraci připojení mezi virtuálními sítěmi najdete v tématu Konfigurace připojení virtuální sítě k virtuální síti.

  1. V Azure Portal přejděte na každý virtuální počítač, který hostuje repliku, a zobrazte podrobnosti.

  2. Klikněte na kartu Koncové body pro každý virtuální počítač.

  3. Ověřte, že název a veřejný port koncového bodu naslouchacího procesu, který chcete použít, ještě nepoužíváte. V příkladu v této části je název MyEndpoint a port je 1433.

  4. Na místním klientovi stáhněte a nainstalujte nejnovější modul PowerShellu.

  5. Spusťte Azure PowerShell.
    Otevře se nová relace PowerShellu s načtenými moduly pro správu Azure.

  6. Spusťte Get-AzurePublishSettingsFile. Tato rutina vás nasměruje do prohlížeče a stáhne soubor nastavení publikování do místního adresáře. Může se zobrazit výzva k zadání přihlašovacích údajů pro vaše předplatné Azure.

  7. Spusťte následující Import-AzurePublishSettingsFile příkaz s cestou k souboru nastavení publikování, který jste stáhli:

    Import-AzurePublishSettingsFile -PublishSettingsFile <PublishSettingsFilePath>
    

    Po importu souboru nastavení publikování můžete spravovat předplatné Azure v relaci PowerShellu.

  8. Pro interní nástroj pro vyrovnávání zatížení přiřaďte statickou IP adresu. Zkontrolujte aktuální konfiguraci virtuální sítě spuštěním následujícího příkazu:

    (Get-AzureVNetConfig).XMLConfiguration
    
  9. Poznamenejte si název podsítě podsítě , která obsahuje virtuální počítače, které hostují repliky. Tento název se používá v parametru $SubnetName ve skriptu.

  10. Poznamenejte si název virtualnetworkSite a počáteční adresuPrefix pro podsíť, která obsahuje virtuální počítače, které hostují repliky. Vyhledejte dostupnou Test-AzureStaticVNetIP IP adresu předáním obou hodnot příkazu a prozkoumáním DostupnýchAddresses. Pokud má například virtuální síť název MyVNet a má rozsah adres podsítě, který začíná na 172.16.0.128, vypíše následující příkaz dostupné adresy:

    (Test-AzureStaticVNetIP -VNetName "MyVNet"-IPAddress 172.16.0.128).AvailableAddresses
    
  11. Vyberte jednu z dostupných adres a použijte ji v parametru $ILBStaticIP skriptu v dalším kroku.

  12. Zkopírujte následující skript PowerShellu do textového editoru a nastavte hodnoty proměnných tak, aby vyhovovaly vašemu prostředí. Pro některé parametry byly zadány výchozí hodnoty.

    Existující nasazení, která používají skupiny spřažení, nemůžou přidat interní nástroj pro vyrovnávání zatížení. Další informace o požadavcích na interní nástroje pro vyrovnávání zatížení najdete v tématu Přehled interního nástroje pro vyrovnávání zatížení.

    Pokud vaše skupina dostupnosti zahrnuje oblasti Azure, musíte skript spustit jednou v každém datacentru pro cloudovou službu a uzly, které se nacházejí v daném datacentru.

    # 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. Po nastavení proměnných zkopírujte skript z textového editoru do relace PowerShellu a spusťte ho. Pokud se výzva stále zobrazuje >>, znovu stiskněte Enter a ujistěte se, že se skript spustí.

Ověřte, že je v případě potřeby nainstalována aktualizace KB2854082.

Pokud jsou v clusteru spuštěné všechny servery se systémem Windows Server 2008 R2 nebo Windows Server 2012, musíte ověřit, že je na každém z místních serverů nebo virtuálních počítačů Azure, které jsou součástí clusteru, nainstalována oprava hotfix KB2854082. Všechny servery nebo virtuální počítače, které jsou v clusteru, ale ne ve skupině dostupnosti, by také měly mít nainstalovanou tuto opravu hotfix.

V relaci vzdálené plochy pro každý uzel clusteru stáhněte kb2854082 do místního adresáře. Potom nainstalujte opravu hotfix na každý uzel clusteru postupně. Pokud je služba clusteru aktuálně spuštěná na uzlu clusteru, server se restartuje na konci instalace opravy hotfix.

Upozornění

Zastavení služby clusteru nebo restartování serveru ovlivňuje stav kvora vašeho clusteru a skupiny dostupnosti a může to způsobit, že cluster přejde do offline režimu. Pokud chcete zachovat vysokou dostupnost clusteru během instalace, ujistěte se, že:

  • Cluster je v optimálním stavu kvora.
  • Před instalací opravy hotfix do libovolného uzlu jsou všechny uzly clusteru online.
  • Před instalací opravy hotfix do libovolného jiného uzlu v clusteru povolte instalaci oprav hotfix, aby se na jednom uzlu spustila dokončení, včetně úplné restartování serveru.

Otevření portů brány firewall v uzlech skupiny dostupnosti

V tomto kroku vytvoříte pravidlo brány firewall, které otevře port sondy pro koncový bod s vyrovnáváním zatížení (59999, jak je uvedeno dříve) a další pravidlo pro otevření portu naslouchacího procesu skupiny dostupnosti. Vzhledem k tomu, že jste vytvořili koncový bod s vyrovnáváním zatížení na virtuálních počítačích, které obsahují repliky skupiny dostupnosti, musíte otevřít port sondy a port naslouchacího procesu na příslušných virtuálních počítačích.

  1. Na virtuálních počítačích, které hostují repliky, spusťte bránu Windows Firewall s pokročilým zabezpečením.

  2. Klepněte pravým tlačítkem myši na příchozí pravidla a klepněte na tlačítko Nové pravidlo.

  3. Na stránce Typ pravidla vyberte port a potom klepněte na tlačítko Další.

  4. Na stránce Protokol a porty vyberte TCP, zadejte 59999 do pole Specifické místní porty a klepněte na tlačítko Další.

  5. Na stránce Akce ponechte vybranou možnost Povolit připojení a klepněte na tlačítko Další.

  6. Na stránce Profil přijměte výchozí nastavení a klepněte na tlačítko Další.

  7. Na stránce Název zadejte do textového pole Název název název pravidla, například port sondy sondy AlwaysOn, a klikněte na tlačítko Dokončit.

  8. Opakujte předchozí kroky pro port naslouchacího procesu skupiny dostupnosti (jak je uvedeno výše v parametru $EndpointPort skriptu) a zadejte odpovídající název pravidla, například port naslouchacího procesu AlwaysOn.

Vytvoření naslouchacího procesu skupiny dostupnosti

Vytvořte naslouchací proces skupiny dostupnosti ve dvou krocích. Nejprve vytvořte prostředek clusteru přístupového bodu klienta a nakonfigurujte závislosti. Za druhé nakonfigurujte prostředky clusteru v PowerShellu.

Vytvoření přístupového bodu klienta a konfigurace závislostí clusteru

V tomto kroku ručně vytvoříte naslouchací proces skupiny dostupnosti ve Správci clusteru s podporou převzetí služeb při selhání a SQL Server Management Studio.

  1. Otevřete Správce clusteru s podporou převzetí služeb při selhání z uzlu, který je hostitelem primární repliky.

  2. Vyberte uzel Sítě a poznamenejte si název sítě clusteru. Tento název se používá ve $ClusterNetworkName proměnné ve skriptu PowerShellu.

  3. Rozbalte název clusteru a klikněte na Role.

  4. V podokně Role klikněte pravým tlačítkem myši na název skupiny dostupnosti a pak vyberte Přidatpřístupový bod klientaprostředku>.

    Přidání klientského přístupového bodu pro skupinu dostupnosti

  5. V poli Název vytvořte název tohoto nového naslouchacího procesu, dvakrát klepněte na tlačítko Další a potom klepněte na tlačítko Dokončit.
    V tuto chvíli nepřineste naslouchací proces ani prostředek online.

  6. Klikněte na kartu Prostředky a potom rozbalte přístupový bod klienta, který jste právě vytvořili. Zobrazí se prostředek IP adresy pro každou síť clusteru ve vašem clusteru. Pokud se jedná o řešení jen pro Azure, zobrazí se jenom jeden prostředek IP adresy.

  7. Proveďte jednu z následujících akcí:

    • Konfigurace hybridního řešení:

      a. Klikněte pravým tlačítkem na prostředek IP adresy, který odpovídá vaší místní podsíti, a pak vyberte Vlastnosti. Poznamenejte si název IP adresy a název sítě.

      b. Vyberte statickou IP adresu, přiřaďte nepoužitou IP adresu a klikněte na tlačítko OK.

    • Konfigurace řešení jen pro Azure:

      a. Klikněte pravým tlačítkem na prostředek IP adresy, který odpovídá vaší podsíti Azure, a pak vyberte Vlastnosti.

      Poznámka

      Pokud se naslouchací proces později z důvodu konfliktní IP adresy vybrané protokolem DHCP nezdaří, můžete v tomto okně vlastností nakonfigurovat platnou statickou IP adresu.

      b. Ve stejném okně vlastností IP adresy změňte název IP adresy.
      Tento název se používá v $IPResourceName proměnné skriptu PowerShellu. Pokud vaše řešení zahrnuje více virtuálních sítí Azure, opakujte tento krok pro každý prostředek IP adresy.

Konfigurace prostředků clusteru v PowerShellu

  1. Pro interní nástroj pro vyrovnávání zatížení musíte použít IP adresu interního nástroje pro vyrovnávání zatížení, která byla vytvořena dříve. Pokud chcete získat tuto IP adresu v PowerShellu, použijte následující skript:

    # Define variables
    $ServiceName="<MyServiceName>" # the name of the cloud service that contains the AG nodes
    (Get-AzureInternalLoadBalancer -ServiceName $ServiceName).IPAddress
    
  2. Na jednom z virtuálních počítačů zkopírujte skript PowerShellu pro váš operační systém do textového editoru a potom nastavte proměnné na hodnoty, které jste si poznamenali dříve.

    Pro Windows Server 2012 nebo novější použijte následující 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
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    Pro Windows Server 2008 R2 použijte následující 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. Po nastavení proměnných otevřete okno se zvýšenými oprávněními Windows PowerShell, vložte skript z textového editoru do relace PowerShellu a spusťte ho. Pokud se výzva stále zobrazuje >>, stiskněte enter a ujistěte se, že se skript spustí.

  4. Opakujte předchozí kroky pro každý virtuální počítač.
    Tento skript nakonfiguruje prostředek IP adresy s IP adresou cloudové služby a nastaví další parametry, jako je port sondy. Když se prostředek IP adresy přenese do režimu online, může reagovat na dotazování na port sondy z koncového bodu s vyrovnáváním zatížení, který jste vytvořili dříve.

Přenést naslouchací proces online

  1. Ve Správci clusteru s podporou převzetí služeb při selhání rozbalte role a zvýrazněte skupinu dostupnosti.

  2. Na kartě Prostředky klikněte pravým tlačítkem myši na název naslouchacího procesu a potom klikněte na příkaz Vlastnosti.

  3. Klikněte na kartu Závislosti . Pokud je uvedeno více prostředků, ověřte, že IP adresy mají NEBO, nikoli AND, závislosti.

  4. Klikněte na OK.

  5. Klikněte pravým tlačítkem myši na název naslouchacího procesu a potom klikněte na Přenést online.

  6. Po online naslouchacím procesu klikněte na kartě Prostředky pravým tlačítkem myši na skupinu dostupnosti a potom klikněte na Příkaz Vlastnosti.

    Konfigurace prostředku skupiny dostupnosti

  7. Vytvořte závislost na prostředku názvu naslouchacího procesu (ne název prostředků IP adresy) a klikněte na tlačítko OK.

    Přidání závislosti na názvu naslouchacího procesu

  8. Spusťte SQL Server Management Studio a pak se připojte k primární replice.

  9. Přejděte nanaslouchací procesy skupinydostupnosti Skupiny dostupnosti AlwaysOn><s vysokou dostupností AvailabilityGroupName>>.>
    Měl by se zobrazit název naslouchacího procesu, který jste vytvořili ve Správci clusteru s podporou převzetí služeb při selhání.

  10. Klikněte pravým tlačítkem myši na název naslouchacího procesu a potom klikněte na příkaz Vlastnosti.

  11. V poli Port zadejte číslo portu pro naslouchací proces skupiny dostupnosti pomocí $EndpointPort, který jste použili dříve (v tomto kurzu 1433 je výchozí) a klikněte na tlačítko OK.

Následné položky

Po vytvoření naslouchacího procesu skupiny dostupnosti může být nutné upravit parametry clusteru RegisterAllProvidersIP a HostRecordTTL pro prostředek naslouchacího procesu. Tyto parametry můžou zkrátit dobu opětovného připojení po převzetí služeb při selhání, což může zabránit vypršení časového limitu připojení. Další informace o těchto parametrech a vzorovém kódu najdete v tématu Vytvoření nebo konfigurace naslouchacího procesu skupiny dostupnosti.

Testování naslouchacího procesu skupiny dostupnosti (ve stejné virtuální síti)

V tomto kroku otestujete naslouchací proces skupiny dostupnosti pomocí klientské aplikace spuštěné ve stejné síti.

Připojení klienta má následující požadavky:

  • Klientská připojení k naslouchacímu procesu musí pocházet z počítačů, které se nacházejí v jiné cloudové službě než z těch, které hostují repliky dostupnosti AlwaysOn.
  • Pokud jsou repliky AlwaysOn v různých podsítích, musí klienti v připojovacím řetězci zadat MultisubnetFailover=True . Výsledkem této podmínky je paralelní pokus o připojení replik v různých podsítích. Tento scénář zahrnuje nasazení skupiny dostupnosti AlwaysOn napříč oblastmi.

Jedním z příkladů je připojení k naslouchacímu procesu z jednoho z virtuálních počítačů ve stejné virtuální síti Azure (ale ne k jednomu, který hostuje repliku). Jednoduchým způsobem, jak tento test dokončit, je pokusit se připojit SQL Server Management Studio k naslouchacímu procesu skupiny dostupnosti. Další jednoduchou metodou je spuštění SQLCMD.exe, následujícím způsobem:

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

Poznámka

Pokud je hodnota EndpointPortu 1433, nemusíte ji zadávat ve volání. Předchozí volání také předpokládá, že je klientský počítač připojený ke stejné doméně a že volajícímu byla udělena oprávnění k databázi pomocí ověřování systému Windows.

Při testování naslouchacího procesu nezapomeňte skupinu dostupnosti převzít služby při selhání a zajistit, aby se klienti mohli připojit k naslouchacímu procesu napříč převzetím služeb při selhání.

Další kroky

Kromě automatického připojení klientů k primární replice se dá naslouchací proces použít k přesměrování úloh jen pro čtení na sekundáře. Toto použití může zlepšit výkon a škálovatelnost vašeho celkového řešení. Další informace najdete v tématu Použití směrování ReadIntent se naslouchacím procesem skupiny dostupnosti Azure AlwaysOn.

Poznámka

Tipy pro řešení potíží s naslouchacími procesy Azure najdete v tématu Řešení potíží s naslouchacím procesem skupiny dostupnosti v Azure na blogu týmu podpory AlwaysOn.

Další informace o používání SQL Server v Azure najdete v tématu SQL Server na virtuálních počítačích Azure.