一种虚拟化网络上行链路负载均衡方法技术

技术编号:14529888 阅读:63 留言:0更新日期:2017-02-02 12:30
本发明专利技术特别涉及一种虚拟化网络上行链路负载均衡方法。该虚拟化网络上行链路负载均衡方法,结构包括负载计数器,负载均衡器和负载容器,所述负载计数器和负载容器均连接到负载均衡器,所述负载均衡器连接到各个物理网卡;所述负载均衡器利用负载计数器和负载容器采集的报文个数累计值和物理网卡个数,通过计算选择物理网卡将下一个报文发送出去,并调用各个物理网卡的发送函数实现报文的发送。该虚拟化网络上行链路负载均衡方法,采用最简单的逻辑算法,使相邻的报文分别通过不同的物理网卡发出,避免占用大量CPU资源,方法简洁高效易实现,能够在上行链路绑定的物理网卡间达到负载均衡,最大限度的使用物理网卡上行带宽。

【技术实现步骤摘要】

本专利技术涉及虚拟化网络设计
,特别涉及一种虚拟化网络上行链路负载均衡方法
技术介绍
在互联网、云计算、大数据飞速发展的当今世界,服务器的网络吞吐量也随之飞速增加,能够快速并提供更多服务,就要能够承载更多的流量。但如果为了提高一些吞吐量,而购置更高级网卡设备,进行升级,服务器使用成本必然将会提高;同时,随着服务器本身性能限制所能支持的网卡设备也具有局限性。在服务器中心通常通过将多块物理网卡绑在一起,形成一个聚合起来的上行链路,以达到扩大带宽的目的。如果多块物理网卡绑定到一起形成一个更大带宽的上行链路,当有报文要发送时,就需要一个策略使之从不同网卡发送出去,以达到负载均衡的效果;而如果只是冗余的话,带宽就不能增加。使用负载均衡的策略,不仅能够增大带宽,一样具有冗余的效果。目前虚拟化网络负载均衡算法存在一定缺陷,并不能将数据包真正平均分配到各个物理网卡。如著名的openvswitch提供了三种负载均衡方法:balance-slb、balance-tcp、active-backup,active-backup模式只能冗余,不能负载均衡;而balance-slb和balance-tcp这两种模式虽然能根据L2、L3和L4层进行负载均衡,但是这两种算法一旦计算后,固定特征的流将只从某个网卡发送出去,当只有一条流或者有几条流特征相同的时候都将从某一个网卡发送出去,具有一定缺陷。基于上述情况,为了能够均衡流量到不同网卡,有效解决上述问题,本专利技术提出了一种虚拟化网络上行链路负载均衡方法。
技术实现思路
本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的虚拟化网络上行链路负载均衡方法。本专利技术是通过如下技术方案实现的:一种虚拟化网络上行链路负载均衡方法,其特征在于:构建上行链路发送报文逻辑结构,所述上行链路发送报文逻辑结构包括负载计数器,负载均衡器和负载容器,所述负载计数器和负载容器均连接到负载均衡器,所述负载均衡器连接到各个物理网卡;所述负载计数器对每个报文在进入负载均衡器之前进行累加,当上行链路的物理网卡组成有变化时对负载计数器进行清零;所述负载容器记录上行链路物理网卡个数,当上行链路物理网卡组成有变化时,进行实时变化;所述负载均衡器利用负载计数器和负载容器采集的数据,通过计算选择物理网卡将下一个报文发送出去,并调用各个物理网卡的发送函数实现报文的发送。所述负载计数器的初始值为0,每当报文要从此上行链路向外发送报文时,增加1;所述负载容器的初始值也为0,每增加一个物理网卡时增加1,每减少一个物理网卡时减1;所述负载均衡器对每个物理网卡发送函数依次进行编号n,n为自然数,并根据算法选择相应的物理网卡发送函数,将报文发送出去,编号为n的物理网卡对应的发送函数为ethn_tx。当到达一个报文,要将传递出去,经过负载计数器count=count+1;报文进入负载均衡器模块,负载均衡器从负载计数器和负载容器分别获取报文个数累计值count和物理网卡个数m,通过算法:Select=(count%m)+1;当Select等于n时,则调用发送函数ethn_tx发送报文,发送函数ethn_tx对应上行链路编号为n的物理网卡。本专利技术的有益效果是:该虚拟化网络上行链路负载均衡方法,采用最简单的逻辑算法,使相邻的报文分别通过不同的物理网卡发出,避免占用大量CPU资源,方法简洁高效易实现,能够在上行链路绑定的物理网卡间达到负载均衡,最大限度的使用物理网卡上行带宽。附图说明附图1为本专利技术上行链路发送报文逻辑结构示意图。具体实施方式为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图和实施例,对本专利技术进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。该虚拟化网络上行链路负载均衡方法,首先构建一个上行链路发送报文逻辑结构,所述上行链路发送报文逻辑结构包括负载计数器,负载均衡器和负载容器,所述负载计数器和负载容器均连接到负载均衡器,所述负载均衡器连接到各个物理网卡;所述负载计数器对每个报文在进入负载均衡器之前进行累加,当上行链路的物理网卡组成有变化时对负载计数器进行清零;所述负载容器记录上行链路物理网卡个数,当上行链路物理网卡组成有变化时,进行实时变化;所述负载均衡器利用负载计数器和负载容器采集的数据,通过计算选择物理网卡将下一个报文发送出去,并调用各个物理网卡的发送函数实现报文的发送。所述负载计数器的初始值为0,每当报文要从此上行链路向外发送报文时,增加1;所述负载容器的初始值也为0,每增加一个物理网卡时增加1,每减少一个物理网卡时减1;所述负载均衡器对每个物理网卡发送函数依次进行编号1,2,3,…..n,n为自然数,并根据算法选择相应的物理网卡发送函数,将报文发送出去,编号为n的物理网卡对应的发送函数为ethn_tx。具体的计算方法如下:当到达一个报文,要将传递出去,经过负载计数器count=count+1;报文进入负载均衡器模块,负载均衡器从负载计数器和负载容器分别获取报文个数累计值count和物理网卡个数m,通过算法:Select=(count%m)+1;若Selcet等于1,则调用eth1_tx发送函数发送报文;若Select=2,则调用eth2_tx的发送函数发送报文;若Select等于n,则调用ethn_tx发送函数发送报文。eth1_tx、eth2_tx、ethn_tx分别对应上行链路编号为1,2,n的物理网卡。该虚拟化网络上行链路负载均衡方法,适用于linux、window、unix等各种带网络的操作系统,将服务器通过上行链路发送出去的报文,依次在上行链路绑定的物理网卡之间进行轮转发送,使各个网卡发送报文的个数达到均衡从而达到流量均衡。虽然报文有大有小,但这并不影响流量的均衡。且由于上层各个应用程序向外发送报文,需要获取CPU时间片,因此各个应用程序也是轮番向外发送报文,在发送的那些时间片内,报文大小是基本一致的。而当流量达到网卡最大承担能力时,对于一个发送1G/S流量,报文间隔不超过0.0014毫秒,若有2个物理网卡依次轮流发送包,相当于对整个流量0.0028秒进行采样。对于这两张物理网卡得到的这两组采样,均值误差不到千分之一,因此说这种流量均衡的力度已经能够达到真正的均衡。本文档来自技高网...

【技术保护点】
一种虚拟化网络上行链路负载均衡方法,其特征在于:构建上行链路发送报文逻辑结构,所述上行链路发送报文逻辑结构包括负载计数器,负载均衡器和负载容器,所述负载计数器和负载容器均连接到负载均衡器,所述负载均衡器连接到各个物理网卡;所述负载计数器对每个报文在进入负载均衡器之前进行累加,当上行链路的物理网卡组成有变化时对负载计数器进行清零;所述负载容器记录上行链路物理网卡个数,当上行链路物理网卡组成有变化时,进行实时变化;所述负载均衡器利用负载计数器和负载容器采集的数据,通过计算选择物理网卡将下一个报文发送出去,并调用各个物理网卡的发送函数实现报文的发送。

【技术特征摘要】
1.一种虚拟化网络上行链路负载均衡方法,其特征在于:构建上行链路发送报文逻辑结构,所述上行链路发送报文逻辑结构包括负载计数器,负载均衡器和负载容器,所述负载计数器和负载容器均连接到负载均衡器,所述负载均衡器连接到各个物理网卡;所述负载计数器对每个报文在进入负载均衡器之前进行累加,当上行链路的物理网卡组成有变化时对负载计数器进行清零;所述负载容器记录上行链路物理网卡个数,当上行链路物理网卡组成有变化时,进行实时变化;所述负载均衡器利用负载计数器和负载容器采集的数据,通过计算选择物理网卡将下一个报文发送出去,并调用各个物理网卡的发送函数实现报文的发送。2.根据权利要求1所述的虚拟化网络上行链路负载均衡方法,其特征在于:所述负载计数器的初始值为0,每当报文要从此上行链路向外发送...

【专利技术属性】
技术研发人员:秦海中
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1