ILB-figyelő konfigurálása rendelkezésre állási csoportokhoz Azure SQL Server rendszerű virtuális gépeken
Áttekintés
Fontos
Az Azure két különböző üzembe helyezési modellel rendelkezik az erőforrások létrehozásához és kezeléséhez: az Azure Resource Manager és a klasszikus. Ez a cikk a klasszikus üzemi modell használatát ismerteti. Javasoljuk, hogy a legtöbb új üzembe helyezés a Resource Manager modellt használja.
Ha figyelőt szeretne konfigurálni egy Always On rendelkezésre állási csoporthoz a Resource Manager modellben, tekintse meg a terheléselosztó Azure-beli Always On rendelkezésre állási csoporthoz való konfigurálását.
A rendelkezésre állási csoport tartalmazhat olyan replikákat, amelyek csak a helyszínen vagy csak az Azure-ban találhatók, vagy amelyek a helyszíni és az Azure-ra is kiterjednek a hibrid konfigurációkhoz. Az Azure-replikák ugyanabban a régióban vagy több olyan régióban is lehetnek, amelyek több virtuális hálózatot használnak. A cikkben ismertetett eljárások feltételezik, hogy már konfigurált egy rendelkezésre állási csoportot , de még nem konfigurált figyelőt.
Belső figyelőkre vonatkozó irányelvek és korlátozások
A belső terheléselosztó (ILB) azure-beli rendelkezésre állásicsoport-figyelővel való használatára az alábbi irányelvek vonatkoznak:
- A rendelkezésre állási csoport figyelője Windows Server 2008 R2, Windows Server 2012 és Windows Server 2012 R2 rendszeren támogatott.
- Minden felhőszolgáltatáshoz csak egy belső rendelkezésreállási csoport figyelője támogatott, mivel a figyelő az ILB-hez van konfigurálva, és minden felhőszolgáltatáshoz csak egy ILB tartozik. Azonban több külső figyelő is létrehozható. További információ: Külső figyelő konfigurálása Always On rendelkezésre állási csoportokhoz az Azure-ban.
A figyelő akadálymentességének meghatározása
Fontos tisztában van azzal, hogy a rendelkezésre állási csoport figyelőjének konfigurálásának két módja van az Azure-ban. A módszerek eltérnek a figyelő létrehozásakor használt Azure-terheléselosztó típusától. Az alábbi táblázat a különbségeket ismerteti:
Terheléselosztó típusa | Implementálás | A következő esetekben használja: |
---|---|---|
Külső | A virtuális gépeket (VM-eket) üzemeltető felhőszolgáltatás nyilvános virtuális IP-címét használja. | A figyelőt a virtuális hálózaton kívülről kell elérnie, beleértve az internetről is. |
Belső | Belső terheléselosztót használ a figyelő privát címével. | A figyelőt csak ugyanabból a virtuális hálózatból érheti el. Ez a hozzáférés a helyek közötti VPN-t is magában foglalja hibrid forgatókönyvekben. |
Fontos
A felhőszolgáltatás nyilvános VIRTUÁLIS IP-címét (külső terheléselosztót) használó figyelők esetében, amíg az ügyfél, a figyelő és az adatbázisok ugyanabban az Azure-régióban vannak, nem kell kimenő forgalmat fizetnie. Ellenkező esetben a figyelőn keresztül visszaadott adatok kimenő forgalomnak minősülnek, és a díjakat a normál adatátviteli díjszabás szerint számítjuk fel.
Az ILB csak regionális hatókörű virtuális hálózatokon konfigurálható. Az affinitási csoporthoz konfigurált meglévő virtuális hálózatok nem használhatnak ILB-t. További információ: Belső terheléselosztó áttekintése.
Ez a cikk egy ILB-t használó figyelő létrehozásával foglalkozik. Ha nyilvános vagy külső figyelőre van szüksége, tekintse meg a cikk külső figyelő beállítását ismertető verzióját.
Elosztott terhelésű virtuálisgép-végpontok létrehozása közvetlen kiszolgálóvisszavétellel
Először hozzon létre egy ILB-t a szakasz későbbi részében található szkript futtatásával.
Hozzon létre egy elosztott terhelésű végpontot minden olyan virtuális géphez, amely Egy Azure-replikát üzemeltet. Ha több régióban rendelkezik replikákkal, az adott régió minden replikájának ugyanabban a felhőszolgáltatásban kell lennie ugyanabban az Azure-beli virtuális hálózatban. Több Azure-régióra kiterjedő rendelkezésre állásicsoport-replikák létrehozásához több virtuális hálózat konfigurálására van szükség. A virtuális hálózatok közötti kapcsolat konfigurálásáról további információt a Virtuális hálózat konfigurálása virtuális hálózati kapcsolathoz című témakörben talál.
A részletek megtekintéséhez lépjen a Azure Portal minden olyan virtuális gépre, amely replikát üzemeltet.
Kattintson az egyes virtuális gépek Végpontok lapjára.
Ellenőrizze, hogy a használni kívánt figyelővégpont neve és nyilvános portja még nincs-e használatban. Az ebben a szakaszban szereplő példában a név MyEndpoint, a port pedig 1433.
Töltse le és telepítse a legújabb PowerShell-modult a helyi ügyfélen.
Indítsa el Azure PowerShell.
Megnyílik egy új PowerShell-munkamenet az Azure felügyeleti moduljainak betöltésével.Futtassa az
Get-AzurePublishSettingsFile
parancsot. Ez a parancsmag egy böngészőbe irányítja, hogy letöltsön egy közzétételi beállításfájlt egy helyi könyvtárba. Előfordulhat, hogy a rendszer kérni fogja az Azure-előfizetéséhez tartozó bejelentkezési hitelesítő adatait.Futtassa a következő
Import-AzurePublishSettingsFile
parancsot a letöltött közzétételi beállítások fájljának elérési útjával:Import-AzurePublishSettingsFile -PublishSettingsFile <PublishSettingsFilePath>
A közzétételi beállítások fájljának importálása után a PowerShell-munkamenetben kezelheti az Azure-előfizetését.
ILB esetén rendeljen hozzá egy statikus IP-címet. Vizsgálja meg az aktuális virtuális hálózati konfigurációt a következő parancs futtatásával:
(Get-AzureVNetConfig).XMLConfiguration
Jegyezze fel annak az alhálózatnak az alhálózatát , amely a replikákat üzemeltető virtuális gépeket tartalmazza. Ezt a nevet használja a szkript $SubnetName paramétere.
Jegyezze fel a VirtualNetworkSite nevét és a replikákat üzemeltető virtuális gépeket tartalmazó alhálózat kezdő AddressPrefix nevét . Keressen egy elérhető IP-címet úgy, hogy mindkét értéket átadja a
Test-AzureStaticVNetIP
parancsnak, és megvizsgálja az AvailableAddresses címet. Ha például a virtuális hálózat neve MyVNet , és alhálózati címtartománya 172.16.0.128-kor kezdődik, a következő parancs listázná az elérhető címeket:(Test-AzureStaticVNetIP -VNetName "MyVNet"-IPAddress 172.16.0.128).AvailableAddresses
Válassza ki az elérhető címek egyikét, és használja azt a szkript $ILBStaticIP paraméterében a következő lépésben.
Másolja a következő PowerShell-szkriptet egy szövegszerkesztőbe, és állítsa be a változóértékeket a környezetének megfelelően. Egyes paraméterekhez alapértelmezett beállításokat adtunk meg.
Az affinitáscsoportokat használó meglévő üzemelő példányok nem adhatnak hozzá ILB-t. Az ILB-követelményekkel kapcsolatos további információkért lásd a belső terheléselosztó áttekintését.
Ha a rendelkezésre állási csoport az Azure-régiókra is kiterjed, a szkriptet egyszer kell futtatnia a felhőszolgáltatás minden adatközpontjában és az adatközpontban található csomópontokon.
# 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 }
A változók beállítása után másolja a szkriptet a szövegszerkesztőből a PowerShell-munkamenetbe a futtatásához. Ha a parancssor továbbra is megjelenik >>, nyomja le ismét az Enter billentyűt, hogy a szkript elinduljon.
Ellenőrizze, hogy a KB2854082 telepítve van-e, ha szükséges
Ezután, ha a fürt bármelyik kiszolgálója Windows Server 2008 R2 vagy Windows Server 2012 rendszert futtat, ellenőriznie kell, hogy a KB2854082 gyorsjavítás telepítve van-e a fürt részét képező összes helyszíni kiszolgálóra vagy Azure-beli virtuális gépre. A fürtben található, de a rendelkezésre állási csoportban nem szereplő kiszolgálókon vagy virtuális gépeken is telepítve kell lennie ennek a gyorsjavításnak.
Az egyes fürtcsomópontok távoli asztali munkamenetében töltse le a KB2854082 fájlt egy helyi könyvtárba. Ezután telepítse a gyorsjavítást az egyes fürtcsomópontokon egymás után. Ha a fürtszolgáltatás jelenleg a fürtcsomóponton fut, a kiszolgáló a gyorsjavítás telepítésének végén újraindul.
Figyelmeztetés
A fürtszolgáltatás leállítása vagy a kiszolgáló újraindítása hatással van a fürt és a rendelkezésre állási csoport kvórumállapotára, és előfordulhat, hogy a fürt offline állapotba kerül. A fürt magas rendelkezésre állásának fenntartása a telepítés során:
- A fürt optimális kvórumállapotban van.
- Mielőtt bármilyen csomópontra telepítené a gyorsjavítást, az összes fürtcsomópont online állapotban van.
- Mielőtt telepítené a gyorsjavítást a fürt bármely más csomópontján, engedélyezze, hogy a gyorsjavítás telepítése befejeződjön az egyik csomóponton, beleértve a kiszolgáló teljes újraindítását is.
A tűzfalportok megnyitása a rendelkezésre állási csoport csomópontjaiban
Ebben a lépésben létrehoz egy tűzfalszabályt az elosztott terhelésű végpont mintavételi portjának megnyitásához (59999, a korábban megadottak szerint), valamint egy másik szabályt a rendelkezésre állási csoport figyelőportjának megnyitásához. Mivel a rendelkezésre állási csoport replikáit tartalmazó virtuális gépeken létrehozta az elosztott terhelésű végpontot, meg kell nyitnia a mintavételi portot és a figyelőportot a megfelelő virtuális gépeken.
A replikákat üzemeltető virtuális gépeken indítsa el a Fokozott biztonságú Windows tűzfalat.
Kattintson a jobb gombbal a Bejövő szabályok elemre, majd kattintson az Új szabály parancsra.
A Szabály típusa lapon válassza a Port lehetőséget, majd kattintson a Tovább gombra.
A Protokoll és portok lapon válassza a TCP lehetőséget, írja be az 59999-et az Adott helyi portok mezőbe, majd kattintson a Tovább gombra.
A Művelet lapon hagyja bejelölve a Kapcsolat engedélyezése lehetőséget, majd kattintson a Tovább gombra.
A Profil lapon fogadja el az alapértelmezett beállításokat, majd kattintson a Tovább gombra.
A Név lap Név szövegmezőjében adjon meg egy szabálynevet( például Always On figyelő mintavételi port), majd kattintson a Befejezés gombra.
Ismételje meg az előző lépéseket a rendelkezésre állási csoport figyelőportjához (a szkript $EndpointPort paraméterében korábban megadottak szerint), majd adjon meg egy megfelelő szabálynevet, például az Always On figyelőportot.
A rendelkezésre állási csoport figyelőjének létrehozása
A rendelkezésre állási csoport figyelőjének létrehozása két lépésben. Először hozza létre az ügyfél-hozzáférési pont fürterőforrását, és konfigurálja a függőségeket. Másodszor konfigurálja a fürterőforrásokat a PowerShellben.
Az ügyfél-hozzáférési pont létrehozása és a fürtfüggőségek konfigurálása
Ebben a lépésben manuálisan hozza létre a rendelkezésre állási csoport figyelőjét a Feladatátvevőfürt-kezelőben és SQL Server Management Studio.
Nyissa meg a Feladatátvevőfürt-kezelőt az elsődleges replikát futtató csomópontról.
Válassza ki a Hálózatok csomópontot, majd jegyezze fel a fürthálózat nevét. Ezt a nevet a PowerShell-szkript $ClusterNetworkName változója használja.
Bontsa ki a fürt nevét, majd kattintson a Szerepkörök elemre.
A Szerepkörök panelen kattintson a jobb gombbal a rendelkezésre állási csoport nevére, majd válassza az Erőforrás-ügyfél>hozzáférési pontjának hozzáadása parancsot.
A Név mezőben hozzon létre egy nevet az új figyelőnek, kattintson kétszer a Tovább gombra, majd a Befejezés gombra.
A figyelőt vagy az erőforrást jelenleg ne kapcsolja online állapotba.Kattintson az Erőforrások fülre, majd bontsa ki az imént létrehozott ügyfél-hozzáférési pontot. Megjelenik a fürt összes fürthálózatának IP-címerőforrása. Ha ez egy csak Azure-beli megoldás, csak egy IP-címerőforrás jelenik meg.
A következő lehetőségek közül választhat:
Hibrid megoldás konfigurálása:
a. Kattintson a jobb gombbal a helyszíni alhálózatnak megfelelő IP-címerőforrásra, majd válassza a Tulajdonságok parancsot. Jegyezze fel az IP-cím és a hálózat nevét.
b. Válassza a Statikus IP-cím lehetőséget, rendeljen hozzá egy nem használt IP-címet, majd kattintson az OK gombra.
Csak Azure-beli megoldás konfigurálása:
a. Kattintson a jobb gombbal az Azure-alhálózatnak megfelelő IP-cím-erőforrásra, majd válassza a Tulajdonságok parancsot.
Megjegyzés
Ha a figyelő később a DHCP által kiválasztott ütköző IP-cím miatt nem tud online állapotba jönni, ebben a tulajdonságablakban konfigurálhat egy érvényes statikus IP-címet.
b. Ugyanebben az IP-cím tulajdonságai ablakban módosítsa az IP-cím nevét.
Ezt a nevet használja a PowerShell-szkript $IPResourceName változója. Ha a megoldás több Azure-beli virtuális hálózatra is kiterjed, ismételje meg ezt a lépést minden IP-erőforrás esetében.
A fürterőforrások konfigurálása a PowerShellben
ILB esetén a korábban létrehozott ILB IP-címét kell használnia. Ezt az IP-címet a PowerShellben a következő szkripttel szerezheti be:
# Define variables $ServiceName="<MyServiceName>" # the name of the cloud service that contains the AG nodes (Get-AzureInternalLoadBalancer -ServiceName $ServiceName).IPAddress
Az egyik virtuális gépen másolja az operációs rendszer PowerShell-parancsfájlját egy szövegszerkesztőbe, majd állítsa be a változókat a korábban feljegyzett értékekre.
Windows Server 2012 vagy újabb verzió esetén használja a következő szkriptet:
# 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}
Windows Server 2008 R2 esetén használja a következő szkriptet:
# 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
Miután beállította a változókat, nyisson meg egy emelt szintű Windows PowerShell ablakot, és illessze be a szkriptet a szövegszerkesztőből a PowerShell-munkamenetbe a futtatáshoz. Ha a parancssor továbbra is megjelenik >>, nyomja le ismét az Enter billentyűt, hogy a szkript elinduljon.
Ismételje meg az előző lépéseket minden virtuális gép esetében.
Ez a szkript konfigurálja az IP-cím erőforrást a felhőszolgáltatás IP-címével, és beállít más paramétereket, például a mintavételi portot. Amikor az IP-cím-erőforrás online állapotba kerül, a korábban létrehozott elosztott terhelésű végpontról válaszolhat a mintavételi porton végzett lekérdezésre.
A figyelő online állapotba hozása
A Feladatátvevőfürt-kezelőben bontsa ki a Szerepkörök elemet, majd jelölje ki a rendelkezésre állási csoportot.
Az Erőforrások lapon kattintson a jobb gombbal a figyelő nevére, majd kattintson a Tulajdonságok parancsra.
Kattintson a Függőségek fülre. Ha több erőforrás is szerepel a listában, ellenőrizze, hogy az IP-címek rendelkeznek-e VAGY, és nem AND függésekkel.
Kattintson az OK gombra.
Kattintson a jobb gombbal a figyelő nevére, majd kattintson az Online állapotba hozás parancsra.
Miután a figyelő online állapotba vált, az Erőforrások lapon kattintson a jobb gombbal a rendelkezésre állási csoportra, majd kattintson a Tulajdonságok parancsra.
Hozzon létre függőséget a figyelőnév-erőforráshoz (ne az IP-cím erőforrásainak nevéhez), majd kattintson az OK gombra.
Indítsa el SQL Server Management Studio, majd csatlakozzon az elsődleges replikához.
Lépjen az AlwaysOn magas rendelkezésre állású rendelkezésre állási>csoportok><availabilityGroupName>>rendelkezésre állási csoport figyelőihez.
Meg kell jelennie a Feladatátvevőfürt-kezelőben létrehozott figyelőnévnek.Kattintson a jobb gombbal a figyelő nevére, majd kattintson a Tulajdonságok parancsra.
A Port mezőben adja meg a rendelkezésre állási csoport figyelőjének portszámát a korábban használt $EndpointPort használatával (ebben az oktatóanyagban az 1433 volt az alapértelmezett), majd kattintson az OK gombra.
Elintézendő elemek
A rendelkezésre állási csoport figyelőjének létrehozása után szükség lehet a RegisterAllProvidersIP és a HostRecordTTL fürtparaméterek módosítására a figyelőerőforráshoz. Ezek a paraméterek csökkenthetik a feladatátvétel utáni újracsatlakozási időt, ami megakadályozhatja a kapcsolat időtúllépését. További információ ezekről a paraméterekről és a mintakódról: Rendelkezésre állási csoport figyelőjének létrehozása vagy konfigurálása.
A rendelkezésre állási csoport figyelőjének tesztelése (ugyanazon a virtuális hálózaton belül)
Ebben a lépésben egy ugyanazon a hálózaton futó ügyfélalkalmazással teszteli a rendelkezésre állási csoport figyelőjét.
Az ügyfélkapcsolatra a következő követelmények vonatkoznak:
- A figyelőhöz való ügyfélkapcsolatoknak olyan gépekről kell származniuk, amelyek más felhőszolgáltatásban találhatók, mint amelyik az Always On rendelkezésre állási replikákat üzemelteti.
- Ha az Always On replikák különböző alhálózatokon találhatók, az ügyfeleknek meg kell adniuk a MultisubnetFailover=True értéket a kapcsolati sztring. Ez a feltétel párhuzamos csatlakozási kísérleteket eredményez a különböző alhálózatok replikáira. Ez a forgatókönyv egy régiók közötti Always On rendelkezésre állási csoport üzembe helyezését is magában foglalja.
Az egyik példa a figyelőhöz való csatlakozás ugyanazon Azure-beli virtuális hálózat egyik virtuális gépéről (de nem egy replikát üzemeltető virtuális gépről). A teszt elvégzésének egy egyszerű módja, ha megpróbálja csatlakoztatni SQL Server Management Studio a rendelkezésre állási csoport figyelőjével. Egy másik egyszerű módszer a SQLCMD.exefuttatása, az alábbiak szerint:
sqlcmd -S "<ListenerName>,<EndpointPort>" -d "<DatabaseName>" -Q "select @@servername, db_name()" -l 15
Megjegyzés
Ha az EndpointPort értéke 1433, nem kell megadnia a hívásban. Az előző hívás azt is feltételezi, hogy az ügyfélszámítógép ugyanahhoz a tartományhoz csatlakozik, és hogy a hívó Windows-hitelesítéssel kapott engedélyeket az adatbázishoz.
A figyelő tesztelésekor győződjön meg arról, hogy feladatátvételt végzett a rendelkezésre állási csoporton, hogy az ügyfelek a feladatátvételek során kapcsolódni tudjanak a figyelőhöz.
Következő lépések
Amellett, hogy automatikusan csatlakoztatja az ügyfeleket az elsődleges replikához, a figyelővel átirányíthatók a csak olvasható számítási feladatok a másodlagos replikákra. Ez a használat javíthatja a teljes megoldás teljesítményét és méretezhetőségét. További információ: ReadIntent Routing használata az Azure Always On rendelkezésre állási csoport figyelőjével.
Megjegyzés
Az Azure-figyelőkkel kapcsolatos hibaelhárítási tippekért tekintse meg a rendelkezésre állási csoport figyelőjének hibaelhárítását az Azure-ban az AlwaysOn támogatási csapat blogjában.
A SQL Server Azure-beli használatáról további információt az Azure-beli virtuális gépek SQL Server című témakörben talál.