集群技术及负载均衡调度算法探究.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集群技术及负载均衡调度算法探究

集群技术及负载均衡调度算法探究摘 要: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性等方面相对较高的收益。任务调度是集群系统中的核心技术。文章对集群的定义、分类、优点及各种常见的负载均衡调度算法进行了详细归纳。 关键词: 集群; 负载均衡; 调度算法 中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2012)08-37-02 0 引言 集群以其较强的能力、灵活的结构和可以提供像个人计算机那样方便的人机界面而具有良好的推广应用价值;集群的研究已经成为超级计算机和并行计算研究开发的一个重要方向。本文着重介绍了集群的概念、分类及其优点,并对集群系统中的各种常见的负载均衡调度算法[1-4]进行了分类和详细探讨。 1 集群介绍 1.1 集群的定义 通常来说,集群(Cluster)是指利用高速通信网络将一组相互独立的计算机按某种结构连接起来,在并行程序设计及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统。简单地说,集群就是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式进行管理。客户与集群相互作用时,集群像是一个独立的服务器。 1.2 集群的分类 一般按照解决问题的不同而将集群分为以下三个层次[5]。 ⑴ 科学集群(Scientific clusters)。由主服务器运行一个控制程序,将一个大规模的计算分成若干个子任务分配到网络中的每个节点,由该节点计算出相应的结果后提交给主服务器。该方案主要解决并行计算的问题。 ⑵ 负载均衡集群(Load Balance Clusters)。由两台负载均衡调度器和后台实际服务器组成。负载均衡调度器接收用户的请求,并根据后台实际服务器负载的状况将任务分配到相应节点进行运算。该方案主要解决大规模计算的问题。 ⑶ 高可用性集群(High—availability clusters)。由两个以上或两个以上的节点构成,可简单、经济地确保重要的商务应用软件、服务器和数据的持续可用性。通过系统监控、服务监控、IP自动迁移等技术实现在整个应用中无单点故障。 在实际的使用中,集群的这种三种类型可相互交融,如高可用性集群也可以在其节点之间均衡用户负载。同样,也可以从要编写应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡。从这个意义上讲,这种集群类别的划分是一个相对的概念,不是绝对的。 1.3 集群的优点 集群是通过高速通信网络将一组相互独立的计算机按某种结构连接起来的系统,它具有以下优点。 ⑴ 高性能:传统服务器的硬件和软件资源有一定上限,当工作负载超过一定限度时,服务器将难以承担巨大负载,而集群服务器通过多台主机的组合,可以承担巨大的负载,获得很高的整体性能。 ⑵ 高性价比:组成集群的服务器可以采用普通PC服务器,价格低,具有较高的性能/价格比。 ⑶ 可伸缩性:集群系统中节点数目可以增长到几千个,乃至上万个,其伸缩性运超过单台超级计算机。 ⑷ 高可用性:在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活节点提供服务,可以实现高可用性。 2 负载均衡调度算法 负载均衡是指集群中各处理节点的负载信息通过某代理软件传递给均衡器,由均衡器做出决策并对负载进行动态分配,从而使集群中各处理节点的负载相对趋于平衡。集群系统构建的核心是负载均衡调度算法的选择和使用。负载均衡调度算法是集群技术中的关键技术。负载均衡调度算法可分为静态调度算法、动态调度算法和动静结合调度算法。 2.1 静态调度算法 所谓静态调度算法就是调度策略事先已经确定,而不考虑系统运行时的状态。目前常见的静态调度算法有:轮叫调度、加权轮叫调度、目标地址散列调度和源地址散列调度。由于当客户通过TCP/UDP连接访问服务器时,服务所需的时间和所要消耗的计算资源千差万别,因此静态调度算法无法保证系统内服务器真正地实现均衡负载。同时,采用静态调度算法要求系统在运行过程不能执行其他任务,如果有其他的任务在此期间占用了集群系统资源,将很有可能导致调度策略的失败。 2.1.1 轮叫调度 轮叫调度[6]算法就是以轮询的方式依次请求调度不同的服务器[1],即每次执行i=(i+1)mod n,并选出第i台服务器。该算法是所有调度算法中最简单也是最容易实现的一种方法,其优点是简单,即它无需记录当前所有连接的状态,所以是一种无状态调度。轮询调度总是假设所有服务器处理性能均相同,不管服务器的当前连接数和响应时间。该算法不适用于服务器处理性能不一的情况,而且当请求服务时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档