负载均衡,这个词令许多初涉网络的人不知所云。其实,负载均衡并非传统意义上的“均衡”,一般来说,它只是把有可能拥塞于一个地方的负载交给多个地方分担。如果将其改称为“负载分担”,也许更好懂一些。说得通俗一点,负载均衡在网络中的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人累死累活。
与轮流值日制度不同的是,网络负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。在现在的网络中,载荷分布并不均匀,对于计算集中型的应用,比如电子商务网站,服务器计算负荷会很大;对于读写频繁的应用,比如网络数据库,存储系统面临考验;传输量大的应用,比如视频服务,数据总是堵在网络接口上;访问量大的应用,路由器与防火墙易成瓶颈。想要消除这些瓶颈,升级设备、改变拓扑是“笨办法”,相对取巧一些的,就是采用负载均衡策略,用多个设备共同完成任务。
既然过大负载可能在网络中很多地方出现,均衡策略也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二、三、四、七层都有相应的负载均衡策略,在数据链路层上,可以基于数据包的目的MAC地址选择不同链路;在网络层,可以用基于IP地址的分配方式,将数据流疏通到多个节点;而所谓第四层交换乃至第七层交换,本身便是一种基于访问流量的控制方式,起到了负载均衡的作用。
许多厂商的产品也都通过各种方式各显神通:3Com的智能网卡和DynamicAccess技术结合起来,不用在交换机上做任何设置,就可以完成分担任务;Cisco路由器通过对动态环路、旁路技术等功能的提供实践着负载均衡;Win2000中,专门集成了针对服务器群集的负载均衡软件;还有许多厂商都支持的链路聚集、高层交换……实现方法还在不断地花样翻新,充实着“负载均衡”的内容。