徐红梅
(四川职业技术学院计算机科学系,四川遂宁629000)
基于LVS-NAT转发的LVS负载均衡集群的研究
徐红梅
(四川职业技术学院计算机科学系,四川遂宁629000)
大型网站的后台服务器普遍采用集群技术.而如何解决集群内部的负载均衡问题,确保服务质量成为了重要课题.本文以LVS—NAT转发作为负载均衡搭建集群,从它的原理和其中的加权调度算法,实施条件及优缺点方面对lvs-NAT转发进行研究.
LVS;均衡负载;调度算法
从网络形成到至今,网络发展高速前行,使网络融入人们的生活,越来越多的人上网,也使人们对网络服务的质量例如网速,网络的稳定性及硬件要求越高,除了更新设备外,仅通过提高某个服务器的硬件性能已远远不能满足人们的需求,L V S均衡负载集群技术简称L V S(L i nu x V i r tu al S er v er)即L i nu x虚拟服务器,是一个虚拟的服务器集群系统.使用L V S技术能够解决的问题是,可以通过L i nu x操作系统及L V S提供的负载均衡技术实现一个具有良好可靠性、可扩展性和可操作性的高性能、高可用的服务器群集,从而以低廉的成本实现最优的服务性能.
负载均衡技术在网络服务中应用很多,如以D N S为基础的域名轮流解析、在客户端访问时调度方法、系统负载在应用层调度方法,还有IP地址的在分配时的调度方法等,在这些负载调度算法中,均以减轻服务器负载为目的,其中执行效率最高的是IP负载均衡技术.
L V S的IP负载均衡技术是通过ip v s内核模块来实现的,ip v s是L V S集群系统的核心软件,它的主要作用是:安装在D i rector S er v er上,同时在D i rector S er v er上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问集群服务.这个虚拟IP一般称为L V S的VIP,即V i rtu al IP.访问的请求首先经过VIP到达负载调度器,然后由负载调度器从R e al S er v er列表中选取一个服务节点响应用户的请求.当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的R e al S er v er节点,而R e al S er v er节点如何返回数据给用户,是ip v s实现的重点技术,ip v s实现负载均衡机制有四种,分别是NAT、T U N和D R F u l l N a t.这里我们将对IPV S中的NAT负载平衡机制进行探讨及研究.
l v s负载均衡集群中的L V S D i rector根据对OS I参考模型的第三、四层即网络层、传输层信息进行分析,把数据包转发到集群节点处理.L V S接收到用户请求的数据包后,根据制定的负载均衡调度方法选择合适的集群节点,将请求包中虚拟IP地址替换成选定的节点IP,然后发给此节点,节点相应完成之后讲应答数据包发给L V S D i rector,L V S D irector把应打包中的集群节点IP转换成L V S D irector的IP,再发回用户.在L V S-NAT集群中,请求和响应的数据报文都需要通过L V S D i rector,因此,可以重新映射网络端口,减少集群节点被攻击的可能性.工作原理如图1-1所示.在L V S-NAT工作模式中,D i rector一是负责将用户请求分发给后端的服务器群组,二则是扮演路由器的角色,将外部地址获取的地址通它转换为内部地址供内部服务器使用.在该工作模式中,L V S-NAT服务器群组对用户请求的响应全部经由L V S-NAT服务器转发给用户.由于用户和服务器群组分别处于不同的网络,需在L V S-NAT上开启路由转发功能。由D N S服务器202.98.96.68提供一个L V S地址125.67.64.236.即外网地址,用户获取得到该IP地址经由L V S-NAT服务器转发后提供转发节点IP192.168.10.1,由L V S-NAT向内网提供IP地址段192.168.10.0/24,内网中三台w e b服务器同时工作,分担L V S-NAT服务器负载.
图1-1 LVS-NAT转发
在H TTP协议中,当客户端用户从WEB服务器上获取请求服务时,需要建立一个TCP连接,而同一用户的不同请求将会通过调度算法被调度到不同的服务器上,IPV S在内核中的负载均衡调度是以连接为单位粒度的,所以这种单位粒度的调度在一定程度上可以解决由单个用户访问服务器量突然增大的突发性情况引起服务器间的负载不平衡.
目前,L V S负载调度方法有10种,内核中的连接调度算法上,IPV S已实现了八种调度算法,其中之一就是下面讲的轮叫调度算法(R oun d R o b i n S che d u li n g),算法思想就是将外部请求按顺序轮流分配到服务器池中的服务器,它均等地对待每台服务器,而不管服务器上实际的连接数和系统负载情况.当每次请求调度时用区模的方法即i=(i+1) m o d n来优先选取第i台服务器连接。算法的优点是相对简单,适用于服务器处理性能一致性的集群.
加权轮叫调度算法是对轮叫算法的改进,在系统调度时,引入加权值的方法,保证处理能力强的服务器能处理更多的访问量,负载均衡调度器可以自动问询服务器池中的服务器的负载情况,并动态地调整其权值.
当服务器处理能力强时,其加权系数相应增大,当服务器不工作或不可用出现故障时,其权值为零.所以,算法在模取优选服务器时需要增加一个权值作为额外附加值.
算法流程说明如图2-1所示。假设现有服务器组S={S0,S1,S2…,S n-1},其中W(Si)表示服务器Si的权值,i表示服务器顺序,表示当前服务器权值,ma x(S)服务器中的最大权值,g c d(S)表示所有服务器权值的最大公约数.变量初始化i=—1,c w=0.
图2-1 轮叫算法调度流程图
算法思想如下
(1)运行环境要求下载最稳定版本的l i nu x内核,及ip v s adm软件工具和P H P解释器软件包,三到四台运行不同操作系统的集群节点w e b服务器.其中一台以安装双网卡re d h a t L i nu x操作系统的主机作为L V S D i rector.一台集线器或交换机,连接所有的集群节点和L V Sdi rector(eth1连接交换机,eth0连接供用户访问的路由器).如图3-1连接所示.
图3-1 网络连接图
(2)重新编译内核及软件的解包安装在L V S D irector上重新编译内核程序,让内核支持IPV S并减少不必要的功能,测试使用新内核引导。配置网络参数
在L V S D i rector上解包和使用ma k e程序编译,安装IPv s adm和P H P软件
(3)用P H P编写集群节点监控程序,目的是定时每分钟扫描一次所有集群节点,建立最新可用的集群节点,去除故障节点,以防用户的请求发送到故障节点.
4.1 NAT模式优点
在现有IPV4地址短缺时期,可节约外网IP地址,不占用外网IP地址.抗负载能领强不需要对A-pa che S er v er做任何设置,只需要一个内网IP地址即可,对用户来说,内部的A pa che S er v er是透明的.服务器稳定,在NAT模式工作的L V S的L i nu x系统上不需要修改M T U的大小,完全输入一种非侵入式,轻量级的做法.安全性比较高,NAT的网络类似防火墙,通过内部转发的IP地址,将服务结点池?和外网隔开.服务器结点无法和客户端直接通信,而需要经过负载均衡器进行IP?包处理请求数据还是应答数据的工作,在集中处理操作中占优势.
4.2 NAT模式的缺点
L V S D i rector是整个服务器集群的瓶颈,当集群节点数超过10台以上时,L V S D i rector必须对进出集群的网络数据包改写包的头地址,因此会影响整个集群的性能,在负荷比较重时,不适用此模式.
[1]彭土有.开源L i nu x集群技术研究[J].广东科技,2008,(08).
[2]李子民.基于L V S的集群动态负载均衡算法研究[D].成都:电子科技大学,2009.
[3]陈伟.基于负反馈的负载均衡算法实现[J].湖南文理学院学报(自然科学版),2013,(01).
[4]王军亮.L V S集群中IP负载均衡技术的研究[J].贵州科学,2009,(02).
Resear ch on LVSLoad Bal anci ng Cl ust er Based on LVS- NATForwar di ng
XU Hongmei
(Sichuan Vocational and Technical College, Suining Sichuan 629000)
Cluster technology is widely used in the back-end server of large web sites. How to solve the problem of load balancing in cluster and to ensure the quality of service becomes an important issue.In this paper, LVS-NAT forwarding is used as a load-balancing cluster, and its principle and its weighted scheduling algorithm, implementation conditions and advantages and disadvantages are studied.
L V S;Bala nce d Lo ad;S che d u li n g A l g or i th m
TP393
A
1672-2094(2017)01-0149-03
责任编辑:张隆辉
2016-10-20
四川省省教厅自然科学项目(编号14Z B0344).
徐红梅(1977-),北京石景山人,四川职业技术学院副教授.研究方向:网络技术方向.