Narayan Annamalai 网络高级项目经理
自 2013 年 8 月起,Azure 基础结构服务开始 支持 SQL ServerAlwaysOn 可用性组。Azure 服务的内部负载平衡 (ILB) 于 2014 年 5 月发布预览版,并于 7 月 正式发布 。今天,我们很高兴可以把这两项技术结合起来;SQLServer AlwaysOn 可用性组现在可以与 ILB 一起运行。可用性组是 SQL Server 在高可用性和灾难恢复方面的旗舰解决方案。无论配置中有多少个副本,利用可用性组侦听器,客户端应用程序便可以无缝连接到主副本。
侦听器 (DNS) 名称被映射到负载平衡的 IP 地址,Azure 的负载平衡器将入站流量仅定向到副本集中的主服务器。到目前为止,此负载平衡的IP 地址必须是可以从 Internet 访问的公用 IP 地址。如果希望限制仅有受信任的客户端可以访问侦听器,您需要使用端点访问控制列表 (ACL)。但在某些情况下,随着时间的推移,维护 ACL 可能会很麻烦。
为了在此方面提供有力帮助,Azure 现在宣布 ILB 支持SQL Server AlwaysOn(侦听器)端点。现在,您可以控制侦听器的可访问性,并且可以从虚拟网络(VNet) 的特定子网中选择负载平衡的 IP 地址。通过在侦听器上使用 ILB,SQL Server 端点(例如:Server=tcp: ListenerName ,1433;Database= DatabaseName )仅允许以下客户端访问:
· 同一虚拟网络中的服务和VM
· 已连接的 内部部署网络中的服务和VM
· 互相连接的 VNet 中的服务和 VM
内部负载平衡器仍不能在 Azure 门户中提供,需通过如下所示的 PowerShell 脚本进行配置:
*在下面的示例中,将使用包含子网“Subnet-1”的虚拟网络
# 向服务添加内部负载平衡器 |
Add-AzureInternalLoadBalancer -InternalLoadBalancerName ILB_SQL_AO-SubnetName Subnet-1 -ServiceName SqlSvc |
# 在每个 VM 上为 ILB 添加负载平衡端点 |
Get-AzureVM -ServiceName SqlSvc -Name sqlsvc1 | Add-AzureEndpoint -Name"LisEUep" -LBSetName "ILBSet1" -Protocol tcp -LocalPort1433 -PublicPort 1433 -ProbePort 59999 -ProbeProtocol tcp-ProbeIntervalInSeconds 10 –DirectServerReturn $true -InternalLoadBalancerNameILB_SQL_AO | Update-AzureVM |
Get-AzureVM -ServiceName SqlSvc -Name sqlsvc2 | Add-AzureEndpoint -Name"LisEUep" -LBSetName "ILBSet1" -Protocol tcp -LocalPort1433 -PublicPort 1433 -ProbePort 59999 -ProbeProtocol tcp-ProbeIntervalInSeconds 10 –DirectServerReturn $true -InternalLoadBalancerNameILB_SQL_AO | Update-AzureVM |
有关 ILB 的更多信息,请参考 MSDN 文档 或关于此主题的早期 博客文章 。
如果你有任何疑问, 欢迎访问 MSDN 社区,由专家来为您解答 Windows Azure各种技术问题,或者拨打世纪互联客户服务热线 400-089-0365/010-84563652咨询各类服务信息。
本文翻译自: http://azure.microsoft.com/blog/2014/10/01/sql-server-alwayson-and-ilb/