MS中采用的基于分配器的负载均衡机制
基于分配器的负载均衡机制是IP/TCP/HTTP的重定向分配。一般需要一个特殊的前端节点,称为分配器(dispatcher)。所有的客户端请求都经过分配器并由它分配到后端服务器处理。这种基于分配器的请求分配机制通常对客户端是透明的,采用的机制有两种:
一种称为中继机制(relaying),如图3所示,客户端请求到达分配器后,由分配器按定的负载分配算法,将请求传递给被选中的服务器。服务器处理后的结果传回至分配器,再由分配器转发给客户端。分配器的工作通常在操作系统的应用层完成,也有修改操作系统核心直接支持中继机制的系统,其性能会有所改善,这种优化的方法称为TCP衔接(TCP splicing);

图3. 中继机制示意图
另外一种机制称为TCP传递(TCP handoff),如图4所示,客户端的请求经过分配器分配到达服务器,服务器将处理后的结果不经过分配器而直接发送给客户端。中继或TCP衔接机制要求所有的通信均要经过分配器(特别是处理结果信息量很大的情况下),因此容易在分配器形成通信瓶颈,TCP传递机制避免了这一问题,因此性能更好,但是需要对前端和后端节点进行修改,以支持TCP handoff 。

图4. TCP传递机制示意图
MS中的负载均衡系统结构设计
对于大型视频点播系统来说,一个好的负载均衡算法不能只单纯考虑负载分配问题,更应“未雨绸缪”,在接受用户请求和节目存储时就考虑到负载均衡问题,因此我们认为本系统中的负载均衡系统应该如图5所示,分为接入许可控制模块(Admission Control Module, A CM )、负载调度模块(Load Schedule Module,LSM )和存储管理模块(Storage Manage Module, SMM )三个部分。
接入许可控制模块作为视频服务器的单一入口点,判断是否接受客户的命令请求;负载调度模块负责根据一定的服务器选择算法分配负载,并管理各MS-VOD节点;存储管理模块负责根据点播率变化情况及时调整影片存储。

图5. MS中的负载均衡系统结构示意图