介绍 每个主机运行一个所需服务器程序的独立拷贝,诸如Web、FTP、Telnet或e-mail服务器程序。对于某些服务(如运行在Web服务器上的那些服务)而言,程序的一个拷贝运行在群集内所有的主机上,而网络负载均衡则将工作负载在这些主机间进行分配。对于其他服务(例如e-mail)只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其它主机。 网络负载均衡配置概述 为确保网络性能达到最优,网络负载均衡通常使用一个网络适配器来处理客户到群集的通讯量,而其它对服务器的网络通讯量则经由一个单独网络适配器。然而,第二个网络适配器是不需要的。 来自负载均衡服务器应用的数据库访问 注释 网络负载均衡如何工作 网络负载均衡通过在主机发生故障或脱机的情况下将网络通讯量重新指定给其它工作群集主机来提供高度的可用性。与脱机主机现存的连接虽然丢失,但因特网服务仍然处于可用状态。在大多数情况下(例如,就Web服务器而言),客户软件会自动重试发生故障的连接,而且,客户仅需几秒的延迟即可收到响应。 网络负载均衡通过在群集的一个或一个以上虚拟IP地址当中分配引入的网络通讯量来提供伸缩能力。群集中的主机于是对不同客户请求做出响应,即使是来自同一客户的多重请求也如是。例如,Web浏览器可能在单一Web网页内获得群集内不同主机处的多重映射。这就加速了处理过程并缩短了对客户的响应时间。 网络负载均衡使在一个子网上的全部群集主机能够为群集的主IP地址(以及多主主机上的额外IP地址)同时检测引入的网络通讯量。在每个群集主机上,网络负载均衡驱动程序充当了一个介于群集适配器驱动程序和TCP/IP栈之间的过滤器,以这种方式使主机能够收到一部分引入的网络通讯量。 网络负载均衡使用全面分布式的算法来从统计意义上将引入的客户映射到基于IP地址、端口和其它信息的群集主机上。在检查收到的数据包时,所有主机均同步执行这种映射以迅速决定哪个主机应处理该数据包。除非群集主机数量发生变化,该映射会保持不变。网络负载均衡过滤算法在数据包处理程序方面要比在集中负载均衡程序方面高效得多,而这必须修改并重发数据包。这就使网络负载均衡能够提供高得多的聚集带宽。通过直接在群集主机上运行,网络负载均衡的性能并不受某一代处理器或网络技术的局限。 群集通讯量的分配 除了流向指定端口的TCP和UDP通讯量之外,网络负载均衡不控制任何引入的IP通讯量。网络负载均衡不对网际控制报文协议(ICMP)、网际组成员协议(IGMP)、地址解析协议(ARP)或其它IP协议进行过滤。所有这些通讯量均不加修改地传递给在群集内全部主机上的TCP/IP协议软件。因为有了TCP/IP的稳定性及其处理重复数据报的能力,其它协议就能够在群集环境内正确运转。可是,当使用群集IP地址时,你可能预期从特定的点到点TCP/IP程序(比如ping)中看到重复的响应。这些程序能够通过为每个主机使用专用的IP地址来避免这种情况的发生。 集中收敛 在集中收敛期间,除非故障主机没有收到服务,主机将一如继往地处理引入的网络通讯量。客户对工作主机的请求是不受影响的。在集中收敛完成时,故障主机的通讯量会重新分配给剩余主机。负载均衡通讯量将在剩余宿主间分配,从而达成特定的TCP或UDP端口间最大可能的负载均衡。如果一个主机添加到群集中,集中收敛会允许该主机接管处理端口的任务,并由此使之具备最高的优先级;同时,集中收敛还将使该主机分到它所应负担的负载均衡通讯量份额。群集扩展不会影响正在进行的群集操作,并且保证对因特网客户和服务器程序而言是以透明方式实现的。可是,在客户的相似性被选定的情况下,群集扩展会影响到跨越多重TCP连接的客户话路,这主要是因为在连接之间可能将客户映射到不同的群集主机上去了。 网络负载均衡假定只要主机参加了群集宿主间的正常消息交换,那么,它就在群集内处于正常运转状态。如果其它主机在若干期间均未收到对消息交换的响应,它们就会启动一个集中收敛操作以重新分配先前由故障宿主承担的负载。你能够控制消息交换的周期和用来决定启动集中收敛操作的通信遗漏次数。以上两者各自的默认值分别为1000毫秒 (1秒)和5次。由于上述参数不常修改,因此,它们不能在"网络负载均衡属性"对话框中进行设置。必要时,这些参数可在系统注册表中以手工方式加以调整。 |