Windows Server 2008 R2 中的网络负载平衡 (NLB) 功能可以增强 Internet 服务器应用程序 [如在 Web、FTP、防火墙、代理、虚拟专用网络 (VPN) 以及其他执行关键任务的服务器上使用的应用程序] 的可用性和可伸缩性。运行 Windows Server 2008 R2 的单个计算机提供有限的服务器可靠性和可伸缩性能。但是,通过将运行 Windows Server 2008 R2 的其中一个产品的两台或多台计算机的资源组合到单个虚拟群集中,NLB 便可以提供 Web 服务器和其他执行关键任务服务器所需的可靠性和性能。
上图描述了两个连接的网络负载平衡群集。第一个群集由两个主机组成,第二个群集由四个主机组成。这是如何使用 NLB 的一个示例。
每个主机都运行所需的服务器应用程序(如用于 Web、FTP 和 Telnet 服务器的应用程序)的单个副本。NLB 在群集的多个主机中分发传入的客户端请求。可以根据需要配置每个主机处理的负载权重。还可以向群集中动态地添加主机,以处理增加的负载。此外,NLB 还可以将所有流量引导至指定的单个主机,该主机称为默认主机。
NLB 允许使用相同的群集 IP 地址集指定群集中所有计算机的地址,并且它还为每个主机保留一组唯一专用的 IP 地址。对于负载平衡的应用程序,当主机出现故障或者脱机时,会自动在仍然运行的计算机之间重新分发负载。当计算机意外出现故障或者脱机时,将断开与出现故障或脱机的服务器之间的活动连接。但是,如果您有意关闭主机,则可以在使计算机脱机之前,使用 drainstop 命令处理所有活动的连接。任何一种情况下,都可以在准备好时将脱机计算机明确地重新加入群集,并重新共享群集负载,以便使群集中的其他计算机处理更少的流量。
NLB 群集中的主机会交换检测消息以保持有关群集成员身份的数据的一致性。默认情况下,当主机在五秒之内未能发送检测消息时,该主机便出现了故障。当主机出现故障时,群集中的剩余主机将聚合在一起并执行以下操作:
-
确定哪些主机仍然是群集中的活动成员。
-
选择优先级最高的主机作为新的默认主机。
-
确保所有新的客户端请求都由仍然活动的主机进行处理。
在聚合期间,仍然活动的主机会查找一致的检测信号。如果无法发送检测信号的主机开始提供一致的检测信号,则它会在聚合过程中重新加入群集。当新的主机尝试加入群集时,它会发送检测消息,该消息也会触发聚合。当所有群集主机对当前的群集成员身份达成一致之后,会向剩余主机重新分发客户端负载,并完成聚合。
通常聚合只需几秒钟,因此由群集中断的客户端服务是非常少的。在聚合期间,仍然活动的主机会继续处理客户端请求,而不会影响现有连接。如果所有主机在几个检测期间报告的群集成员身份和分发映射都一致,则聚合结束。
NLB 中有什么新增功能?
对于 Windows Server 2008 R2,NLB 包括以下改进:
- 扩展的相关性。“扩展”选项可在 NLB 群集的配置发生更改时保持客户端的相关性。通过该选项,即使在客户端与主机之间没有任何活动的现有连接的情况下,客户端仍能够保持与群集主机的相关性。
- 用于 NLB 群集的 Windows PowerShell。Windows PowerShell 是一种新的命令行界面和脚本语言。Windows PowerShell 可加速实现系统管理任务的自动化。可以使用 Windows PowerShell 管理 NLB 群集。有关将 Windows PowerShell 用于 NLB 群集的详细信息,请参阅
https://go.microsoft.com/fwlink/?LinkId=140180 (可能为英文网页)。 -
支持滚动升级。NLB 支持从 Windows Server 2003 到 Windows Server 2008 R2 以及从 Windows Server 2008 到 Windows Server 2008 R2 的滚动升级。有关 NLB 的部署信息(包括有关滚动升级的信息),请参阅
https://go.microsoft.com/fwlink/?LinkId=87253 。
NLB 配置
NLB 作为 Windows 网络驱动程序运行。它的操作对于 TCP/IP 网络堆栈是透明的。
上图显示了在 NLB 主机的典型配置中,NLB 和其他软件组件之间的关系。
网络负载平衡的功能
NLB 包括以下功能:
可伸缩性
可伸缩性是度量计算机、服务或应用程序如何更好地改进以满足持续增长的性能需求的标准。对于 NLB 群集而言,可伸缩性是指当群集的全部负载超过其能力时逐步将一个或多个系统添加到现有群集中的功能。为支持可伸缩性,NLB 可执行以下操作:
-
平衡 NLB 群集上对各个 TCP/IP 服务的负载请求。
-
在一个群集中最多支持 32 台计算机。
-
平衡群集中多个主机之间的多个服务器负载请求(来自同一个客户端或来自几个客户端)。
-
在负载增加时,支持在不关闭群集的情况下向 NLB 群集中添加主机。
-
在负载降低时,支持从群集中删除主机。
-
通过全部实现管道化提高性能并降低开销。管道允许向 NLB 群集发送请求,而无需等待响应上一个发送的请求。
高可用性
通过最大程度地减少停机时间,高可用系统能够可靠地提供可接受级别的服务。为提供高可用性,NLB 包括一些内置功能,这些功能可自动执行以下操作:
-
检测发生故障或脱机的群集主机并对其进行恢复。
-
在添加或删除主机时平衡网络负载。
-
在十秒之内恢复并重新分发负载。
可管理性
NLB 提供以下可管理性功能:
-
使用 NLB 管理器,可以从单个计算机管理和配置多个 NLB 群集和群集主机。
-
使用端口管理规则,可以为单个 IP 端口或一组端口指定负载平衡行为。
-
可以为每个网站定义不同的端口规则。如果您对多个应用程序或网站使用相同的一组负载平衡服务器,则端口规则基于目标虚拟 IP 地址(使用虚拟群集)。
-
使用可选的单主机规则,可以将所有客户端请求引导至单个主机。NLB 将客户端请求路由到运行特定应用程序的特定主机。
-
可以阻止对某些 IP 端口进行不需要的网络访问。
-
可以在群集主机上启用 Internet 组管理协议 (IGMP) 支持,以控制交换机广播(在多播模式中操作时)。
-
使用 shell 命令或脚本,可以从运行 Windows 的任何联网计算机上远程启动、停止和控制 NLB 操作。
-
可以查看 Windows 事件日志以检查 NLB 事件。NLB 在事件日志中记录所有操作和群集更改。
易用性
NLB 提供了许多便于使用的功能:
-
可以将 NLB 作为标准的 Windows 网络连接驱动程序组件进行安装。
-
NLB 不需要更改任何硬件即可启用和运行。
-
使用 NLB 管理器可以新建 NLB 群集。
-
使用 NLB 管理器,可以从一台远程或本地计算机上配置和管理多个群集以及群集的所有主机。
-
NLB 允许客户端使用单个逻辑 Internet 名称和虚拟 IP 地址(称为群集 IP 地址,它保留每台计算机的各个名称)访问群集。NLB 允许多宿主服务器具有多个虚拟 IP 地址。
注意 如果是虚拟群集,则不需要服务器是多宿主服务器即可具有多个虚拟 IP 地址。
-
可以将 NLB 绑定到多个网络适配器,这样您便可以在每个主机上配置多个独立的群集。支持多个网络适配器与虚拟群集不同,因为虚拟群集允许您在单个网络适配器上配置多个群集。
-
不需要修改服务器应用程序即可在 NLB 群集中运行。
-
如果群集主机出现故障并且后来又恢复联机,则可以将 NLB 配置为自动将该主机添加到群集。之后,添加的主机将能够开始处理来自客户端的新的服务器请求。
-
可以在不打扰其他主机上群集操作的情况下使计算机脱机进行预防性的维护。