Konfigurace externí naslouchací služby pro skupiny dostupnosti na virtuálních počítačích s Azure SQL Serverem
Toto téma ukazuje, jak nakonfigurovat posluchač pro disponibilní skupinu Always On, která je dostupná externě na internetu. To je možné díky přidružení veřejné virtuální IP adresy (VIP) cloudové služby k posluchači.
Důležité
Azure má dva různé modely nasazení pro vytváření a práci s prostředky: Resource Manager a Classic. Tento článek popisuje použití modelu nasazení Classic. Microsoft doporučuje, aby většina nových nasazení používala model Resource Manageru.
Vaše skupina dostupnosti může obsahovat repliky, které jsou buď pouze místní, pouze v Azure, nebo zahrnují obě prostředí — místní i Azure — pro hybridní konfigurace. Repliky Azure se můžou nacházet ve stejné oblasti nebo v několika oblastech pomocí několika virtuálních sítí. Následující postup předpokládá, že jste již nakonfigurovali skupinu dostupnosti, ale nenakonfigurovali posluchač.
Pokyny a omezení pro externí posluchače
Všimněte si následujících pokynů k poslechu skupiny dostupnosti v Azure při nasazování prostřednictvím veřejné VIP adresy cloudové služby:
- Naslouchací server skupin dostupnosti je podporován v systémech Windows Server 2008 R2, Windows Server 2012 a Windows Server 2012 R2.
- Klientská aplikace se musí nacházet v jiné cloudové službě, než je ta, která obsahuje virtuální počítače vaší skupiny dostupnosti. Azure nepodporuje přímý návrat serveru, když jsou klient a server ve stejné cloudové službě.
- Ve výchozím nastavení ukazuje postup v tomto článku, jak nakonfigurovat jednoho naslouchače tak, aby používal virtuální IP adresu (VIP) cloudové služby. Pro cloudovou službu je ale možné rezervovat a vytvořit několik VIP adres. Díky tomu můžete pomocí kroků v tomto článku vytvořit několik posluchačů, z nichž každý je přidružen k různému VIP. Pro informace o vytvoření více VIP adres pro jednu cloudovou službu, viz Více VIP na cloudovou službu.
- Pokud vytváříte naslouchací službu pro hybridní prostředí, musí mít on-premises síť kromě sítě VPN typu site-to-site s virtuální sítí Azure připojení k Veřejnému internetu. Ve službě Azure v rámci její podsítě je listener skupiny dostupnosti dosažitelný pouze prostřednictvím veřejné IP adresy příslušné cloudové služby.
- Nepodporuje se vytvoření externího naslouchacího procesu ve stejné cloudové službě, ve které máte interní naslouchací proces pomocí interního nástroje pro vyrovnávání zatížení (ILB).
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í naslouchací služby, která používá externí vyrovnávání zatížení. Pokud chcete naslouchací jednotku, která je privátní pro vaši virtuální síť, přečtěte si verzi tohoto článku, která obsahuje postup nastavení naslouchací jednotky s interním systémem vyrovnávání zatížení
Vytvořte koncové body virtuálních počítačů s vyrovnáváním zatížení a přímým vracením dat serverem.
Externí vyrovnávání zatížení používá veřejnou virtuální IP adresu cloudové služby, která hostuje vaše virtuální počítače. Proto v tomto případě nemusíte vytvářet ani konfigurovat nástroj pro vyrovnávání zatížení.
Pro každý virtuální počítač, který je hostitelem repliky Azure, musíte vytvořit koncový bod s vyrovnáváním zatížení. Pokud máte repliky ve více oblastech, musí být každá replika pro tuto oblast ve stejné cloudové službě ve stejné virtuální síti. 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.
Na webu Azure Portal přejděte na každý virtuální počítač hostující repliku a prohlédněte si podrobnosti.
Klikněte na záložku Koncové body pro každý virtuální počítač.
Ověřte, že název a veřejný port koncového bodu naslouchacího procesu, který chcete použít, se ještě nepoužívá. V následujícím příkladu je název MyEndpoint a 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 načtený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 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.
Zkopírujte níže uvedený 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). Upozorňujeme, že 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 # Configure a load balanced endpoint for each node in $AGNodes, with direct server return enabled ForEach ($node in $AGNodes) { Get-AzureVM -ServiceName $ServiceName -Name $node | Add-AzureEndpoint -Name "ListenerEndpoint" -Protocol "TCP" -PublicPort 1433 -LocalPort 1433 -LBSetName "ListenerEndpointLB" -ProbePort 59999 -ProbeProtocol "TCP" -DirectServerReturn $true | Update-AzureVM }
Jakmile nastavíte proměnné, zkopírujte skript z textového editoru do relace Azure PowerShellu a spusťte ho. Pokud se výzva stále zobrazuje >>, zadejte enter znovu 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 kvora.
- 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 pomocí 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 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íť clusteru v clusteru. Pokud se jedná o řešení jen pro Azure, zobrazí se jenom 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 externí vyrovnávání zatížení musíte získat veřejnou virtuální IP adresu cloudové služby, která obsahuje vaše repliky. Přihlaste se k webu Azure Portal. Přejděte do cloudové služby, která obsahuje virtuální počítač skupiny dostupnosti. Otevřete zobrazení řídicího panelu .
Poznamenejte si adresu uvedenou pod veřejná virtuální IP (VIP) adresa. Pokud vaše řešení pokrývá virtuální sítě, opakujte tento krok pro každou cloudovou službu, která obsahuje virtuální počítač, který je hostitelem repliky.
Na jednom z virtuálních počítačů zkopírujte níže uvedený skript PowerShellu do textového editoru a nastavte proměnné na hodnoty, které jste si poznamenali dříve.
# Define variables $ClusterNetworkName = "<ClusterNetworkName>" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name) $IPResourceName = "<IPResourceName>" # the IP Address resource name $CloudServiceIP = "<X.X.X.X>" # Public Virtual IP (VIP) address of your cloud service Import-Module FailoverClusters # If you are using Windows Server 2012 or higher, use the Get-Cluster Resource command. If you are using Windows Server 2008 R2, use the cluster res command. Both commands are commented out. Choose the one applicable to your environment and remove the # at the beginning of the line to convert the comment to an executable line of code. # Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$CloudServiceIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"OverrideAddressMatch"=1;"EnableDhcp"=0} # cluster res $IPResourceName /priv enabledhcp=0 overrideaddressmatch=1 address=$CloudServiceIP probeport=59999 subnetmask=255.255.255.255
Jakmile nastavíte proměnné, otevřete okno Windows PowerShellu se zvýšenými oprávněními a zkopírujte skript z textového editoru a vložte ho do relace Azure PowerShellu a spusťte ho. Pokud se výzva stále zobrazuje >>, zadejte enter znovu a ujistěte se, že se skript spustí.
Tento postup opakujte na každém virtuálním počítači. Tento skript nakonfiguruje adresní prostředek IP s IP adresou cloudové služby a také 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í vytvořeného dříve v tomto kurzu.
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 názvu naslouchacího procesu (nikoli na název prostředků 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.
Otestovat naslouchací prvek 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í.
Otestování posluchače dostupnostní skupiny (přes internet)
Pokud chcete získat přístup k naslouchači mimo virtuální síť, musíte používat externí nebo veřejné vyrovnávání zatížení (popsané v tomto tématu) místo ILB, které je přístupné pouze ve stejné virtuální síti. V připojovacím řetězci zadáte název cloudové služby. Pokud byste například měli cloudovou službu s názvem mycloudservice, příkaz sqlcmd by byl následující:
sqlcmd -S "mycloudservice.cloudapp.net,<EndpointPort>" -d "<DatabaseName>" -U "<LoginId>" -P "<Password>" -Q "select @@servername, db_name()" -l 15
Na rozdíl od předchozího příkladu je nutné použít ověřování SQL, protože volající nemůže používat ověřování systému Windows přes internet. Další informace najdete v tématu Skupiny dostupnosti AlwaysOn na virtuálním počítači Azure: Scénáře připojení klientů. Při použití ověřování SQL se ujistěte, že na obou replikách vytvoříte stejné přihlášení. Další informace o řešení potíží s přihlášeními pomocí skupin dostupnosti najdete v tématu , jak mapovat přihlášení nebo použít integrovaného uživatele SQL databáze k připojení k jiným replikám a mapování na dostupnost databází.
Pokud jsou repliky AlwaysOn v různých podsítích, musí klienti v připojovacím řetězci zadat MultisubnetFailover=True. Výsledkem je paralelní pokus o připojení k replikám v různých podsítích. Všimněte si, že tento scénář zahrnuje nasazení skupiny dostupnosti AlwaysOn napříč oblastmi.
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.