一种软件交换机的负载均衡方法及软件交换机技术

技术编号:16460302 阅读:132 留言:0更新日期:2017-10-26 00:46
本发明专利技术公开了一种软件交换机的负载均衡方法,包括如下步骤:(1)设置网络端口绑定;(2)获取网络绑定中网络端口速率;(3)根据网络端口速率以及在一定周期内数据发送量计算排序参数;(4)按照排序参数对可用网络端口进行排序;(5)处理排序结果,判断是否触发负载迁移;(6)若触发负载迁移,则根据负载的类型,选取需要迁移的负载;(7)迁移负载,更改被迁移负载所使用的网络端口。本发明专利技术还公开了一种执行上述方法的软件交换机,利用上述方法,将网络端口速率纳入到负载均衡过程中,获取网络端口速率信息并判断负载类型,同时具备迁移前负载选择机制,能够合理地进行负载均衡。

A load balancing method and software switch for software switch

The invention discloses a load balancing method for software switch, which comprises the following steps: (1) setting up a network port binding; (2) access network port network binding rate; (3) calculating the sorting parameters according to the network port rate and in a certain period of data; (4) to sort the available network port according to the sorting parameters; (5) processing the results of sequencing, determine whether the trigger load transfer; (6) if the trigger load migration, according to the load type, choose to transfer the load; (7) to transfer the load change, by using the load transfer network port. The invention also discloses a software switch for executing the method, using the above method, the network port rate into the load balancing process, network access port rate information and judge the type of load, at the same time with the load selection mechanism before migration, to reasonably for load balancing.

【技术实现步骤摘要】
一种软件交换机的负载均衡方法及软件交换机
本专利技术属于计算系统虚拟化网络
,具体涉及一种软件交换机的负载均衡方法及软件交换机,适用于多虚拟机互联的虚拟化网络环境。
技术介绍
虚拟化技术作为云计算技术的组件,应用规模不断扩大,虚拟机之间的网络规模更大,结构更加复杂,导致虚拟机网络配置越来越复杂,配置网络需要更长的时间、更加复杂的操作。虚拟机需要更加自动化、更加灵活的网络接入方式,虚拟机的网络需要可编程的控制接口,以实现网络的自动化配置,并支持访问控制、流量控制以及负载均衡等高级功能。虚拟机网络接入可以使用内核网桥、MacVTap网桥以及软件交换机等方式。其中,内核网桥不支持可编程配置接口,功能简单,仅支持基本的二层交换功能,不适用于日益复杂的虚拟网络环境,因此使用较少。MacVTap网桥支持将虚拟机之间的流量卸载到外部交换机中,可以让各种流量统一使用现有的网络设备,实现各种流量的统一管理,但其实现流量转发的网络设备是基于硬件的,更新迭代速度缓慢,升级成本高,无法快速支持新的网络特性,也无法快速修补安全漏洞。软件交换机可以根据需求快速迭代升级,升级成本低,有利于新技术的快速部署,可以使用OpenFlow协议进行动态配置,可以为虚拟化管理软件提供可干预的I/O模型,使虚拟化管理软件更好地控制虚拟机的网络连接,可以实现访问控制、流量控制以及负载均衡等高级网络功能,故而广泛应用于虚拟化场景以及云计算场景中。软件交换机可以分为内核态软件交换机和用户态软件交换机两种;内核态软件交换机的转发组件运行在内核态,可以利用内核态已经实现的TCP/IP协议栈,并利用网络设备的内核态驱动从DMA区域中读取数据包,进行I/O操作。用户态软件交换机使用用户态网卡驱动程序和用户态的自定义网络协议栈,目的是减少内核态和用户态之间的数据包拷贝开销,提升数据包转发性能。现有的软件交换机通常将至少两个物理网络端口绑定在一起,形成一个绑定(bond),以灵活高效地利用网卡资源。网络端口绑定有多种模式,其中热备份模式(activebackup)主要使用一个网络端口,其他网络端口作为热备份,当监测到主要使用的网络端口失效时,它立即切换到热备份的网络端口,保证了连接的可用性;流量均衡模式(loadbalance)在绑定的多个网络端口之间动态分配流量防止网络端口之间流量不均,可以充分利用网卡资源。此外,部分软件交换机还支持基于IEEE802.3ad标准的链路层汇聚协议(LinkAggregationControlProtocol,LACP),该协议支持交换机之间动态协商汇聚的端口,可以实现更高的可用性以及负载均衡功能,其缺点主要在于该协议要求链路两端的交换机均支持LACP功能,对于虚拟化网络环境而言,虚拟机往往跨局域网部署,不同局域网之间网络设备不同,难以保证连接的每一段都开启LACP协议,因此其应用受到了限制。由于半导体技术的不断发展,网络处理芯片的数据包处理能力越来越强,网卡的规格越来越多,不同规格的网卡具有不同的发送速率,例如100Gbps网卡、40Gbps网卡、10Gbps网卡以及1Gbps网卡等,每张网卡可能具备单端口、双端口以及四端口等。为提升性能和可靠性,一台服务器上可能存在多张相同规格或不同规格的网卡。在现有软件交换机中,所使用的负载均衡方法主要为数据源负载均衡(sourceloadbalance)。该算法在单位时间内,记录不同网卡地址发送的数据量,然后将负载最重的网卡中的负载迁移一部分到负载最轻的网卡上。现有的软件交换机网络端口使用的负载均衡方法存在一些不足之处。首先,当前的负载均衡方法只考虑了保持网络端口发送量在各个网络端口之间的均衡,并未考虑到网络端口速率的因素。在保证同等网络连接质量的前提下,高速率的网络端口可以承载的负载高于低速率的网络端口。而现有的负载均衡方法不考虑网络端口速率因素,负载均衡后高速率和低速率网络端口的负载趋于平均分布,浪费了高速率网络端口的资源,同时也损害了运行在低速率网络端口上网络负载的性能。其次,负载的类型主要可分为持续时间长、传输数据量大的长型流量;以及持续时间短、传输数据量小的短型流量。而现有负载均衡方法在迁移负载时未考虑负载的类型,不加选择地迁移可能导致性能损失。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术旨在提供一种能够在负载迁移时,根据流量特征进行负载迁移的软件交换机负载均衡方法,以及相应的软件交换机,从而保证长型流量的吞吐量,同时减小短型流量的时延。为实现上述目的,按照本专利技术的一个方面,提供了一种软件交换机的负载均衡方法,包括如下步骤:(1)将计算机系统内可用的至少两个网络端口设置为一个网络端口绑定B;(2)获取绑定B内第i个网络端口的速率Vi;(3)在每个周期T开始时,获取网络端口绑定B中第i个网络端口的排序参数si如下:si=xi/Vi式中,Vi为第i个网络端口的速率,xi为第i个网络端口在周期T内发送的数据量,周期T为全局周期;(4)将步骤(3)获取的si置入单链表或哈希表形式的队列Q中;(5)确定si的最大值和最小值在队列Q中对应的最大值节点和最小值节点,并与预设值进行比较,根据比较结果进行迁移判断;如果比较结果符合触发迁移动作的条件,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3);(6)步骤(5)中触发迁移动作时,选取队列Q的最大值节点对应的网络端口作为迁移源S,选取队列Q的最小值节点对应的网络端口作为迁移目标M;(7)根据步骤(6)确定的迁移源S和迁移目标M,遍历迁移源S上的网络负载,计算负载类型阈值E,迁移低于阈值E的负载;将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将被迁移的负载从迁移源S对应的网络端口的数据结构中删除,添加到迁移目标M对应的网络端口的数据结构上;其中,式中,n代表迁移源S上网络负载的数量,ej代表迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n。2、进一步地,步骤(7)包括如下子步骤:(7.1)计算负载类型阈值E:其中,n-迁移源S上网络负载的数量,ej-迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n;(7.2)遍历迁移源S上的负载,若负载在周期T内发送数据量大于阈值E,则将其判断为长类型负载;若负载在周期T内发送数据量小于阈值E,则将其判断为短类型负载;(7.3)在步骤(7.2)中,存在短类型负载,则选取短类型负载作为被迁移的负载,转至步骤(7.4);若不存在短类型负载,则选取长类型负载中发送数据量最少的负载,作为被迁移的负载,转至步骤(7.4);(7.4)将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将被迁移的负载从迁移源S对应的网络端口数据结构中删除,并添加到迁移目标M对应的网络端口的数据结构上。进一步地,步骤(7.4)中,当前周期T结束后,转至步骤(3)。进一步地,步骤(3)中,使用单链表存储绑定B内的所有排序参数si,单链表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。进一步地,步骤(4)中,将绑定B中的所有si置于一个由单链表实现的队列Q中;按照各网络端口的si值的大小顺序对该队列Q排序,使si值最小的网络端口对应的节点本文档来自技高网
...
一种软件交换机的负载均衡方法及软件交换机

【技术保护点】
一种软件交换机的负载均衡方法,其特征在于,包括如下步骤:(1)将计算机系统内可用的至少两个网络端口设置为一个网络端口绑定B;(2)获取绑定B内第i个网络端口的速率Vi;(3)在每个周期T开始时,获取网络端口绑定B中第i个网络端口的排序参数si如下:si=xi/Vi式中,Vi为第i个网络端口的速率,xi为第i个网络端口在周期T内发送的数据量,周期T为全局周期;(4)将步骤(3)获取的si置入单链表或哈希表形式的队列Q中;(5)确定si的最大值和最小值在队列Q中对应的最大值节点和最小值节点,并与预设值进行比较,根据比较结果进行迁移判断;如果比较结果符合触发迁移动作的条件,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3);(6)步骤(5)中触发迁移动作时,选取队列Q的最大值节点对应的网络端口作为迁移源S,选取队列Q的最小值节点对应的网络端口作为迁移目标M;(7)根据步骤(6)确定的迁移源S和迁移目标M,遍历迁移源S上的网络负载,计算负载类型阈值E,迁移低于阈值E的负载;将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将被迁移的负载从迁移源S对应的网络端口的数据结构中删除,添加到迁移目标M对应的网络端口的数据结构上;其中,...

【技术特征摘要】
1.一种软件交换机的负载均衡方法,其特征在于,包括如下步骤:(1)将计算机系统内可用的至少两个网络端口设置为一个网络端口绑定B;(2)获取绑定B内第i个网络端口的速率Vi;(3)在每个周期T开始时,获取网络端口绑定B中第i个网络端口的排序参数si如下:si=xi/Vi式中,Vi为第i个网络端口的速率,xi为第i个网络端口在周期T内发送的数据量,周期T为全局周期;(4)将步骤(3)获取的si置入单链表或哈希表形式的队列Q中;(5)确定si的最大值和最小值在队列Q中对应的最大值节点和最小值节点,并与预设值进行比较,根据比较结果进行迁移判断;如果比较结果符合触发迁移动作的条件,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3);(6)步骤(5)中触发迁移动作时,选取队列Q的最大值节点对应的网络端口作为迁移源S,选取队列Q的最小值节点对应的网络端口作为迁移目标M;(7)根据步骤(6)确定的迁移源S和迁移目标M,遍历迁移源S上的网络负载,计算负载类型阈值E,迁移低于阈值E的负载;将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将被迁移的负载从迁移源S对应的网络端口的数据结构中删除,添加到迁移目标M对应的网络端口的数据结构上;其中,式中,n代表迁移源S上网络负载的数量,ej代表迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n。2.如权利要求1所述的一种软件交换机的负载均衡方法,其特征在于,步骤(7)包括如下子步骤:(7.1)计算负载类型阈值E:其中,n-迁移源S上网络负载的数量,ej-迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n;(7.2)遍历迁移源S上的负载,若负载在周期T内发送数据量大于阈值E,则将其判断为长类型负载;若负载在周期T内发送数据量小于阈值E,则将其判断为短类型负载;(7.3)在步骤(7.2)中,存在短类型负载,则选取短类型负载作为被迁移的负载,转至步骤(7.4);若不存在短类型负载,则选取长类型负载中发送数据量最少的负载,作为被迁移的负载,转至步骤(7.4);(7.4)将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并...

【专利技术属性】
技术研发人员:童薇冯丹刘景宁孙博郭甜
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1