基于Linux的负载均衡技术
扫描二维码
随时随地手机看文章
引言
随着计算机网络和通信技术的快速发展,越来越多的人通过互联网获取信息、购物和娱乐,大量用户进入网络,面对巨大的数据流量和计算强度,各类信息中心或数据处理中心迫切需要具有快速响应能力、高可伸缩性、高可用性、易于管理的信息服务器来提高网络吞吐量和对请求响应的能力。为保证及时的处理用户请求,增加网络吞吐量,提高服务质量,势必需要的对服务器软硬件进行升级,一般采取两种方案,一是改善单个服务器的配置,如更换处理速度更快的服务器等以提高其性能,另一种做法则是把多台服务器用局域网络连接成一个整体结构,通过并行处理及相互间的信息交流来扩展其性能。显然后者具有很高的整体性能、高可伸缩性、高可靠性和更高的性价比。
LinuxVirtualServer集群的结构
Linux虚拟服务器(LinuxVirtualServer,LVS)建筑于实际的服务器集群之上,用户看不到提供服务的多台实际服务器,而只能看见一台作为负载平衡器的服务器。实际的服务器通过高速局域网或地理上分散的广域网连接。实际服务器的前端是一台负载平衡器(LoadBalance,LB),它将用户的请求调度到真实服务器上完成,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。
LinuxVirtualServer集群中负载均衡技术
2.1负载均衡调度算法
均衡算法设计的好坏直接决定了集群系统的性能与效率,设计不好的算法,不但不能有效缓解集群的负载不平衡状况,还可能由于负载信息收集、进程的动态调度增加额外通信、
收稿日期:2014-06-05策划、连接等开销,增加系统的响应时间。负载初始设置即负载分担算法的主要任务是如何理智的选择下一个集群节点然后决定将新的服务请求转发给它。
针对不同的网络服务需求和服务器配置,LVS负载均衡调度可实现如下几种负载调度算法(网络管理员也可以根据不同的应用情况选择最佳的算法):
轮转调度算法
加权轮转调度算法
最小连接调度算法
加权最小连接调度算法
2.2集群管理
LVS集群包括4个进程、1个配置文件和1个用户界面。具体如下:
pulse进程,用于开启集群服务;
nanny进程,用于监视服务器的负载以及是否可用。当节点或进程失败后,会在LVS中写一条警告记录并移去一条规则。因此调度器能自动掩盖进程或服务器的失败,当故障恢复后,又可重新提供服务[3];
Ipvsadm进程,用于更新路由列表;
LVS进程,通过调用Ipvsadm进程进行管理,包括添加,删除路由列表;
配置文件etc/lvscf,为所有进程提供配置参数;
用户界而piranha,可方便地用于配置和管理服务器集群。
3Linux下负载均衡系统的建立
在集群系统环境中,设置主从调度器各1台、服务器3台,其中每个调度器需要双网络适配器,其中一个连接公共网络,另一个连接内部网络。内部网络由调度器和3台服务器组成,而服务器可以是任意的硬件平台,运行任意的操作系统。
3.1集群的配置
3.1集群的配置
在调度器双网卡中,eth0与外部网络相连,从网络管理员处申请1个IP地址作为虚拟IP地址,这里使用的是21.156.192.158,eth1与内部服务器子网相连,分配IP地址192.168.1.1,并伪装为192.168.1.254。在服务器上分配IP地址并设置默认网关为192.168.1.254;
在调度器上安装linuxRedHat6.1以及集群软件。3台服务器提供Web服务,为了验证负载被均衡到3台服务器上,将它们的Web主页设置为不一样,根据主页的显小,可知连接的是哪一台服务器;
在调度器上定义包过滤规则,使其能够对IP包进行伪装并转发:lpchains一Aforward-jMASQ-s192.168.1.0/24-d0.0.0.0/0
编辑/etc/lvscf配置文件,选择轮转调度算法,在调度器上用命令/etc/rcd/init.d/pulse开启虚拟服务。
3.2系统测试
用浏览器访问21.156.192158,通过对浏览器的刷新,可以看到3个不同的主页依次出现,从而有效证明了访问的负载被分担到3台不同的服务器上。
接下来进一步实验,为3台服务器配置相同的Web页面和MySQl数据库系统。当连续提交记录检索时,速度明显高于单机串行检索速度的总和;
当主调度器停机时,从调度器将自动接管负载的平衡服务。
最后,用网络命令对主频为100MHz,内存为32M的主调度器进行了简单的负载测试。当IP包的大小为64KB时,调度器对IP包的处理平均延时为10.4u/s,由此可算出它的最大负载能力为6.15MB/S。假设服务器的平均流量为600KB/s,调度器能对10台服务器进行管理。
3.3结果分析
基于IP层负载平衡调度的操作是在操作系统核心空间中完成的,它的调度开销很小,所以它能调度相当数量的服务器,一般不会成为系统的瓶颈。当整个系统的负载超过目前所有节点的处理能力时,可以通过增加服务器来满足不断增长的请求负载。由于对大多数服务网络来说,节点与节点之间不存在很强的相关性,所以整个系统的性能可以随着服务器池中的节
从LVS原理和上述实验也可以看出,调度器有可能成为系统单一的失效点,为了防止它的失效,建立了调度器的备份。2个心跳进程(Heart-beatDaemon)分别在主、从调度器上运行,他们通过串口线和UDP等心跳线来相互汇报各自的状态信息。当从调度器不能听到主调度器的心跳时,从调度器会通过ARP欺骗来接管主调度器的工作并提供负载调度服务。当主调度器恢复时,将自动变成从调度器。在实验中,仅简单地通过网络将主从调度器句_联,可以实现由主至从的自动切换,而不能实现主调度器故障恢复后到从调度器的切变。
4结语
集群系统的优势在于硬件和软件的冗余。通过监测节点、失败的进程,重新正确地配置系统,使工作能被集群中的其余节点接管,从而得到高可用的集群系统。采用LVS来实现负载均衡,它最大地发挥了网络和PC机的优势,带来了可观的性能,是一种简单快捷而目_经济高效的方法,是电子政务/电子商务中可靠的服务解决方案。
20211221_61c1e12a3e729__基于Linux的负载均衡技术