| 高性能宽带信息示范网3TNet的创建,使远距离VOD成为可能。流媒体服务器(Streaming Media Server 简写MS)集群系统能够用相对较为廉价的方式提供较强的可扩展性和良好的吞吐性能,然而要使系统资源得到充分利用却面临着许多技术上的挑战,负载均衡技术就是其中之一。在一个由服务器集群构成的大规模视频点播系统中,负载均衡策略的优劣直接影响着整个系统的资源利用效率和服务质量。
如果MS没有好的节目存储调度管理机制,影片存储不合理,将极易出现频繁向上级内容提供商请求数据的情况,而一个上级内容提供商为多个MS提供服务,对每一个MS的服务时间是有限的,未必能及时响应于一个请求,且MS与内容提供商之间的数据传送是通过ASON完成的,ASON 采用交换式连接,根据客户需求来动态分配光通道,这种连接的建立、拆除都会占用一定的时问,频繁的连接建立与拆除操作必定会人大降低整个系统的有效利用率。 另外,MS从ASON上接受数据时,极短的时间内有大量的数据同时到达缓存,给系统带来了新的负载压力;且MS提供的是流媒体服务,需对普通媒体文件进行实时编码,转化成流式数据传送给用户,这也是系统负载的一部分。 由以上分析可见,由于本系统特殊的架构特点,MS中的数据存储方式会更加直接地影响着系统的负载分配和服务质量,这对负载均衡策略提出了更高的要求:在实现负载均衡策略时需要同时考虑数据的存储调度管理,否则会造成有的服务器异常繁忙,而有的服务器比较空闲,整个系统资源不能得到充分利用的局面。
MS中的负载均衡系统设计 MS中的负载均衡系统是在基于LAN的分布式体系结构下实现的负载均衡,所有来自客户端的请求被透明地分配到若干服务器上。对用户而言,整个分布式系统仿佛是台单一的逻辑服务器。这样的集群系统能够提供较强的可扩展性和较好的吞吐性能。从商业角度而言,不仅可以保护原来的投资,而且也可以通过廉价的集群系统获得高性能计算机所能达到的处理能力
然而要使这样的集群系统保持较高的资源利用率面临一定挑战。例如,现有的负载均衡方法都不能很好地解决本系统中涉及的问题,最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个域名,从而查询该域名的客户机将访问不同的服务器,达到负载均衡的目的。DNS负载均衡虽然简单而有效,但它不能区分服务器的差异,也不能反映服务器的当前运行状态。 有人采用反向代理服务器进行请求转发的方法,该方法虽然能够应用优化的负载均衡策略,使每次服务均由最空闲的内部服务器来提供,以达到负载均衡的目的。但随着并发连接数量的增加,代理服务器本身的负载也变得非常大,反向代理服务器本身反而会成为服务的瓶颈。还有人采用支持负载均衡的地址转换网关的方法,可以将一个外部IP地址映射为多个内部IP地址,对每次请求动态使用其中一个内部地址,达到负载均衡的目的。
很多硬件厂商将此技术集成在设备中,采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载,然而硬件实现的负载控制器灵活性不强,不能支持更优化的负载均衡策略和更复杂的应用协议。还有负载均衡方法是在某些协议内部实现的,例如HTTP协议中的重定向功能等,但它依赖于特定协议,因此使用范围有限。 MS中采用的基于分配器的负载均衡机制
基于分配器的负载均衡机制是IP/TCP/HTTP的重定向分配。一般需要一个特殊的前端节点,称为分配器(dispatcher)。所有的客户端请求都经过分配器并由它分配到后端服务器处理。这种基于分配器的请求分配机制通常对客户端是透明的,采用的机制有两种:
一种称为中继机制(relaying),如图3所示,客户端请求到达分配器后,由分配器按定的负载分配算法,将请求传递给被选中的服务器。服务器处理后的结果传回至分配器,再由分配器转发给客户端。分配器的工作通常在操作系统的应用层完成,也有修改操作系统核心直接支持中继机制的系统,其性能会有所改善,这种优化的方法称为TCP衔接(TCP splicing);
|