论文部分内容阅读
当今计算机技术已进入了以网络为中心的时代,互连网的用户数、应用类型、网络流量都以几何级数在增长,并且不同的应用有不同的流量和计算需求。靠提升单台服务器计算能力的方法已越来越不能满足人类的需要,主要体现在升级过程烦琐、代价昂贵、导致服务中断等方面。LVS(Linux Virtual Server)集群技术能有效解决网络服务的可伸缩性、高可用性、可维护性和价格有效性等需求。LVS实现可伸缩网络服务的基本原理是通过一对多的映射机制,将服务请求分发到多个结点中进行处理,这种映射可以在多个层中实现。在LVS的框架下,实现了第四层的交换技术——IPVS(IP Virtual Server)和第七层的交换技术KTCPVS(Kernel TCP Virtual Server),第七层交换也称为面向内容的交换技术,能根据用户请求内容的不同而将它们发送到各自的服务器。在常见的Web应用中,任务都有优先等级划分。在基于第四层的交换无法进行任务区分,这就要求后端的服务器提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该一样。而第七层交换技术基于内容进行负载均衡,它提供了一种对访问流量的高层控制方式,通过检查应用层数据报,根据报内的信息来执行负载均衡决策。它还可以充分利用访问的局部性,将相同类型的请求发送到同一台服务器,使得每个后端服务器收到的请求相似性好,有利于进一步提高单台服务器的主存Cache效率,从而在有限的硬件配置下提高系统的整体性能。因而它在WEB集群负载领域具有较高的商业价值。本文以Linux虚拟服务器KTCPVS为研究对象,对面向内容交换策略进行研究,主要包括面向内容交换的基本原理、实现机制,并提出了按优先级区分任务进行调度的思想,给出了在集群系统负载较大时按照任务价值率最大化进行调度的算法。本文的研究工作包括以下几个方面:①对负载均衡技术的发展和研究现状、相关问题和实现原理进行了介绍,并以Linux虚拟服务器LVS为例,对集群关键技术——负载均衡的实现进行了重点论述。着重介绍了LVS第七层交换机KTCPVS的体系结构和基于内容的调度算法。②对面向内容交换的基本原理进行了阐述,分析了面向内容交换的优点,并对应用层代理、TCP网关(TCP Gateway)、TCP粘合(TCP Splicing)、TCP迁移(TCP Handoff)等面向内容交换技术的实现做了分析、比较和总结。③提出了在Linux内核实现动态负载的调整机制和集群过载时按照任务价值率进行调度的策略。通过量化调度器对真实服务器的实时反馈负载信息指标来计算服务器综合负载,从而准确判断整个集群的综合负载状态,具体给出了在集群过载时采用任务价值率最大化的算法进行负载调度。最后,通过测试和实际应用表明,本文提出的面向内容交换,以任务价值率最大化调度算法,能够充分利用Linux集群系统的计算资源,并取得满意的任务执行效果。