论文部分内容阅读
摘要:针对LVS集群中VS/NAT负载均衡技术的NAT服务器可扩展性差的问题,提出一种基于DDNS技术的性能优化方法,对VS/NAT系统进行重新架构,通过定时收集NAT服务器的负载数据,量化系统的负载率,以保证NAT服务器池中负载率最低的服务器优先提供相应服务。最后利用WebBench测试工具对传统LVS/NAT系统和使用DDNS优化的系统性能进行测试并对测试结果进行了对比和分析,结果表明本方法使系统具有更好的健壮性和均衡性,更好地实现了负载均衡。
关键词:LVS;动态域名解析服务;负载均衡
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)36-0220-03
A Method of Optimizing LVS / NAT Performance Based on DDNS Technology
DENG Rong
(Nantong College of Science and Technology, Nantong 226007, China)
Abstract: Aiming at the problem of poor scalability of NAT server based on VS / NAT load balancing technology in LVS cluster, this paper proposes a performance optimization method based on DDNS technology. It reconstructs the VS / NAT system, collects the NAT server load data, Of the load rate to ensure that the NAT server pool load the lowest priority server to provide the appropriate services. At last, the performance of traditional LVS / NAT system and DDNS optimized system is tested by WebBench test tool, and the results are compared and analyzed. The results show that the method has better robustness and balance, and better achieve load balancing.
Key words: LVS; DDNS; Load balancing
Linux Virtual Server (LVS) 為网络服务提供负载平衡的功能,利用集群技术建立一个具有高性能及可用性高的虚拟服务系统。LVS集群中实现负载均衡的技术主要有三种,分别为:VS/NAT、VS/TUN和VS/DR。其中在VS/NAT模式下,集群中的物理服务器可以使用任何支持TCP/IP的操作系统,物理服务器可以分配Internet的保留私有IP地址,只有NAT服务器需要一个合法的公有IP地址。但这种模式的缺点是扩展性有限,当服务器节点数据增长过多时,由于所有的请求包和应答包都需要经过NAT服务器进行处理,NAT服务器将成为整个系统的瓶颈。因此本文提出一种基于DDNS技术的优化该模式下集群系统性能的方法,根据NAT服务器的实际负载情况,动态在NAT服务器池中选取负载较轻的NAT服务器,优先响应客户端的大量Web访问请求,并将查询流量平均分配到物理Web服务器上。
1 系统设计
1.1 系统架构和技术原理
为了解决VS/NAT可扩展性缺乏的缺点,本文采用DDNS技术将整个VS/NAT系统进行重新架构和调整,如图1所示。DDNS是域名系统(DNS)中的一种自动更新名称服务器内容的技术。根据互联网的域名系统规则,域名必须与固定的IP地址进行绑定。但动态DNS系统为动态网域提供一个固定的名称服务器,通过即时更新使外界用户能够访问动态用户的Web站点。DDNS服务器上同时安装负载率计算模块、负载信息收集模块和请求转发模块。服务器通过收集模块定时收集NAT服务器的负载数据,通过相应算法计算确定服务器的负载率,保证让NAT服务器池中负载率最低的服务器优先提供相应服务,从而提高了整个系统的性能和效率。在DDNS服务器收集NAT服务器的负载信息时,同时将无法取得负载信息的NAT服务器视为发生故障,并在DDNS服务器上将故障的NAT服务器的IP地址从域名解析的配置文件中删除。
1.2系统负载情况量化
本方法中负载均衡模块收集的参数及负载率的计算方法如下:
[Xi=Xcpui Xmemi Xdiski Xbandwidthi]
[Xi]表示一台NAT服务器的最大可用资源值,[Xcpui]表示NAT服务器的CPU频率,[Xmemi]表示NAT服务器的内存大小,[Xdiski]表示NAT服务器的磁盘I/O速率,[Xbandwidthi]表示NAT服务器所在网络的带宽大小。
[Yi=Ycpui Ymemi Ydiski Ybandwidthi]
[Yi]表示一台NAT服务器在一个单位时间内对资源的占用值。[Ycpui]表示NAT服务器的CPU的使用率,[Ymemi]表示NAT服务器的内存使用率,[Ydiski]表示NAT服务器的磁盘I/O读取速率,[Ybandwidthi]表示NAT服务器所在网络的带宽占用率。
对CPU、内存、网络、磁盘的权重和使用W表示:
[W=w1 w2 w3 w4],其中[t1 t2 t3 t4=1]; 通过对节点静态资源的参数值加权求和计算一个NAT服务器节点的整体性能,用[Mi]表示
[Mi=Xi×TT]
[Mi=Mcpui Mmemi Mdiski Mbandwidthi]
对单位时间内的资源使用参数值进行加权求和计算一个NAT服务器节点的动态资源性能,用[Ni]表示
[Ni=Xi×TT]
[Mi=Mcpui Mmemi Mdiski Mbandwidthi]
一台NAT服务器的整体负载率可以通过[Mi]和[Ni]参数计算获得,用[Zi]表示:
[Zi=NiMi]
2 系统实现
2.1 DDNS的配置
本方法中DDNS服务器使用CentOS 6.7系统,限于篇幅,这里仅介绍该服务的主要配置命令:
1) 生成key用于更新dns库
[root@DNS ~]#dnssec-keygen -a HMAC-MD5 -b 128 -n USER ntstddns
//以ntstddns生成一个md5加密的128位密码,生成两个文件。
[root@DNS ~]# ls
anaconda-ks.cfg install.log.syslog K ntstddns. 157 56925.private
install.log K ntstddns . 157 56925.key
[root@DNS ~]# cat K ntstddns. 157 56925.key
ntstddns. IN KEY 0 3 157 oxRjfO3rB1b0pzY1WNpbNg==
2) 配置DNS服务器主配置文件
[root@DNS named]# vi /etc/named.conf
key ddnsuser {
algorithm hmac-md5;
secret oxRjfO3rB1b0pzY1WNpbNg==; //指定ntstddns的key
};
zone "ntst.edu.cn" IN {
type master;
file "/var/named/zheng";
allow-update {key ntstddns;}; //允許通过验证的key升级dns库
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3) 配置正向解析文件
[root@DNS ~]# cp -p /var/named/named.loopback /var/named/zheng
[root@DNS ~]#vi /var/named/zheng
文件内容为:
2.2 系统实现的流程
设一台NAT服务器能负载的物理Web服务器数量为N,当实际物理Web服务器数量为n,实际物理NAT服务器数量为m时有如下规则:
1) 当1 2) 当xN WEB服务器设备集可定义为WEB={WEB1,WEB2,…,WEBn};
NAT 服务器设备集可定义为 NAT ={NAT1, NAT2,…,NATm};
在图示的系统模型中,LVS/NAT模式下NAT服务器集群中的每个服务器节点在每间隔一个时间周期向DDNS服务器的负载均衡信息收集模块反馈当前服务器的服务器性能参数,收集模块接收到这些负载度信息后,利用这些参数数据通过1.2节介绍的计算方法计算出服务器的整体负载情况,DDNS服务器会将域名系统中对应的NAT服务器的记录删除,然后根据实时的负载情况通过请求转发模块动态将客户端访问的域名重新解析到负载较轻的那台NAT服务器的IP地址上,使其在一个时间周期内优先响应客户端的请求并根据相应的负载均衡算法把客户端的请求平均的分配给Web服务器集群中的一台Web服务器。
同时,DDNS服务器会把无法获得负载信息的NAT服务器IP地址在域名记录中删除,有效地避免客户端访问失效的NAT服务器造成服务的中断。
3 实验测试及结果分析
为了更好的验证本文方法对系统性能的提升,使用WebBench软件对传统架构和本文所用架构中Web服务器做相同参数的压力测试,并根据测试数据对比分析系统平均服务的需求数、平均延迟时间和系统每秒平均字节数,测试结果如图3所示:
系统平均服务请求数:将测试时间周期中系统完成的客户端请求数除以测试时间(单位为秒)
平均延迟时间包括客户端连接到Web服务器的时间和Web服务器把Web页面的内容通过网络发送到客户端的时间。
通过上述实验结果可以看出,本文的方法提升了LVS/NAT模式下物理Web服务器的性能,使服务器集群的资源得到了更充分的利用。
4 总结
综上所述,本文提出的改进LVS/NAT性能的方法较好地解决了该模式中NAT服务器瓶颈的问题,通过对VS/NAT系统重新架构,定时收集NAT服务器的负载数据,量化系统的负载率,保证了NAT服务器池中负载率最低的服务器优先提供相应服务。从而提高了系统的平均服务请求数、平均延迟时间等多项参数指标,使LVS集群的整体性能有了较大的提升。
参考文献:
[1] 陈练达,曾国荪.基于因子分析的动态负载均衡算法[J].微型机与应用,2015(2).
[2] 蔡程宇,娄渊胜.改进加权最小连接数负载均衡调度算法研究[J].哈尔滨商业大学学报:自然科学版, 2015(2).
[3] 马双良,张英敏,宋丽君.基于LVS和计算任务的实时集群负载均衡方法[J].计算机工程与设计, 2007(20).
[4] 曾宪章,李潇,王峰,等.动态域名解析服务系统及相关问题讨论[J]. 微电子学与计算机, 2005(12).
关键词:LVS;动态域名解析服务;负载均衡
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)36-0220-03
A Method of Optimizing LVS / NAT Performance Based on DDNS Technology
DENG Rong
(Nantong College of Science and Technology, Nantong 226007, China)
Abstract: Aiming at the problem of poor scalability of NAT server based on VS / NAT load balancing technology in LVS cluster, this paper proposes a performance optimization method based on DDNS technology. It reconstructs the VS / NAT system, collects the NAT server load data, Of the load rate to ensure that the NAT server pool load the lowest priority server to provide the appropriate services. At last, the performance of traditional LVS / NAT system and DDNS optimized system is tested by WebBench test tool, and the results are compared and analyzed. The results show that the method has better robustness and balance, and better achieve load balancing.
Key words: LVS; DDNS; Load balancing
Linux Virtual Server (LVS) 為网络服务提供负载平衡的功能,利用集群技术建立一个具有高性能及可用性高的虚拟服务系统。LVS集群中实现负载均衡的技术主要有三种,分别为:VS/NAT、VS/TUN和VS/DR。其中在VS/NAT模式下,集群中的物理服务器可以使用任何支持TCP/IP的操作系统,物理服务器可以分配Internet的保留私有IP地址,只有NAT服务器需要一个合法的公有IP地址。但这种模式的缺点是扩展性有限,当服务器节点数据增长过多时,由于所有的请求包和应答包都需要经过NAT服务器进行处理,NAT服务器将成为整个系统的瓶颈。因此本文提出一种基于DDNS技术的优化该模式下集群系统性能的方法,根据NAT服务器的实际负载情况,动态在NAT服务器池中选取负载较轻的NAT服务器,优先响应客户端的大量Web访问请求,并将查询流量平均分配到物理Web服务器上。
1 系统设计
1.1 系统架构和技术原理
为了解决VS/NAT可扩展性缺乏的缺点,本文采用DDNS技术将整个VS/NAT系统进行重新架构和调整,如图1所示。DDNS是域名系统(DNS)中的一种自动更新名称服务器内容的技术。根据互联网的域名系统规则,域名必须与固定的IP地址进行绑定。但动态DNS系统为动态网域提供一个固定的名称服务器,通过即时更新使外界用户能够访问动态用户的Web站点。DDNS服务器上同时安装负载率计算模块、负载信息收集模块和请求转发模块。服务器通过收集模块定时收集NAT服务器的负载数据,通过相应算法计算确定服务器的负载率,保证让NAT服务器池中负载率最低的服务器优先提供相应服务,从而提高了整个系统的性能和效率。在DDNS服务器收集NAT服务器的负载信息时,同时将无法取得负载信息的NAT服务器视为发生故障,并在DDNS服务器上将故障的NAT服务器的IP地址从域名解析的配置文件中删除。
1.2系统负载情况量化
本方法中负载均衡模块收集的参数及负载率的计算方法如下:
[Xi=Xcpui Xmemi Xdiski Xbandwidthi]
[Xi]表示一台NAT服务器的最大可用资源值,[Xcpui]表示NAT服务器的CPU频率,[Xmemi]表示NAT服务器的内存大小,[Xdiski]表示NAT服务器的磁盘I/O速率,[Xbandwidthi]表示NAT服务器所在网络的带宽大小。
[Yi=Ycpui Ymemi Ydiski Ybandwidthi]
[Yi]表示一台NAT服务器在一个单位时间内对资源的占用值。[Ycpui]表示NAT服务器的CPU的使用率,[Ymemi]表示NAT服务器的内存使用率,[Ydiski]表示NAT服务器的磁盘I/O读取速率,[Ybandwidthi]表示NAT服务器所在网络的带宽占用率。
对CPU、内存、网络、磁盘的权重和使用W表示:
[W=w1 w2 w3 w4],其中[t1 t2 t3 t4=1]; 通过对节点静态资源的参数值加权求和计算一个NAT服务器节点的整体性能,用[Mi]表示
[Mi=Xi×TT]
[Mi=Mcpui Mmemi Mdiski Mbandwidthi]
对单位时间内的资源使用参数值进行加权求和计算一个NAT服务器节点的动态资源性能,用[Ni]表示
[Ni=Xi×TT]
[Mi=Mcpui Mmemi Mdiski Mbandwidthi]
一台NAT服务器的整体负载率可以通过[Mi]和[Ni]参数计算获得,用[Zi]表示:
[Zi=NiMi]
2 系统实现
2.1 DDNS的配置
本方法中DDNS服务器使用CentOS 6.7系统,限于篇幅,这里仅介绍该服务的主要配置命令:
1) 生成key用于更新dns库
[root@DNS ~]#dnssec-keygen -a HMAC-MD5 -b 128 -n USER ntstddns
//以ntstddns生成一个md5加密的128位密码,生成两个文件。
[root@DNS ~]# ls
anaconda-ks.cfg install.log.syslog K ntstddns. 157 56925.private
install.log K ntstddns . 157 56925.key
[root@DNS ~]# cat K ntstddns. 157 56925.key
ntstddns. IN KEY 0 3 157 oxRjfO3rB1b0pzY1WNpbNg==
2) 配置DNS服务器主配置文件
[root@DNS named]# vi /etc/named.conf
key ddnsuser {
algorithm hmac-md5;
secret oxRjfO3rB1b0pzY1WNpbNg==; //指定ntstddns的key
};
zone "ntst.edu.cn" IN {
type master;
file "/var/named/zheng";
allow-update {key ntstddns;}; //允許通过验证的key升级dns库
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3) 配置正向解析文件
[root@DNS ~]# cp -p /var/named/named.loopback /var/named/zheng
[root@DNS ~]#vi /var/named/zheng
文件内容为:
2.2 系统实现的流程
设一台NAT服务器能负载的物理Web服务器数量为N,当实际物理Web服务器数量为n,实际物理NAT服务器数量为m时有如下规则:
1) 当1
NAT 服务器设备集可定义为 NAT ={NAT1, NAT2,…,NATm};
在图示的系统模型中,LVS/NAT模式下NAT服务器集群中的每个服务器节点在每间隔一个时间周期向DDNS服务器的负载均衡信息收集模块反馈当前服务器的服务器性能参数,收集模块接收到这些负载度信息后,利用这些参数数据通过1.2节介绍的计算方法计算出服务器的整体负载情况,DDNS服务器会将域名系统中对应的NAT服务器的记录删除,然后根据实时的负载情况通过请求转发模块动态将客户端访问的域名重新解析到负载较轻的那台NAT服务器的IP地址上,使其在一个时间周期内优先响应客户端的请求并根据相应的负载均衡算法把客户端的请求平均的分配给Web服务器集群中的一台Web服务器。
同时,DDNS服务器会把无法获得负载信息的NAT服务器IP地址在域名记录中删除,有效地避免客户端访问失效的NAT服务器造成服务的中断。
3 实验测试及结果分析
为了更好的验证本文方法对系统性能的提升,使用WebBench软件对传统架构和本文所用架构中Web服务器做相同参数的压力测试,并根据测试数据对比分析系统平均服务的需求数、平均延迟时间和系统每秒平均字节数,测试结果如图3所示:
系统平均服务请求数:将测试时间周期中系统完成的客户端请求数除以测试时间(单位为秒)
平均延迟时间包括客户端连接到Web服务器的时间和Web服务器把Web页面的内容通过网络发送到客户端的时间。
通过上述实验结果可以看出,本文的方法提升了LVS/NAT模式下物理Web服务器的性能,使服务器集群的资源得到了更充分的利用。
4 总结
综上所述,本文提出的改进LVS/NAT性能的方法较好地解决了该模式中NAT服务器瓶颈的问题,通过对VS/NAT系统重新架构,定时收集NAT服务器的负载数据,量化系统的负载率,保证了NAT服务器池中负载率最低的服务器优先提供相应服务。从而提高了系统的平均服务请求数、平均延迟时间等多项参数指标,使LVS集群的整体性能有了较大的提升。
参考文献:
[1] 陈练达,曾国荪.基于因子分析的动态负载均衡算法[J].微型机与应用,2015(2).
[2] 蔡程宇,娄渊胜.改进加权最小连接数负载均衡调度算法研究[J].哈尔滨商业大学学报:自然科学版, 2015(2).
[3] 马双良,张英敏,宋丽君.基于LVS和计算任务的实时集群负载均衡方法[J].计算机工程与设计, 2007(20).
[4] 曾宪章,李潇,王峰,等.动态域名解析服务系统及相关问题讨论[J]. 微电子学与计算机, 2005(12).