Konfigurace externího naslouchacího procesu pro skupiny dostupnosti na virtuálních počítačích serveru Azure SQL
Toto téma ukazuje, jak nakonfigurovat naslouchací proces pro skupinu dostupnosti AlwaysOn, která je externě přístupná na internetu. To je možné přidružením veřejné virtuální IP adresy (VIP) cloudové služby k naslouchacímu procesu.
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 byl ve většině nových nasazení použit model Resource Manager.
Vaše skupina dostupnosti může obsahovat repliky, které jsou pouze místní, pouze Azure nebo zahrnuje místní i Azure pro hybridní konfigurace. Repliky Azure se můžou nacházet ve stejné oblasti nebo napříč několika oblastmi pomocí několika virtuálních sítí. Následující postup předpokládá, že jste už nakonfigurovali skupinu dostupnosti, ale nenakonfigurovali naslouchací proces.
Pokyny a omezení pro externí naslouchací procesy
Při nasazování pomocí veřejné IP adresy cloudové služby si všimněte následujících pokynů k naslouchacímu procesu skupiny dostupnosti v Azure:
- Naslouchací proces skupiny dostupnosti je podporovaný 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é vrácení serveru s klientem a serverem ve stejné cloudové službě.
- Ve výchozím nastavení postup v tomto článku ukazuje, jak nakonfigurovat jeden naslouchací proces 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 IP adres. Díky tomu můžete pomocí kroků v tomto článku vytvořit více naslouchacích procesů, které jsou spojené s jinou VIRTUÁLNÍ IP sadou. Informace o tom, jak vytvořit více IP adres, najdete v tématu Více IP adres na cloudovou službu.
- Pokud vytváříte naslouchací proces pro hybridní prostředí, musí mít místní síť připojení k veřejnému internetu kromě sítě VPN typu site-to-site s virtuální sítí Azure. V podsíti Azure je naslouchací proces skupiny dostupnosti dostupný jenom veřejnou IP adresou příslušné cloudové služby.
- Nepodporuje se vytvoření externího naslouchacího procesu ve stejné cloudové službě, kde máte také interní naslouchací proces pomocí interního Load Balancer (interního nástroje pro vyrovnávání zatížení).
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á externí vyrovnávání zatížení. Pokud chcete, aby naslouchací proces, který je privátní pro vaši virtuální síť, přečtěte si verzi tohoto článku, která obsahuje postup nastavení naslouchacího procesu s interním nástrojem pro vyrovnávání zatížení.
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
Externí vyrovnávání zatížení používá virtuální 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.
V 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ý z virtuálních 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 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.
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). 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 Azure PowerShell relace a spusťte ho. Pokud se výzva stále zobrazuje >>, zadejte enter znovu, abyste se ujistili, ž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.
Na virtuálních počítačích, které hostují repliky, spusťte bránu Windows Firewall s pokročilým zabezpečením.
Klepněte pravým tlačítkem myši na příchozí pravidla a klepněte na tlačítko Nové pravidlo.
Na stránce Typ pravidla vyberte port a potom klepněte na tlačítko Další.
Na stránce Protokol a porty vyberte TCP, zadejte 59999 do pole Specifické místní porty a klepněte na tlačítko Další.
Na stránce Akce ponechte vybranou možnost Povolit připojení a klepněte na tlačítko Další.
Na stránce Profil přijměte výchozí nastavení a klepněte na tlačítko Další.
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.
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 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 SQL Server Management Studio.
Otevřete Správce clusteru s podporou převzetí služeb při selhání z uzlu, který je hostitelem primární repliky.
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.
Rozbalte název clusteru a klikněte na Role.
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>.
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.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.
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
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 zobrazenou pod veřejnou virtuální IP adresou (VIP). Pokud vaše řešení zahrnuje 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ásledující 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 se zvýšenými oprávněními Windows PowerShell a zkopírujte skript z textového editoru a vložte ho do relace Azure PowerShell a spusťte ho. Pokud se výzva stále zobrazuje >>, zadejte enter znovu, abyste se ujistili, že se skript spustí.
Tento postup opakujte na každém virtuálním počítači. 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í vytvořeného dříve v tomto kurzu.
Přenést naslouchací proces online
Ve Správci clusteru s podporou převzetí služeb při selhání rozbalte role a zvýrazněte skupinu dostupnosti.
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.
Klikněte na kartu Závislosti . Pokud je uvedeno více prostředků, ověřte, že IP adresy mají NEBO, nikoli AND, závislosti.
Klikněte na OK.
Klikněte pravým tlačítkem myši na název naslouchacího procesu a potom klikněte na Přenést online.
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.
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.
Spusťte SQL Server Management Studio a pak se připojte k primární replice.
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í.Klikněte pravým tlačítkem myši na název naslouchacího procesu a potom klikněte na příkaz Vlastnosti.
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í.
Testování naslouchacího procesu skupiny dostupnosti (přes internet)
Abyste mohli přistupovat k naslouchacímu procesu mimo virtuální síť, musíte místo interního nástroje pro vyrovnávání zatížení používat externí/veřejné vyrovnávání zatížení (popsané v tomto tématu), což je přístupné jenom 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 musí být použito 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 Skupina 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 Mapování přihlášení nebo použití uživatele databáze SQL s omezením pro připojení k jiným replikám a mapování na databáze dostupnosti.
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í replik 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í 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.