SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Multiple VIPs for internal Load Balancer GA !!

leave a comment

我らが ブチザッキ兄さんCloud Platform Release Announcements for September 26, 2016 を見つけられ、その中に、

Multiple VIPs for internal Load Balancer | GA

 

という記述がありました。

Preview していたのかも気づかなかったのですが、私的にはいきなり GA でしたw

このリリースは、SQL Server on Azure VM のシナリオにも影響してきます。

Multiple VIPs for internal Load Balancer | GA

Azure Multiple VIP support for Azure internal Load Balancer is now generally available.

Multiple VIP support for Azure internal Load Balancer deployed via Azure Resource Manager allows customers to deploy more efficient, more scalable environments. ? frontend port reuse across the multiple VIPs ? option for DSR (“FloatingIP”) allows for backend port reuse SQL AlwaysOn Multiple Listener scenario documentation is available and released as Preview. The AzureCAT team is supporting SAP Multi-SID scenario. Multi-SID configuration enables consolidation of multiple SAP instances into two cluster nodes.

This cuts down the number of operating system images, server or VMs you have to manage.

ILB に対して、複数の仮想 IP を設定できるようになったことで、DSR を使用した、複数の AlwaysOn のリスナーに対応できるようになりました。

https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#azure-resource-manager-virtual-networking-limits によると、ILB で 30 の IP を設定できるようになったようですね。
# Public のロードバランサーに対しても複数 IP 設定できるようですが。

image

 

内容については、Multiple VIPs for Azure Load Balancer に記載されています。
設定については、ポータルでも対応しており、Frontend IP Pool として、LB に対して複数の IP が設定できるようになっています。
image

この投稿を書いている時点では、ポータルの負荷分散規則の作成は、フロントエンドプールに対応していないようで、ルールの作成自体は PowerShell で実施する必要があるようでした。

設定の方法については Configure one or more Always On Availability Group Listeners – Resource Manger に記載されていますが、LoadBalancerFrontEnd / 2 という、LB の IP に対して、ルールを設定する場合、以下のようなコマンドとなるようです。
各ルールの ProbePort を同じにしてしまっていますが、実際は、リスナーごとに異なる ProbePort を設定する必要があるはずです。
# リスナー #1 : 59990 / リスナー #2 : 59991 をクラスターのリスナーのリソースに ProbePort として設定するイメージになるかと。

Add-AzureRmAccount
$subscription | Select-AzureRmSubscription
$res = "<リソースグループ>"
$ILB = Get-AzureRmLoadBalancer -ResourceGroupName $res -Name <lb 名>
$BEConfig = $ILB| Get-AzureRmLoadBalancerBackendAddressPoolConfig
$SQLHealthProbe = $ILB | Get-AzureRmLoadBalancerProbeConfig
$LBConfig = $ILB | Get-AzureRmLoadBalancerFrontendIpConfig -Name "LoadBalancerFrontEnd"
$config = $ILB | Add-AzureRmLoadBalancerRuleConfig -Name "AlwaysOn-Rule" -FrontendIpConfiguration $LBConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort 1433 -BackendPort 1433 -EnableFloatingIP
$LBConfig = $ILB | Get-AzureRmLoadBalancerFrontendIpConfig -Name "LoadBalancerFrontEnd2"
$config = $ILB | Add-AzureRmLoadBalancerRuleConfig -Name "AlwaysOn-Rule2" -FrontendIpConfiguration $LBConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort 1433 -BackendPort 1433 -EnableFloatingIP
$config | Set-AzureRmLoadBalancer

 

LB 側の設定までしか試せていないのですが、各仮想 IP をインスタンス側のリスナーの IP として設定することで、異なる IP でループバックアドレスが複数設定できるようになり、複数リスナーに対応できるかと。

実際の AlwaysOn の動作確認は眠いので別途実施で…。

Share

Written by Masayuki.Ozawa

9月 27th, 2016 at 12:27 am

Leave a Reply