Konfigurace ILB naslouchacího procesu pro skupiny dostupnosti na Azure SQL Server virtuálních počítačích
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 Manageru.
Pokud chcete nakonfigurovat posluchač pro skupinu dostupnosti Always On v modelu Resource Manager, viz téma Konfigurace nástroje pro vyrovnávání zatížení pro skupinu dostupnosti Always On v Azure.
Vaše skupina dostupnosti může obsahovat repliky, které jsou pouze 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 již nakonfigurovali skupinu dostupnosti, ale ještě nenakonfigurovali posluchač.
Pokyny a omezení pro interní posluchače
Použití interního vyrovnávače zatížení (ILB) s posluchačem skupiny dostupnosti v Azure podléhá následujícím pokynům.
- Naslouchací server skupin dostupnosti je podporován v systémech Windows Server 2008 R2, Windows Server 2012 a Windows Server 2012 R2.
- Pro každou cloudovou službu je podporován pouze jeden interní posluchač skupiny dostupnosti, protože posluchač je nakonfigurován na interní vyrovnávání zatížení a pro každou cloudovou službu existuje pouze jedno interní vyrovnávání zatížení. Je však možné vytvořit několik externích naslouchátek. Další informace najdete v tématu Konfigurace externího posluchače pro skupiny s vysokou dostupností Always On v Azure.
Určení přístupnosti posluchače
Je důležité si uvědomit, že existují dva způsoby, jak nakonfigurovat posluchač skupiny vysoké dostupnosti v Azure. Způsoby se liší podle 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žít, když: |
---|---|---|
externí | Používá veřejnou virtuální IP adresu cloudové služby, která hostuje virtuální počítače. | Musíte získat přístup k naslouchacímu rozhraní mimo virtuální síť, včetně internetu. |
interní | Používá interní vyrovnávač zatížení s privátní adresou pro posluchač. | K posluchači můžete přistupovat pouze z téže 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 VIP (virtuální IP adresu) cloudové služby (externí vyrovnávač zatížení), pokud je klient, naslouchací proces a databáze ve stejné oblasti Azure, nebudou vám účtovány poplatky za odchozí přenos dat. Jinak se všechna data vrácená prostřednictvím naslouchacího programu považují za odchozí a jsou účtována za běžné sazby přenosu dat.
ILB lze nakonfigurovat pouze na virtuálních sítích s regionálním rozsahem. Existující virtuální sítě nakonfigurované pro skupinu vztahů nemůžou používat ILB. 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í posluchače, který používá ILB (interní vyrovnávání zatížení). Pokud potřebujete veřejný nebo externí posluchač (listener), přečtěte si verzi tohoto článku, která popisuje nastavení externího posluchače.
Vytvořte koncové body virtuálních počítačů s vyrovnáváním zatížení a přímým vracením dat serverem.
Nejprve vytvoříte interní vyrovnávač zatížení spuštěním skriptu později v této sekci.
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, každá replika pro tuto oblast musí být ve stejné cloudové službě ve stejné virtuální síti Azure. Vytváření replik skupin 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 virtuální sítě pro připojení k virtuální síti.
Na webu Azure Portal přejděte na každý virtuální počítač, který je hostitelem repliky, a zobrazte podrobnosti.
Klikněte na kartu Koncové body pro každý virtualní stroj.
Ověřte, že Název a Veřejný port naslouchacího bodu, který chcete použít, se ještě nepoužívají. V příkladu v této části je název MyEndpointa port je 1433.
Na místním klientovi stáhněte a nainstalujte nejnovější modul PowerShellu.
Spusťte Azure PowerShell.
Otevře se nová relace PowerShellu s nahranými moduly pro správu Azure.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.Spusťte následující příkaz
Import-AzurePublishSettingsFile
s cestou 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.
Pro ILBpřiřaďte statickou IP adresu. Spuštěním následujícího příkazu zkontrolujte aktuální konfiguraci virtuální sítě:
(Get-AzureVNetConfig).XMLConfiguration
Poznamenejte si název podsítě , která obsahuje virtuální počítače hostící repliky. Tento název se používá ve skriptu v parametru $SubnetName.
Poznamenejte si název VirtualNetworkSite a počáteční AddressPrefix pro podsíť, která obsahuje VMs hostující repliky. Vyhledejte dostupnou IP adresu předáním obou hodnot příkazu
Test-AzureStaticVNetIP
a prozkoumáním AvailableAddresses. Pokud má například virtuální síť název MyVNet a má rozsah adres podsítě, který začíná na 172.16.0.128, zobrazí se v následujícím příkazu seznam dostupných adres:(Test-AzureStaticVNetIP -VNetName "MyVNet"-IPAddress 172.16.0.128).AvailableAddresses
Vyberte jednu z dostupných adres a použijte ji v $ILBStaticIP parametru skriptu v dalším kroku.
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.
Stávající nasazení používající skupiny afinity nemohou přidat interní ILB. Další informace o požadavcích interního 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 }
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 nainstalovaná KB2854082.
Pokud jsou na všech serverech v clusteru spuštěné Windows Server 2008 R2 nebo Windows Server 2012, musíte ověřit, že je na všech místních serverech nebo virtuálních počítačích Azure, které jsou součástí clusteru, nainstalovaná 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 postupně nainstalujte opravu hotfix na každý uzel clusteru. Pokud je služba clusteru aktuálně spuštěná na uzlu clusteru, server se restartuje na konci instalace opravy hotfix.
Varová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 režimu offline. Pokud chcete zajistit vysokou dostupnost clusteru během instalace, ujistěte se, že:
- Cluster je v optimálním stavu, pokud jde o kvórum.
- Před instalací opravného balíčku hotfix na jakýkoli uzel jsou všechny uzly clusteru online.
- Před instalací opravy hotfix na jakýkoli jiný uzel v clusteru povolte dokončení její instalace na jednom uzlu, včetně úplného restartování serveru.
Otevření portů brány firewall v uzlech skupiny dostupnosti
V tomto kroku vytvoříte pravidlo brány firewall pro otevření portu sondy pro koncový bod s vyrovnáváním zatížení (59999, jak bylo uvedeno dříve). Dále vytvoříte pravidlo pro otevření portu naslouchacího programu dostupnostní skupiny. Vzhledem k tomu, že jste na virtuálních počítačích obsahujících repliky dostupnostní skupiny vytvořili vyrovnaný koncový bod zatížení, musíte otevřít port sondy a naslouchací port na příslušných virtuálních počítačích.
Na virtuálních počítačích, které hostují repliky, spusťte bránu Windows Firewall s rozšířeným zabezpečením.
Klikněte pravým tlačítkem myši na Příchozí Pravidlaa pak klikněte na Nové Pravidlo.
Na stránce Typ pravidla vyberte Porta poté klikněte na Další.
Na stránce Protokol a porty vyberte TCP, zadejte 59999 do pole Specifické místní porty a klikněte na tlačítko Další.
Na stránce Akce ponechte vybrané Povolit připojení a klikněte na Další.
Na stránce Profil přijměte výchozí nastavení a klikněte na tlačítko Další.
Na stránce Název zadejte do textového pole Název název pravidla, například Always On Listener Probe Port, a potom klikněte na Dokončit.
Opakujte předchozí kroky pro port naslouchacího procesu skupiny dostupnosti (jak je uvedeno dříve v parametru $EndpointPort skriptu) a zadejte odpovídající název pravidla, například port naslouchacího procesu AlwaysOn.
Vytvoření posluchače skupiny dostupnosti
Vytvořte naslouchací zařízení pro skupinu 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 posluchače skupiny dostupnosti ve Správci clusteru pro převzetí služeb při selhání a v sadě SQL Server Management Studio.
Otevřete Správce clusteru pro převzetí služeb při selhání z uzlu hostujícího primární repliky.
Vyberte uzel Sítě a poté si poznamenejte název clusterové sítě. Tento název se používá v proměnné $ClusterNetworkName ve skriptu PowerShellu.
Rozbalte název clusteru a klikněte na Role.
V podokně Role klikněte pravým tlačítkem na název skupiny pro dostupnost a potom vyberte Přidat prostředek>Klientský přístupový bod.
V poli Název vytvořte název pro tohoto nového naslouchávače, dvakrát klikněte na Následující a potom klikněte na Dokončit.
V tuto chvíli nepřeneste naslouchací proces ani prostředek do režimu online.Klikněte na kartu Prostředky a rozbalte přístupový bod klienta, který jste právě vytvořili. Zobrazí se prostředek IP adresy pro každou síť ve vašem clusteru. Pokud se jedná o řešení pouze na platformě Azure, zobrazí se pouze jeden prostředek IP adresy.
Udělejte jednu z těchto věcí:
Konfigurace hybridního řešení:
a. Pravým tlačítkem myši klikněte na zdroj IP adresy, který odpovídá vaší 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. Pravým tlačítkem myši klikněte na IP adresu, která odpovídá vaší podsíti Azure, a pak vyberte Vlastnosti.
Poznámka:
Pokud se posluchač později nezdaří připojit kvůli konfliktní IP adrese vybrané protokolem DHCP, můžete v tomto okně vlastností nakonfigurovat platnou statickou IP adresu.
b) Ve stejném okně vlastností IP adresa změňte název IP adresy.
Tento název se používá v $IPResourceName proměnné skriptu PowerShellu. Pokud vaše řešení pokrývá více virtuálních sítí Azure, opakujte tento krok pro každý IP prostředek.
Konfigurace prostředků clusteru v PowerShellu
Pro ILB musíte použít IP adresu ILB, která byla vytvořena dříve. K získání této IP adresy 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
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}
V systému 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
Po nastavení proměnných otevřete okno Windows PowerShellu se zvýšenými oprávněními, vložte skript z textového editoru do relace PowerShellu a spusťte ho. Pokud se výzva stále zobrazuje >>, stiskněte klávesu Enter a ujistěte se, že se skript spustí.
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řepne do režimu online, může reagovat na dotazy na sondovací port z koncového bodu s funkcí vyrovnávání zatížení, který jste vytvořili dříve.
Zapojit posluchače online
Ve Správci clusteru s podporou převzetí služeb při selhání rozbalte Rolea pak zvýrazněte vaši skupinu dostupnosti.
Na kartě Zdroje klikněte pravým tlačítkem myši na název naslouchátka a potom klikněte na Vlastnosti.
Klikněte na kartu Závislosti. Pokud je uvedeno více prostředků, ověřte, že IP adresy mají závislosti OR, nikoli AND.
Klikněte na OK.
Klikněte pravým tlačítkem myši na název poslechového procesu a potom klikněte na Přenést online.
Jakmile je posluchač online, na kartě Prostředky klikněte pravým tlačítkem myši na skupinu dostupnosti a poté zvolte Vlastnosti.
Vytvořte závislost na prostředku posluchačského názvu (nikoli na názvu prostředku IP adresy) a potom klikněte na OK.
Spusťte aplikaci SQL Server Management Studio a pak se připojte k primární replice.
Přejděte na AlwaysOn vysoká dostupnost>skupiny dostupnosti><název skupiny dostupnosti>>naslouchací procesy pro skupiny dostupnosti.
Název posluchače, který jste vytvořili ve Správci clusteru pro převzetí služeb při selhání, by se měl zobrazit.Klepněte pravým tlačítkem myši na název posluchače a potom klepněte na Vlastnosti.
Do pole Port zadejte číslo portu pro naslouchací službu skupiny dostupnosti, tím portem je $EndpointPort, se kterým jste pracovali dříve (v tomto kurzu byl výchozí 1433), a potom klikněte na OK.
Následné položky
Po vytvoření posluchače skupiny dostupnosti může být nutné upravit parametry clusteru RegisterAllProvidersIP a HostRecordTTL pro prostředek posluchače. Tyto parametry mohou snížit čas připojení po selhání služby, a tím 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.
Otestujte posluchače skupiny dostupnosti (ve stejné virtuální síti)
V tomto kroku otestujete posluchač skupiny dostupnosti a použijete klientskou aplikaci spuštěnou ve stejné síti.
Připojení klienta má následující požadavky:
- Klientská připojení k naslouchacímu zařízení musí pocházet z počítačů, které se nacházejí v jiné cloudové službě než ty, které hostují repliky dostupnosti Always On.
- 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 jsou paralelní pokusy o připojení k replikám 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ý je hostitelem repliky). Jednoduchým způsobem, jak tento test dokončit, je pokusit se připojit SQL Server Management Studio k posluchači skupiny dostupnosti. Další jednoduchou metodou je spuštění SQLCMD.exenásledujícím způsobem:
sqlcmd -S "<ListenerName>,<EndpointPort>" -d "<DatabaseName>" -Q "select @@servername, db_name()" -l 15
Poznámka:
Pokud je hodnota EndpointPort 1433, nemusíte ji zadávat ve volání. Předchozí volání také předpokládá, že klientský počítač je připojený ke stejné doméně a že volající má udělená oprávnění k databázi pomocí ověřování systému Windows.
Při testování naslouchací služby nezapomeňte převést skupinu dostupnosti při selhání, aby se klienti mohli připojit k naslouchací službě během převzetí 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í do sekundárních. 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 s naslouchacím procesem skupiny dostupnosti Azure AlwaysOn.
Poznámka:
Tipy pro řešení potíží s naslouchacími službami Azure najdete v tématu Řešení potíží s naslouchací službou skupiny dostupnosti v Azure na blogu týmu podpory AlwaysOn .
Další informace o používání SQL Serveru v Azure najdete v tématu SQL Server na virtuálních počítačích Azure.