Compartilhar via


SQL Server AlwaysOn 和 ILB

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咨询各类服务信息。 

本文翻译自:https://azure.microsoft.com/blog/2014/10/01/sql-server-alwayson-and-ilb/