论文部分内容阅读
随着云计算的兴起和移动互联网的蓬勃发展,越来越多的计算任务和存储资源被放置到了服务器上。全国各地都在新建数据中心,搭建集群系统来应对数据的大爆炸。这些惊人的数据是由数以万计的服务器支撑起来的。这些服务器组合在一起,以集群的形式对外提供服务,负载均衡技术保证了集群效率的最大化。然而,随着集群系统的深入应用,尤其是虚拟化技术逐渐成熟,更多的负载来自集群自身,传统的负载均衡策略并不能很好的处理这种情况。传统的负载均衡策略主要针对来之集群外部负载,这些负载有一个显著的特点,那就是它们均由外部客户端发起,经由某种负载均衡算法导向至集群内部的某台服务器上。对于这类负载,传统的负载均衡策略已经能很好的应对了。但是对于来自集群内部的负载,传统的策略就显得束手无策了。本文提出了一种新颖的负载均衡策略——自主负载均衡(Autonomous Load Balancing)来处理来自集群内部的负载。自主负载均衡将单个物理服务器视为节点,将物理服务器上的进程视为负载,通过节点间信息的交换来获取邻居节点的运行状态信息,在本节点资源不足或者超过设定的负载临界值时计算出最为合适的迁移目标节点,然后将负载进行迁移。自主负载均衡技术使得每个节点能够“意识”到自身的负载情况,与其他邻居节点进行“沟通”,并能通过“协商”将自身的负载转移到其他的节点上,使得每个节点拥有了自我管理的能力,从而使得整个集群处于负载均衡的状态。首先,本文研究了传统负载均衡技术的特点和应用场景,指出了其中的不足。其次,本文对负载均衡技术的核心问题进行了研究,并提出了自主负载均衡策略的解决方法。再次,从实际应用出发,本文提出了一种衡量负载能力的计算方法,为后序的调度策略提供了理论支撑。然后,根据实际的应用场景,本文设计了两种简单有效的排序算法来对迁移的目标节点进行排序。在理论研究的基础之上,本文还设计了一个较为完整的自主负载均衡系统并对其进行了实现。本文在真实的测试环境中对该系统进行了测试,证明其有效性。该系统的设计采用了点对点模型,具有很高的扩展型和灵活性,非常适合在大规模集群中使用。