Listener

關於天藍色(IaaS)的內部和外部負載均衡器偵聽器有什麼區別

  • March 29, 2016

根據下面的 MSDN 部落格,我看到有 2 種方法可以創建負載均衡器偵聽器。

https://azure.microsoft.com/en-gb/documentation/articles/virtual-machines-windows-classic-ps-sql-int-listener/

但我沒有找到需要使用它們的確切場景?我希望外部應用程序連接到我的高度可用的 SQL 伺服器(AlwaysOn)。我應該配置哪個負載均衡器?

文章在這裡http://clusteringformeremortals.com/2015/01/01/step-by-step-how-to-configure-a-sql-server-failover-cluster-instance-fci-in-microsoft-azure-iaas- sqlserver-azure-sanless/ 說,

配置集群後,您將需要創建用於所有客戶端訪問的內部負載均衡器 (ILB)。連接到 SQL Server 的客戶端將需要連接到 ILB,而不是直接連接到群集 IP 地址。如果您此時嘗試直接連接到集群,您會看到無法從任何遠端系統連接到集群。此時甚至 SQL Server Management Studio 也無法直接連接到集群

更新如何配置它

我正在使用下面的腳本來創建內部負載均衡器並且它成功了。

      // Define variables
      $ServiceName = "XYZ"
      $AGNodes = "ABC01","ABC02"
      $SubnetName = "MYSUBNETNAME" 
      $ILBStaticIP = "10.249.XXX.XXX"
      $ILBName = "AGListenerLB" 

      // Create the ILB
      Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ILBName -SubnetName $SubnetName -ServiceName $ServiceName -StaticVNetIPAddress $ILBStaticIP

      // Configure a load balanced endpoint for each node in $AGNodes 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
      }

一旦上面的腳本成功,那麼我們需要執行下面的腳本

  # Define variables
  $ClusterNetworkName = "Cluster Network 1" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)
  $IPResourceName = "DEVAG_10.249.XXX.XXX" # the IP Address resource name
  $ILBIP = “10.249.XXX.XXX” # the IP Address of the Internal Load Balancer (ILB)

    Import-Module FailoverClusters

如果您使用的是 Windows Server 2012 或更高版本,請使用 Get-Cluster Resource 命令。如果您使用的是 Windows Server 2008 R2,請使用 cluster res 命令。這兩個命令都被註釋掉了。選擇適用於您的環境的選項並刪除行首的 # 以將註釋轉換為可執行的程式碼行。

    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    # cluster res $IPResourceName /priv enabledhcp=0 address=$ILBIP probeport=59999  subnetmask=255.255.255.255

外部 - 使用託管虛擬機的雲服務的公共虛擬 IP 地址。當您需要從虛擬網路外部(包括網際網路)訪問偵聽器時使用,即面向公眾

內部 - 使用內部負載平衡 (ILB) 和偵聽器的專用地址。當您僅從同一虛擬網路中訪問偵聽器時使用。這包括混合場景中的站點到站點 VPN,即不面向公眾

引用自:https://dba.stackexchange.com/questions/133616