摘要:随着计算技术的发展,个人计算机能为用户提供日趋丰富的应用和个性化的图形接口,许多实际的应用仅靠单台计算机是难以实现的,计算机集群技术作为提高系统可用性和可靠性的一种技术, 能将多台计算机组织起来进行协同工作, 从而完成许多复杂的现实应用。对计算机集群中的负载均衡技术进行了分析和研究。
关键词:计算机;集群;负载均衡
随着计算机技术以日新月异的速度发展, 尽管单台计算机的性能和可靠性越来越好, 但仍然还有许多实际的应用仅靠单台计算机是难以实现的。集群技术使用特定的连接方式, 将相对于超级计算机便宜许多的计算机设备结合起来, 提供与超级计算机性能相当的并行处理技术。负载均衡技术是计算机集群技术中的关键技术。该技术不但使各节点的负载在集群中得到尽可能平均合理的分摊处理, 还可以根据每个节点的不同可用资源或网络的特殊环境进行优化。
一、负载均衡的原理
所谓负载均衡, 是指处理节点的负载信息通过某代理软件传递给均衡器, 由均衡器做出决策并对负载进行动态分配, 从而使集群中各处理节点的负载相对趋于平衡。
1、负载均衡的实现原理。负载均衡的作用就像轮流值日制度, 把任务分给大家来完成, 以免让一个人过度劳累。但是与轮流值日制度不同的是, 它是一种动态均衡, 通过一些工具实时地分析数据包, 掌握网络中的数据流量状况, 把任务理分配出去。对于不同的应用环境, 使用的均衡策略是不同的。所以均衡策略也就有了多种多样的形式, 广义上的负载均衡既可以设置专门的网关、负载均衡器, 也可以通过一些专用软件与协议来实现。在OSI 七层协议模型中都有相应的负载均衡策略, 在数据链路层上实现负载均衡的原理是根据数据包的目的MAC 地址选择不同的路径; 在网络层上可利用基于IP 地址的分配方式将数据流疏通到多个节点; 而传输层和应用层的交换, 本身便是一种基于访问流量的控制方式, 能够实现负载均衡。在高性能计算领域,某些并行群集系统可以达到如此高的带宽和低延迟, 其原因是它们通常绕过使用网络协议。虽然网际协议对于广域网很重要, 但它包含了太多的开销, 而这些开销在节点相互已知的封闭网络群集中是不必要的。
2、负载均衡的实现层次
(1)基于客户端的负载均衡。这种模式指的是在网络的客户端运行特定的程序, 该程序通过定期或不定期的收集服务器群的运行参数:CPU 占用情况、磁盘IO、内存等动态信息, 再根据某种选择策略, 找到可以提供服务的最佳服务器, 将本地的应用请求发向它。
(2)基于服务器端的负载均衡。将客户端的负载均衡层移植到某一个中间平台, 形成三层结构, 则客户端应用可以不需要做特殊的修改, 透明的通过中间层应用服务器将请求均衡到相应的服务节点。比较常见的实现手段就是反向代理技术。
(3)网络接入协议交换。当前负载均衡主要用于解决服务器的处理能力不足的问题, 因此并不能充分发挥交换机带来的高网络带宽的优点, 使用基于操作系统的第四层交换技术因此孕育而生。通过开放源码的Linux,将第四层交换的核心功能做在系统的核心层,能够在相对高效稳定的核心空间进行IP 包的数据处理工作。
3、负载均衡的问题。在计算机集群中, 计算任务或网络流量被分配到各个处理节点上并行执行, 称之为负载。更加准确的讲, 负载的定义应是绝对的负载量与节点处理能力的比值。当整个系统的任务较多时, 分配给各个节点的负载可能并不均衡, 整个系统的利用率就会降低。有效的将各个并行计算任务或网络流量均匀的分布到不同的计算节点并行计算,使各个节点的利用率达到最大, 这就是研究负载均衡机制的目的。负载均衡的研究也分为两个方向, 即静态负载均衡和动态负载均衡。静态负载均衡是采用某种分配算法在任务执行前即确定分配到各个节点的方案, 其分配基于系统平均情况, 不考虑系统瞬时状态变化, 基于对负载的计算量、通信关系和依赖关系, 以及计算机集群本身的状况等先验知识或预测形成远程执行进程表。
期刊文章分类查询,尽在期刊图书馆动态负载均衡可根据当前运行状态自适应决定负载均衡策略, 动态方法是通过集群系统的实施负载信息,动态的将负载在各个计算节点进行分配和调整。
二、负载均衡的关键技术
1、负载均衡与调度。网络负载均衡和调度的任务是使得任务在集群各节点间得到尽可能合理的分摊处理, 从而达到高效利用系统资源的目的。一般将组成集群的元素分为处理节点和均衡节点两类。处理节点的处理器负载、应用系统负载、用户数量、可用的网络缓冲区、可用的系统内存或者其它的系统资源有关的负载状态信息通过节点上的代理软件传递给均衡节点, 由均衡节点做出决策。负载均衡的一个要点是节点的资源使用状态。由于该类系统的最终目的是使系统中各节点的资源使用状态尽可能达到平均, 因此准确的把握节点负载状况, 并根据各个节点当前的资源使用状态动态调整负载均衡的流量分布, 是负载均衡与调度考虑的关键问题。
2、轻量级通信机制。轻量级通信机制的主要目的是提高通信的效率, 如网络吞吐量, 传输延迟等。由于基于集群的系统都在无形中加重了网络负担, 所以任何集群系统的设计都考虑了如何更好的提高通信的效率。与单播技术相比, 使用组播技术常常能从本质上减少整个网络对带宽的需求, 目前该技术已经在音频和视频网中得到了应用广泛。因此在网络计算机服务器集群系统的设计中, 尽量依靠组播技术的设计策略。对于集群负载均衡器中需要点对多点传输的情况, 均采用了组播技术。
3、容错机制。容错指在软件执行过程中, 当软件系统本身发生异常或者由于某些硬件故障因素而导致软件系统无法正常工作时, 系统有包容错误的能力, 从而基本上保证系统的正常工作。目前使用的主要方法有服务器热备份等。网络计算机系统的应用模式中采用会话服务状态备份的策略, 即如果其它服务器发现某服务器失效, 则这些服务器根据会话服务状态备份通过协商决定应由那台服务器继续为使用崩溃服务器的用户继续提供服务。
三、负载均衡的基本算法
1、轮转算法。轮转算法是一种经典的分配算法, 该算法一次将服务请求调度到不同的服务器, 即每次执行i=(i+l)mod n, 并选出第i 台服务器。该算法的优点是简单, 即它无需一记录当前所有连接的状态, 所以是一种无状态调度。调度算法假定所有服务器的处理性能均相同, 而且不管服务器的当前负载,连接个数和响应速度的诧异。该算法相对简单, 不适用于服务器处理性能不一的情况。
2、最小连接调度。该算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法, 它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目, 当一个请求被调度到某台服务器, 其连接数加1; 当连接中止或超时, 其连接数减一。
3、目标地址散列调度。该算法先根据请求的目标IP 地址, 作为散列键从静态分配的散列表找出对应的服务器, 若该服务器是可用的且未超载, 将请求发送到该服务器, 否则返回空。
随着科技的发展,在互联网的很多行业中,负载均衡技术显示出了它巨大的作用,如果能够大量的被采用,势必会使互联网的资源得到大大利用,推动我国网络行业的迅速发展。在网络计算机系统中引入集群/负载均衡技术是促进网络计算机技术进一步推广的必要途径。我相信适合于网络计算机应用模式的负载均衡机制是解决这一问题的核心技术。
参考文献:
[1] 喻莉,阮文涛. 负载均衡技术的研究与实现[J].计算机技术与发展,2012,17(8):12
[2] 陈超,赵跃龙,王文丰,潘敏.基于反馈的改进动态负载均衡策略[J].计算机工程,2014,36(14):36
[3] 龚尚福,李娜,龚星宇.网络安全检测与监控技术的研究[J].电子设计工程,2012(06):3
[4] 刘 彬,刘 斌.周英浅谈负载均衡器在数据中心的应用[J].技术与市场,2013(8):9
论文作者:闫学超
论文发表刊物:《基层建设》2018年第22期
论文发表时间:2018/9/12
标签:负载均衡论文; 节点论文; 负载论文; 集群论文; 服务器论文; 技术论文; 计算机论文; 《基层建设》2018年第22期论文;