CN107294865A - 一种软件交换机的负载均衡方法及软件交换机 - Google Patents
一种软件交换机的负载均衡方法及软件交换机 Download PDFInfo
- Publication number
- CN107294865A CN107294865A CN201710641738.XA CN201710641738A CN107294865A CN 107294865 A CN107294865 A CN 107294865A CN 201710641738 A CN201710641738 A CN 201710641738A CN 107294865 A CN107294865 A CN 107294865A
- Authority
- CN
- China
- Prior art keywords
- load
- network port
- node
- migration
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000005012 migration Effects 0.000 claims abstract description 83
- 238000013508 migration Methods 0.000 claims abstract description 83
- 230000009471 action Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 3
- 230000008859 change Effects 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种软件交换机的负载均衡方法,包括如下步骤:(1)设置网络端口绑定;(2)获取网络绑定中网络端口速率;(3)根据网络端口速率以及在一定周期内数据发送量计算排序参数;(4)按照排序参数对可用网络端口进行排序;(5)处理排序结果,判断是否触发负载迁移;(6)若触发负载迁移,则根据负载的类型,选取需要迁移的负载;(7)迁移负载,更改被迁移负载所使用的网络端口。本发明还公开了一种执行上述方法的软件交换机,利用上述方法,将网络端口速率纳入到负载均衡过程中,获取网络端口速率信息并判断负载类型,同时具备迁移前负载选择机制,能够合理地进行负载均衡。
Description
技术领域
本发明属于计算系统虚拟化网络技术领域,具体涉及一种软件交换机的负载均衡方法及软件交换机,适用于多虚拟机互联的虚拟化网络环境。
背景技术
虚拟化技术作为云计算技术的组件,应用规模不断扩大,虚拟机之间的网络规模更大,结构更加复杂,导致虚拟机网络配置越来越复杂,配置网络需要更长的时间、更加复杂的操作。虚拟机需要更加自动化、更加灵活的网络接入方式,虚拟机的网络需要可编程的控制接口,以实现网络的自动化配置,并支持访问控制、流量控制以及负载均衡等高级功能。
虚拟机网络接入可以使用内核网桥、MacVTap网桥以及软件交换机等方式。其中,内核网桥不支持可编程配置接口,功能简单,仅支持基本的二层交换功能,不适用于日益复杂的虚拟网络环境,因此使用较少。MacVTap网桥支持将虚拟机之间的流量卸载到外部交换机中,可以让各种流量统一使用现有的网络设备,实现各种流量的统一管理,但其实现流量转发的网络设备是基于硬件的,更新迭代速度缓慢,升级成本高,无法快速支持新的网络特性,也无法快速修补安全漏洞。
软件交换机可以根据需求快速迭代升级,升级成本低,有利于新技术的快速部署,可以使用OpenFlow协议进行动态配置,可以为虚拟化管理软件提供可干预的I/O模型,使虚拟化管理软件更好地控制虚拟机的网络连接,可以实现访问控制、流量控制以及负载均衡等高级网络功能,故而广泛应用于虚拟化场景以及云计算场景中。
软件交换机可以分为内核态软件交换机和用户态软件交换机两种;内核态软件交换机的转发组件运行在内核态,可以利用内核态已经实现的TCP/IP协议栈,并利用网络设备的内核态驱动从DMA区域中读取数据包,进行I/O操作。用户态软件交换机使用用户态网卡驱动程序和用户态的自定义网络协议栈,目的是减少内核态和用户态之间的数据包拷贝开销,提升数据包转发性能。
现有的软件交换机通常将至少两个物理网络端口绑定在一起,形成一个绑定(bond),以灵活高效地利用网卡资源。网络端口绑定有多种模式,其中热备份模式(activebackup)主要使用一个网络端口,其他网络端口作为热备份,当监测到主要使用的网络端口失效时,它立即切换到热备份的网络端口,保证了连接的可用性;流量均衡模式(loadbalance)在绑定的多个网络端口之间动态分配流量防止网络端口之间流量不均,可以充分利用网卡资源。此外,部分软件交换机还支持基于IEEE 802.3ad标准的链路层汇聚协议(Link Aggregation Control Protocol,LACP),该协议支持交换机之间动态协商汇聚的端口,可以实现更高的可用性以及负载均衡功能,其缺点主要在于该协议要求链路两端的交换机均支持LACP功能,对于虚拟化网络环境而言,虚拟机往往跨局域网部署,不同局域网之间网络设备不同,难以保证连接的每一段都开启LACP协议,因此其应用受到了限制。
由于半导体技术的不断发展,网络处理芯片的数据包处理能力越来越强,网卡的规格越来越多,不同规格的网卡具有不同的发送速率,例如100Gbps网卡、40Gbps网卡、10Gbps网卡以及1Gbps网卡等,每张网卡可能具备单端口、双端口以及四端口等。为提升性能和可靠性,一台服务器上可能存在多张相同规格或不同规格的网卡。
在现有软件交换机中,所使用的负载均衡方法主要为数据源负载均衡(sourceload balance)。该算法在单位时间内,记录不同网卡地址发送的数据量,然后将负载最重的网卡中的负载迁移一部分到负载最轻的网卡上。现有的软件交换机网络端口使用的负载均衡方法存在一些不足之处。
首先,当前的负载均衡方法只考虑了保持网络端口发送量在各个网络端口之间的均衡,并未考虑到网络端口速率的因素。在保证同等网络连接质量的前提下,高速率的网络端口可以承载的负载高于低速率的网络端口。
而现有的负载均衡方法不考虑网络端口速率因素,负载均衡后高速率和低速率网络端口的负载趋于平均分布,浪费了高速率网络端口的资源,同时也损害了运行在低速率网络端口上网络负载的性能。
其次,负载的类型主要可分为持续时间长、传输数据量大的长型流量;以及持续时间短、传输数据量小的短型流量。而现有负载均衡方法在迁移负载时未考虑负载的类型,不加选择地迁移可能导致性能损失。
发明内容
针对现有技术的以上缺陷或改进需求,本发明旨在提供一种能够在负载迁移时,根据流量特征进行负载迁移的软件交换机负载均衡方法,以及相应的软件交换机,从而保证长型流量的吞吐量,同时减小短型流量的时延。
为实现上述目的,按照本发明的一个方面,提供了一种软件交换机的负载均衡方法,包括如下步骤:
(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值最小的网络端口对应的节点位于队列Q头部,si值最大的网络端口对应的节点位于队列Q尾部;
步骤(5)中,计算队列Q头部节点与尾部节点对应网络端口的负载平均值,如果头部节点与算出的平均值相差大于预设值,则转至步骤(6);否则,在当前周期T结束后,转至步骤(3);
步骤(6)中,选取队列Q尾部节点对应的网络端口作为迁移源S,选取队列Q的头部节点对应的网络端口作为迁移目标M。
进一步地,步骤(3)中,使用哈希表存储绑定B内的所有排序参数si,哈希表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。
进一步地,步骤(4)中,将排序参数si直接插入到哈希表中的第i个节点;
步骤(5)中,遍历哈希表中存储的所有排序参数的值,最小值对应的节点记为A,最大值对应的节点记为B,如果A节点与B节点的排序参数相差超过预设值,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3);
步骤(6)中,选取步骤(5)中的A节点对应的网络端口作为迁移源S,选取步骤(5)中B节点对应的网络端口作为迁移目标M。
为了实现上述目的,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件交换机的负载均衡方法。
为了实现上述目的,本发明还提供了一种软件交换机,包括上述计算机可读存储介质以及处理器,处理器用于调用和处理计算机可读存储介质中存储的计算机程序。
总体而言,本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)合理性:本发明针对现有软件交换机中网络端口绑定负载均衡方法缺乏网络端口速率信息搜集和负载选择机制的问题,将网络端口速率纳入到负载均衡过程中,获取网络端口速率信息并判断负载类型,并具备迁移前负载选择机制,合理地进行负载均衡。
(2)高效性:本发明考虑到负载均衡操作中网络端口速率的因素,使用排序参数si=xi/Vi综合反映网络端口速率和网络端口负载情况:当si较小时,说明第i个网络端口速率高或者发送量小,即适合承载更多负载;当si较大时,说明第i个网络端口速率低或者发送量大,即应当承载更少的负载。通过si的计算,可以有效反映出第i个网络端口对网络负载的承载能力。使用si作为指标选择迁移源、迁移目标,可以充分考虑到网卡性能差异,充分利用网卡资源,可以使高速网络端口承载更多的网络负载,充分利用高速网络端口的硬件资源,避免资源浪费。
(3)灵活性:本发明中判断负载类型的阈值计算过程经过周期T重新进行一次,使得阈值随着网络端口发送数据量的改变而动态变化,可以适应不断变化的网络负载情况,实现更加灵活的负载均衡策略。
附图说明
图1为本发明的流程示意图;
图2为迁移负载选择算法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1为本发明负载均衡方法示意图,本发明提供的负载均衡方法,包括如下步骤:
(1)网络端口绑定步骤:
设置安装一台运行Linux操作系统服务器,在该服务器上,并部署系统虚拟化软件,系统虚拟化软件可以是Xen、KVM等虚拟化软件,并启动一个或更多的虚拟机。并启动软件交换机,包括Open vSwitch等。将系统中可用的至少两个网络端口设置为一个网络端口绑定B。
其中,Linux系统是指是一种自由和开放源代码的类UNIX操作系统。
系统虚拟化是指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统;每个虚拟计算机系统都拥有自己的虚拟硬件(如CPU、内存和设备等),来提供一个独立的虚拟机执行环境。
网络端口的设备类型可以为TAP类型或DPDK类型,TAP类型是使用内核驱动的网络端口,DPDK类型是使用DPDK用户态驱动的网络端口。
(2)获取网络端口速率步骤:
对于绑定B内的i个网络端口,调用ethtool接口,获取第i个网络端口的速率Vi。
其中,ethtool是Linux系统中用于显示并修改网络端口及其驱动的相关参数的一组工具。
在本实施例中,获取第i个网络端口速率Vi的方法如下:
(2.1)构造第i个网络端口的相关数据结构;
(2.2)将该数据结构的内存初始化为0;
(2.3)将该数据结构的名字设置为对应的第i个网络端口的名字;
(2.4)按照ethtool接口的格式,构造系统调用的数据结构,并将(2.1)中的信息填入到本步骤构造的数据结构中,根据Linux的相关定义,接口会回复网络速率相关信息;
(2.5)使用ioctl系统调用发送(2.4)中构造的数据结构,并在收到的回复中读取网络接口速率信息Vi。
(3)排序参数计算步骤:
在每个周期T开始时,计算网络端口绑定B中第i个网络端口的排序参数si为:
si=xi/Vi
其中,Vi为第i个网络端口的速率,xi为第i个网络端口在周期T内发送的数据量,周期T为全局周期,具体时间可由用户根据实际需求自行设定,本实施例默认为10ms。在其他实施例中,也可以是20ms。
依照前述公式,对每个绑定B内的第i个网络端口,计算排序参数si。
使用排序参数si综合反映网络端口速率和网络端口负载情况。当si较小时,说明第i个网络端口速率高或者发送量小,即适合承载更多负载;当si较大时,说明第i个网络端口速率低或者发送量大,即应当承载更少的负载。通过si的计算,可以有效反映出第i个网络端口对网络负载的承载能力。使用si作为指标选择迁移源、迁移目标,可以充分考虑到网卡性能差异,充分利用网卡资源。
(4)可用网络端口排序步骤:
将每个网络端口的si参数置于一个队列Q中,Q使用单链表实现。按照各网络端口的si值的大小顺序对该队列Q排序,使si值最小的网络端口对应的节点位于队列Q头部,si值最大的网络端口对应的节点位于队列Q尾部。
在本实施例中,排序参数存储方式为:
使用单链表存储绑定B内的所有排序参数si,单链表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。此种方法优点为实现简单。
在其他实施例中,排序参数存储方式也可以为:
使用哈希表存储绑定B内的所有排序参数si,哈希表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。此种方法优点为性能优良,查找十分快速。
在采用单链表存储排序的实施例中,为维持前述单链表的排序状态,在计算完所有网络端口的排序参数后,遍历该单链表中的节点,将代表各网络端口的节点分别插入到排序参数大于它的节点之后。
在采用哈希表存储排序参数的实施例中,在计算完每个网络端口的排序参数后,将代表各网络端口的排序参数si插入到哈希表中,不需保持内部数据的有序。
(5)迁移判断步骤:
计算队列Q头部节点与尾部节点的负载平均值,如果头部节点与算出的平均值相差大于预设的百分比,则转至步骤(6);否则,在当前周期T结束后,转至步骤(3)。
具体地,在使用单链表存储排序参数的实施例中,选取队列Q的头部节点和尾部节点对应的网络端口,读取其在单位周期内的数据发送量,并计算平均值。若头部节点的发送量与该平均值相差超过10%,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3)。
具体地,在使用哈希表存储排序参数的实施例中,遍历哈希表中存储的所有排序参数的值,最小值对应的节点记为A,最大值对应的节点记为B,如果A与B相差超过预设的百分比,例如20%,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3)。
(6)选取迁移网络端口步骤:
在使用单链表存储排序参数的实施例中,选取队列Q尾部节点对应的网络端口作为迁移源S,选取队列Q的头部节点对应的网络端口作为迁移目标M。
在使用哈希表存储排序参数的实施例中,选取步骤(5)中的A节点对应的网络端口作为迁移源S,选取步骤(5)中B节点对应的网络端口作为迁移目标M。
(7)负载迁移步骤:遍历迁移源S上的网络负载,计算负载类型阈值E,迁移低于阈值E的负载。将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将负载从迁移源S对应的网络端口中删除,添加到迁移目标M对应的网络端口上。
如图2所示,负载迁移的详细步骤如下:
(7.1)计算负载类型阈值E:
其中,n代表迁移源S上网络负载的数量,ej代表迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n。
(7.2)标记负载类型步骤:遍历迁移源S上的负载,若负载在周期T内发送数据量大于阈值E,则将其判断为长类型负载;若负载在周期T内发送数据量小于阈值E,则将其判断为短类型负载。
在本实施例中,通过赋予标记的方式识别负载类型,具体如下:遍历迁移源S上的每个网络负载,若该负载的发送数据量ej小于E,则置其标志位P为0,称此类型的负载为短类型负载;若该负载的发送数据量ej大于E,则置其标志位P为1,称此类型的负载为长类型负载。
在另外一种实施例中,通过队列的方式记录负载类型,具体如下:遍历迁移源S上的每个网络负载,若该负载的发送数据量ej小于E,则将代表该负载的节点加入队列L中,称此类型的负载为短类型负载;若该负载的发送数据量ej大于E,则将代表该负载的节点加入队列K中,称此类型的负载为长类型负载。
(7.3)判断及选取负载:在上步操作中,存在短类型负载,则选取短类型负载作为被迁移的负载;若不存在,则选取长类型负载作为被迁移的负载。
具体地,在本实施例中,利用步骤(7.2)的标记,遍历迁移源S上的每个网络负载,选取第1个访问到的标志位P为0的负载,记为F;若不存在标志位为0的负载,则选择第一个标志位为1的负载,记为F。
在另外一种实施例中,利用(7.2)提供的队列,判断队列L是否为空,若不为空,选取队列L中第一个节点代表的负载,记为F;若L为空,则选取队列K中第一个节点代表的负载,记为F。在(7.2)中的步骤可以保证队列L和队列K不同时为空。
(7.4)负载迁移步骤:将被迁移的负载使用的出口设置为迁移目标M对应的网络端口,并将被迁移的负载从迁移源S对应的网络端口中删除。当前周期T结束后,转至步骤(3)。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
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对应的网络端口的数据结构上;其中,
<mrow>
<mi>E</mi>
<mo>=</mo>
<mfrac>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>e</mi>
<mi>j</mi>
</msub>
</mrow>
<mi>n</mi>
</mfrac>
</mrow>
式中,n代表迁移源S上网络负载的数量,ej代表迁移源S上第j个负载在周期T内发送数据量,j的取值范围为0~n。
2.如权利要求1所述的一种软件交换机的负载均衡方法,其特征在于,步骤(7)包括如下子步骤:
(7.1)计算负载类型阈值E:
<mrow>
<mi>E</mi>
<mo>=</mo>
<mfrac>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>e</mi>
<mi>j</mi>
</msub>
</mrow>
<mi>n</mi>
</mfrac>
</mrow>
其中,
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对应的网络端口的数据结构上。
3.如权利要求2所述的一种软件交换机的负载均衡方法,其特征在于,步骤(7.4)中,当前周期T结束后,转至步骤(3)。
4.如权利要求1~3任意一项所述的一种软件交换机的负载均衡方法,其特征在于,步骤(3)中,使用单链表存储绑定B内的所有排序参数si,单链表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。
5.如权利要求4所述的一种软件交换机的负载均衡方法,其特征在于,
步骤(4)中,将绑定B中的所有si置于一个由单链表实现的队列Q中;按照各网络端口的si值的大小顺序对该队列Q排序,使si值最小的网络端口对应的节点位于队列Q头部,si值最大的网络端口对应的节点位于队列Q尾部;
步骤(5)中,计算队列Q头部节点与尾部节点对应网络端口的负载平均值,如果头部节点与算出的平均值相差大于预设值,则转至步骤(6);否则,在当前周期T结束后,转至步骤(3);
步骤(6)中,选取队列Q尾部节点对应的网络端口作为迁移源S,选取队列Q的头部节点对应的网络端口作为迁移目标M。
6.如权利要求1~3任意一项所述的一种软件交换机的负载均衡方法,其特征在于,步骤(3)中,使用哈希表存储绑定B内的所有排序参数si,哈希表的第i个节点存储指向第i个网络端口数据结构的指针以及排序参数si。
7.如权利要求6所述的一种软件交换机的负载均衡方法,其特征在于,
步骤(4)中,将排序参数si直接插入到哈希表中的第i个节点;
步骤(5)中,遍历哈希表中存储的所有排序参数的值,最小值对应的节点记为A,最大值对应的节点记为B,如果A节点与B节点的排序参数相差超过预设值,则触发迁移动作,转至步骤(6);否则,在当前周期T结束后,转至步骤(3);
步骤(6)中,选取步骤(5)中的A节点对应的网络端口作为迁移源S,选取步骤(5)中B节点对应的网络端口作为迁移目标M。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的软件交换机的负载均衡方法。
9.一种软件交换机,其特征在于,包括如权利要求8所述的计算机可读存储介质以及处理器,处理器用于调用和处理计算机可读存储介质中存储的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710641738.XA CN107294865B (zh) | 2017-07-31 | 2017-07-31 | 一种软件交换机的负载均衡方法及软件交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710641738.XA CN107294865B (zh) | 2017-07-31 | 2017-07-31 | 一种软件交换机的负载均衡方法及软件交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107294865A true CN107294865A (zh) | 2017-10-24 |
CN107294865B CN107294865B (zh) | 2019-12-06 |
Family
ID=60104443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710641738.XA Active CN107294865B (zh) | 2017-07-31 | 2017-07-31 | 一种软件交换机的负载均衡方法及软件交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107294865B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390798A (zh) * | 2018-02-28 | 2018-08-10 | 郑州云海信息技术有限公司 | 服务器双网口工作的控制方法、装置、设备及存储介质 |
CN110380992A (zh) * | 2019-07-24 | 2019-10-25 | 南京中孚信息技术有限公司 | 报文处理方法、装置及网络流量采集设备 |
CN114448899A (zh) * | 2022-01-20 | 2022-05-06 | 天津大学 | 一种均衡数据中心网络负载的方法 |
WO2023061119A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 一种流的搬移方法及网络设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778048A (zh) * | 2010-02-22 | 2010-07-14 | 浪潮(北京)电子信息产业有限公司 | 数据转发方法、负载均衡调度器和负载均衡系统 |
CN102081552A (zh) * | 2009-12-01 | 2011-06-01 | 华为技术有限公司 | 一种物理机到虚拟机的在线迁移方法、装置和系统 |
CN102096461A (zh) * | 2011-01-13 | 2011-06-15 | 浙江大学 | 基于虚拟机迁移和负载感知整合的云数据中心节能方法 |
CN102495857A (zh) * | 2011-11-21 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种分布式数据库的负载均衡方法 |
CN102724277A (zh) * | 2012-05-04 | 2012-10-10 | 华为技术有限公司 | 虚拟机热迁移和部署的方法、服务器及集群系统 |
CN102884763A (zh) * | 2012-06-30 | 2013-01-16 | 华为技术有限公司 | 跨数据中心的虚拟机迁移方法、服务控制网关及系统 |
CN102932418A (zh) * | 2012-09-27 | 2013-02-13 | 东软集团股份有限公司 | 一种云应用部署方法和装置 |
CN103701923A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | 虚拟机之间负载均衡的实现方法和装置 |
CN103888501A (zh) * | 2012-12-24 | 2014-06-25 | 华为技术有限公司 | 虚拟机迁移方法和装置 |
EP2765742A1 (en) * | 2011-10-05 | 2014-08-13 | NEC Corporation | Load reduction system, and load reduction method |
CN104468462A (zh) * | 2013-09-12 | 2015-03-25 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的报文转发方法及设备 |
CN104579941A (zh) * | 2015-01-05 | 2015-04-29 | 北京邮电大学 | 一种OpenFlow交换机中的报文分类方法 |
CN105703976A (zh) * | 2016-04-11 | 2016-06-22 | 浪潮集团有限公司 | 一种交换机端口状态的监控方法 |
-
2017
- 2017-07-31 CN CN201710641738.XA patent/CN107294865B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081552A (zh) * | 2009-12-01 | 2011-06-01 | 华为技术有限公司 | 一种物理机到虚拟机的在线迁移方法、装置和系统 |
CN101778048A (zh) * | 2010-02-22 | 2010-07-14 | 浪潮(北京)电子信息产业有限公司 | 数据转发方法、负载均衡调度器和负载均衡系统 |
CN102096461A (zh) * | 2011-01-13 | 2011-06-15 | 浙江大学 | 基于虚拟机迁移和负载感知整合的云数据中心节能方法 |
EP2765742A1 (en) * | 2011-10-05 | 2014-08-13 | NEC Corporation | Load reduction system, and load reduction method |
CN102495857A (zh) * | 2011-11-21 | 2012-06-13 | 北京新媒传信科技有限公司 | 一种分布式数据库的负载均衡方法 |
CN102724277A (zh) * | 2012-05-04 | 2012-10-10 | 华为技术有限公司 | 虚拟机热迁移和部署的方法、服务器及集群系统 |
CN102884763A (zh) * | 2012-06-30 | 2013-01-16 | 华为技术有限公司 | 跨数据中心的虚拟机迁移方法、服务控制网关及系统 |
CN102932418A (zh) * | 2012-09-27 | 2013-02-13 | 东软集团股份有限公司 | 一种云应用部署方法和装置 |
CN103888501A (zh) * | 2012-12-24 | 2014-06-25 | 华为技术有限公司 | 虚拟机迁移方法和装置 |
CN104468462A (zh) * | 2013-09-12 | 2015-03-25 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的报文转发方法及设备 |
CN103701923A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | 虚拟机之间负载均衡的实现方法和装置 |
CN104579941A (zh) * | 2015-01-05 | 2015-04-29 | 北京邮电大学 | 一种OpenFlow交换机中的报文分类方法 |
CN105703976A (zh) * | 2016-04-11 | 2016-06-22 | 浪潮集团有限公司 | 一种交换机端口状态的监控方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390798A (zh) * | 2018-02-28 | 2018-08-10 | 郑州云海信息技术有限公司 | 服务器双网口工作的控制方法、装置、设备及存储介质 |
CN110380992A (zh) * | 2019-07-24 | 2019-10-25 | 南京中孚信息技术有限公司 | 报文处理方法、装置及网络流量采集设备 |
CN110380992B (zh) * | 2019-07-24 | 2021-01-29 | 南京中孚信息技术有限公司 | 报文处理方法、装置及网络流量采集设备 |
WO2023061119A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 一种流的搬移方法及网络设备 |
CN114448899A (zh) * | 2022-01-20 | 2022-05-06 | 天津大学 | 一种均衡数据中心网络负载的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107294865B (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10412021B2 (en) | Optimizing placement of virtual machines | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
CN107294865B (zh) | 一种软件交换机的负载均衡方法及软件交换机 | |
EP4136532A1 (en) | Storage transactions with predictable latency | |
US9998532B2 (en) | Computer-based, balanced provisioning and optimization of data transfer resources for products and services | |
CN106959893B (zh) | 加速器、用于加速器的内存管理方法以及数据处理系统 | |
CN102369688A (zh) | 资源动态调整方法和调度设备 | |
US11914894B2 (en) | Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system | |
US11379405B2 (en) | Internet small computer interface systems extension for remote direct memory access (RDMA) for distributed hyper-converged storage systems | |
CN104883302B (zh) | 一种数据包转发的方法、装置及系统 | |
US20210326177A1 (en) | Queue scaling based, at least, in part, on processing load | |
US11487567B2 (en) | Techniques for network packet classification, transmission and receipt | |
WO2024046188A1 (zh) | 一种云环境下的i/o卸载方法、设备、系统及存储介质 | |
CN104951352A (zh) | 一种数据流的迁移方法和设备 | |
CN103918239A (zh) | 负载均衡方法、装置、系统及计算机可读介质 | |
CN111143034A (zh) | 一种控制网络数据转发平面的方法、装置及系统 | |
CN117501243A (zh) | 用于管理服务网格的交换机 | |
EP3928205A1 (en) | I/o to unpinned memory supporting memory overcommit and live migration of virtual machines | |
CN117332881B (zh) | 分布式训练方法及电子设备 | |
WO2024159778A1 (zh) | 一种主机调度方法、系统、设备及非易失性可读存储介质 | |
US20200228467A1 (en) | Queue-to-port allocation | |
US11928517B2 (en) | Feature resource self-tuning and rebalancing | |
JPH04288638A (ja) | コンピュータシステム | |
KR101435499B1 (ko) | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 | |
CN107087010B (zh) | 中间数据传输方法及系统、分布式系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |