调整转发处理线程的交换端口的方法和相关装置与流程

文档序号:15366245发布日期:2018-09-07 22:02阅读:158来源:国知局

本发明涉及计算机技术领域,具体涉及调整转发处理线程的交换端口的方法和相关装置。



背景技术:

虚拟化技术是一种将底层硬件设备与上层操作系统、应用程序分离的去耦合技术,如图1所示,引入了虚拟机监控器(VMM,Virtual Machine Monitor)层来管理底层硬件资源,创建与底层硬件无关的虚拟机(VM,Virtual Machine)供上层操作系统和应用程序使用。

网络功能虚拟化(NFV,Network Function Virtualization)技术可使得移动运营商在如何建立自己网络和实施新服务等方面发生翻天覆地的变化。通过虚拟化技术,实行软硬件分离,运营商可以提供更快更好的网络服务,帮助运营商与互联网厂商展开竞争。其中,应用NFV技术的一种终极目标是通过基于行业标准的x86服务器、存储和交换设备,来取代通信网的那些私有专用的网元设备。这样原来运行的网络功能,例如防火墙、流量计费、路由服务等网元设备在NFV场景下会迁移到VM中运行,从而节省成本,提高资源的利用率和灵活控制的能力。这对虚拟化场景中的虚拟交换机(vSwitch,Virtual Switch)的交换能力,丢包率和时延等性能规格提出了更高的要求。

在NFV领域,有一种业务链(ServiceChain)机制,即在移动、固定宽带和数据中心网络边缘,特定用户的特定业务流可需要按顺序通过多个虚拟应用服务(VAS,Virtual Appliance Service)实体进行逐个处理。例如超文本传输协议(HTTP,HyperText Transfer Protocol)万维网(Web)上的业务流需依次串接内容过滤、缓存服务和防火墙这三个VAS实体来进行相应处理,然后处理后的业务流再进入英特网(Internet)。在运营商看来,每个用户对应一个业务套餐,一个业务套餐可对应一个ServiceChain,其内容可以更改,即使用的服务或VAS序列可以变更,这样可以达到灵活控制的目的。

由于网络虚拟化的过程中,在NFV场景下会将网络吞吐量较大的服务转移运行在VM中,使得跨物理主机的VM和同物理主机的VM均需要较大的网络流量交换能力,这些网络流量交换能力主要由vSwitch提供。然而vSwitch负责网络流量交换,如果使用单个中央处理器(CPU,Central Processing Unit)则可能会成为瓶颈,因此,业内考虑引入多核并行处理能力以提高vSwitch的网络流量交换性能。

在vSwitch使用多核转发机制的情况下会同时使用多个CPU处理,此时每个VM的每个端口(port)和物理网卡的上行链路端口(uplink port)都需要交给某个CPU来处理,从而可以利用多CPU处理能力。其中,vSwitch中的每个转发处理线程对应不同的CPU。关于某个CPU(对应于转发处理线程)需要处理哪些Port上的流量,现有技术在业务运行前就将CPU(对应于转发处理线程)和Port进行固定绑定,例如CPU1与port1固定绑定(相当于CPU1对应的转发处理线程与port1固定绑定),CPU2与port2固定绑定(相当于CPU2对应的转发处理线程与port2固定绑定)。本发明的发明人在研究和实践过程中发现,现有技术始终将转发处理线程和Port进行固定绑定使得其难以灵活的适应网络流量的变化,同时也影响资源利用效率。



技术实现要素:

本发明实施例提供调整转发处理线程的交换端口的方法和装置,以期提高转发资源利用率和网络流量变化的自适应能力。

本发明实施例第一方面提供一种调整转发处理线程的交换端口的方法,包括:检测宿主机中的虚拟交换机vSwitch的K个转发处理线程的状态属性;

在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

结合第一方面,在第一方面的第一种可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所转发处理的关键流量实际占用的转发资源额度,所述关键流量的业务优先级高于优先级阈值。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述调整触发条件包括如下条件中的至少一个:

转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高、所述K个转发处理线程之间的负载均衡度提高。

结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,包括:

基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

结合第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

结合第一方面的第二种可能的实施方式,在第一方面的第五种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

结合第一方面的第二种可能的实施方式,在第一方面的第六种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

结合第一方面的第二种可能的实施方式,在第一方面的第七种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所转发处理的关键流量实际占用的转发资源额度,

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

结合第一方面的第六种可能的实施方式,在第一方面的第八种可能的实施方式中,所述亲和性节点为非统一内存访问的体系结构NUMA节点。

结合第一方面或第一方面的第一种至第八种可能的实施方式中的任意一种实施方式,在第一方面的第九种可能的实施方式中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

本发明实施例第二方面提供一种调整转发处理线程的交换端口的装置,包括:检测单元,用于检测宿主机中的虚拟交换机vSwitch的K个转发处理线程的状态属性;

调整单元,用于在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

结合第二方面,在第二方面的第一种可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所转发处理的关键流量实际占用的转发资源额度,所述关键流量的业务优先级高于优先级阈值。

结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述调整触发条件包括如下条件中的至少一个:

转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高、所述K个转发处理线程之间的负载均衡度提高。

结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,所述调整单元具体用于,基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

结合第二方面的第二种可能的实施方式,在第二方面的第四种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;

所述调整单元具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

所述调整单元具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

所述调整单元具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

结合第二方面的第二种可能的实施方式,在第二方面的第五种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;

所述调整单元具体用于,若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

所述调整单元具体用于,若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

结合第二方面的第二种可能的实施方式,在第二方面的第六种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述调整单元具体用于,在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

结合第二方面的第二种可能的实施方式,在第二方面的第七种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所转发处理的关键流量实际占用的转发资源额度,

其中,所述调整单元具体用于,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

所述调整单元具体用于,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

结合第二方面的第六种可能的实施方式,在第二方面的第八种可能的实施方式中,所述亲和性节点为非统一内存访问的体系结构NUMA节点。

结合第二方面或第二方面的第一种至第八种可能的实施方式中的任意一种实施方式,在第二方面的第九种可能的实施方式中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

本发明第三方面提供一种计算节点,包括:

硬件层、运行在上述硬件层之上的宿主机、以及运行在上述宿主机之上的至少一个虚拟机,其中,所述硬件层包括K个处理器,所述宿主机中的虚拟交换机vSwitch的K个转发处理线程与所述K个处理器之间一一对应;

其中,所述宿主机用于,检测所述宿主机中的所述vSwitch的K个转发处理线程的状态属性;在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

结合第三方面,在第三方面的第一种可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所转发处理的关键流量实际占用的转发资源额度,所述关键流量的业务优先级高于优先级阈值。

结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述调整触发条件包括如下条件中的至少一个:

转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高、所述K个转发处理线程之间的负载均衡度提高。

结合第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,在所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,所述宿主机具体用于基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

结合第三方面的第二种可能的实施方式,在第三方面的第四种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,所述宿主机具体用于,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

结合第三方面的第二种可能的实施方式,在第三方面的第五种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,所述宿主机具体用于,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

结合第三方面的第二种可能的实施方式,在第三方面的第六种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,所述宿主机具体用于,

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

结合第三方面的第二种可能的实施方式,在第三方面的第七种可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所转发处理的关键流量实际占用的转发资源额度,

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,所述宿主机具体用于

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

结合第三方面的第六种可能的实施方式,在第三方面的第八种可能的实施方式中,所述亲和性节点为非统一内存访问的体系结构NUMA节点。

结合第三方面或第三方面的第一种至第八种可能的实施方式中的任意一种实施方式,在第三方面的第九种可能的实施方式中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

可以看出,本发明实施例的技术方案中,通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的虚拟化架构示意图;

图2-a和图2-b是本发明实施例提供的另外两种虚拟化架构示意图;

图3是本发明实施例提供的一种调整转发处理线程的交换端口的方法的流程示意图;

图4-a是本发明实施例提供的另一种调整转发处理线程的交换端口的方法的流程示意图;

图4-b是本发明实施例提供的一种交换端口和转发处理线程之间的服务关系的示意图;

图5是本发明实施例提供的另一种调整转发处理线程的交换端口的方法的流程示意图;

图6是本发明实施例提供的另一种调整转发处理线程的交换端口的方法的流程示意图;

图7-a是本发明实施例提供的一种调整转发处理线程的交换端口的装置的示意图;

图7-b和7-c是本发明实施例提供的两种调整转发处理线程的交换端口的装置的部署位置的示意图;

图8是本发明实施例提供的一种计算节点的示意图;

图9是本发明实施例提供的一种计算机设备的示意图。

具体实施方式

本发明实施例提供调整转发处理线程的交换端口的方法和装置,以期提高转发资源利用率和网络流量变化的自适应能力。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

以下分别进行详细说明。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素;

虚拟机VM:

通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。

硬件层:

虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某计算节点的硬件层可包括CPU和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内存管理单元(IOMMU,Input/Output Memory Management Unit),其中IOMMU可用于虚拟机物理地址和Host物理地址的转换。

宿主机(Host):

作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。

参见图2-a和图2-b,图2-a和图2-b是本发明实施例提出的两种计算节点的虚拟化体系架构的示意图,该体系架构主要包括三个层次:硬件层、Host和虚拟机(VM)。硬件层可包括网卡。Host中部署有虚拟交换机(vSwitch)。所述硬件层还包括K个处理器,其中,所述宿主机中的虚拟交换机vSwitch的K个转发处理线程与所述K个处理器之间一一对应。

其中,图2-a所示架构中不同的虚拟交换端口与运行于所述宿主机之上的不同虚拟机(单个虚拟机包括一个交换端口)连接。图2-b所示架构中多个的虚拟交换端口可与运行于所述宿主机之上的同一虚拟机(单个虚拟机可能包括多个交换端口)连接。

本发明实施例的技术方案可基于图2-a或图2-b所示架构或其变形架构来具体实施。

参见图3,图3是本发明的一个实施例提供的一种调整转发处理线程的交换端口的方法的流程示意图,本发明的一个实施例提供的一种调整转发处理线程的交换端口的方法可包括:

301、检测宿主机(Host)中的虚拟交换机(vSwitch)的K个转发处理线程的状态属性。

其中,可实时的或周期性的检测Host中的vSwitch的K个转发处理线程的状态属性,也可在一些触发条件的触发下检测Host中的vSwitch的K个转发处理线程的状态属性。其中,触发条件例如可以是设备重启,部件更换、虚拟机迁移等等触发条件。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度(即转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度),其中,所述关键流量的业务优先级高于优先级阈值。

302、在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,运行于所述宿主机之上的虚拟机可提供VAS。

其中,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口可包括:增加、删除和/或改变所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。

可以看出,本实施例中通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明的一些可能的实施方式之中,所述调整触发条件包括如下条件中的至少一个:转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

可选的,在本发明的一些可能的实施方式之中,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小(如转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异不超出预设范围)、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高(如转发处理线程的处理器和其所服务的交换端口之间的亲和性高于预设范围)、所述K个转发处理线程之间的负载均衡度提高(例如所述K个转发处理线程之间的负载均衡度高于预设范围)。

举例来说,假设所述调整触发条件包括如下条件:转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围,那么,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可使得所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小(如转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异不超出预设范围)。

又举例来说,假设所述调整触发条件包括如下条件:转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围,那么,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可使得所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高(如转发处理线程的处理器和其所服务的交换端口之间的亲和性高于预设范围)。

又举例来说,假设所述调整触发条件包括如下条件:所述K个转发处理线程之间的负载均衡度低于预设范围,那么所述K个转发处理线程之间的负载均衡度提高(例如所述K个转发处理线程之间的负载均衡度高于预设范围。

其中,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

可选的,在本发明的一些可能的实施方式之中,所述转发处理线程的状态属性例如可以包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可包括:

基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

其中,例如负载均衡度越高表示负载越均衡,而负载均衡度越低表示负载越不均衡。其中,假设负载均衡度的取值范围是0~1,那么第二阈值例如可以等于0.5、0.6、0.8、0.9或其他值。

其中,例如也可用于K个转发处理线程的剩余转发资源额度的方差来表征负载均衡度,其中,方差越大表示负载均衡度越低,方差越大表示负载均衡度越高,以此类推。

可以理解,通过调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

可根据转发处理线程的总转发资源额度来确定第三阈值的取值。假设转发处理线程(转发处理线程x1或x2)的总转发资源额度为100,那么第三阈值例如可以等于10、16、8、20或其他值,其他情况以此类推。

可以理解,当转发处理线程的剩余转发资源额度较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

其中,剩余转发资源额度占比是值剩余转发资源额度占总转发资源额度的比例。其中,第四阈值例如可等于5%、10%、15、17%、9%、20%、25%或其他值。

可以理解,当转发处理线程的剩余转发资源额度占比较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

其中,发明人研究和实现发现,属同一个亲和性节点的处理器和交换端口之间的数据中转效率通常会高于分属不同亲和性节点的处理器和交换端口之间的数据中转效率,因此通过调整服务交换端口的转发处理线程,使得转发处理线程的处理器与所服务的交换端口尽量归属于相同亲和性节点,这样有利于提高相关数据中转效率。

可选的,在本发明一些可能的实施方式中,亲和性节点可为非统一内存访问的体系结构(NUMA,Non Uniform Memory Access Architecture)节点或其它可描述对象亲和性的节点。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度。

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

假设流量的优先级级别存在3个,即1级、2级和3级,上述优先级阈值例如可等于1或2,假设流量的优先级级别存在4个,即1级、2级、3级和4级,优先级阈值例如可等于1、2或3,以此类推。可根据具体需要来确定优先级阈值的取值。

可以理解,上述举例中引入了有利于确保高优先级流量的转发资源额度的可能机制。例如心跳包的优先级级别通常高于其他流量的优先级级别,因此基于上述举例的机制有利于尽量确保心跳包的转发资源额度,又例如一些核心业务流量的优先级级别通常高于普通业务流量的优先级级别,因此基于上述举例的机制有利于尽量确保核心业务流量的转发资源额度,有利于提高虚拟架构下的转发资源的有效利用率和网络流量变化的自适应能力。

可以理解,上述举例只是给出了在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的一些可能实现方式,当然还可能有其他多种可能的调整实现方式,本发明也不限于上述举例的方式,其他可能方式此处不再一一举例。

为便于更好的理解和实施本发明实施例的上述方案,下面结合一些具体的场景进行举例说明。

参见图4-a,图4-a是本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法的流程示意图,本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法可包括:

401、在计算节点上电之后,计算节点中的Host初始配置Host中的vSwitch中的转发处理线程所服务的交换端口。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,一个转发处理线程可服务一个或多个交换端口。

其中,vSwitch中的一个转发处理线程和交换端口之间的服务关系可如图4-b举例所示。

其中,在NFV领域的ServiceChain场景中,往往存在VAS序列的调整和变化,例如:VAS所运行的物理主机存在软件升级和硬件故障的场景,此时该物理主机上的VM需要进行迁移。其中,在ServiceChain中VAS的迁移场景中,VAS所在vSwitch上的转发流策略,需要迁移到VAS迁移的目标vSwitch之上。又例如VAS本身在运行过程中可能会由于业务调整而退出服务,或者由于内部异常而退出服务。又例如,某个VAS处理能力随着业务的发展成为性能瓶颈,则需要增加相同功能的该类VAS加入到服务中,通过负载均衡提高业务处理能力。

而在上面举例的这些业务场景中,VAS对应的VM相关的port在vSwitch上体现为添加、删除和流量变更的操作,那么可以引入本实施例的机制来调整部署。

其中,检测的触发条件例如可以包括Host上运行的VM增加、减少或变更了。或者VM增加、减少或变更了其交换端口,vSwitch中的转发处理线程增加、减少或变更了,当然并不限于上述举例。

402、Host检测Host中的vSwitch的K个转发处理线程的状态属性,转发处理线程的状态属性包括转发处理线程的剩余转发资源额度和/或转发处理线程的剩余转发资源额度占比。

其中,vSwitch中的K个转发处理线程和计算节点中的K个处理器之间一一对应。

403、在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,Host调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

其中,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

可选的,在本发明的一些可能的实施方式之中,所述转发处理线程的状态属性例如可以包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可包括:

基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

其中,例如负载均衡度越高表示负载越均衡,而负载均衡度越低表示负载越不均衡。其中,假设负载均衡度的取值范围是0~1,那么第二阈值例如可以等于0.5、0.6、0.8、0.9或其他值。

其中,例如也可用于K个转发处理线程的剩余转发资源额度的方差来表征负载均衡度,其中,方差越大表示负载均衡度越低,方差越大表示负载均衡度越高,以此类推。

可以理解,通过调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

可根据转发处理线程的总转发资源额度来确定第三阈值的取值。假设转发处理线程(转发处理线程x1或x2)的总转发资源额度为100,那么第三阈值例如可以等于10、16、8、20或其他值,其他情况以此类推。

可以理解,当转发处理线程的剩余转发资源额度较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

其中,剩余转发资源额度占比是值剩余转发资源额度占总转发资源额度的比例。其中,第四阈值例如可等于5%、10%、15、17%、9%、20%、25%或其他值。

可以理解,当转发处理线程的剩余转发资源额度占比较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可以看出,本实施例中通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,例如转发处理线程的剩余转发资源额度和/或转发处理线程的剩余转发资源额度占比等,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

参见图5,图5是本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法的流程示意图,本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法可包括:

501、在计算节点上电之后,计算节点中的Host初始配置Host中的vSwitch中的转发处理线程所服务的交换端口。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,一个转发处理线程可服务一个或多个交换端口。

一些运行ServiceChain业务的计算节点配置中,一般会选择Intel或者其它厂商的智能物理网卡作为VAS对外通信的设备,在有些环境上该物理网卡与服务器的特定NUMA节点有亲和性,所以处理该物理网卡的IO的CPU需要保证与该物理网卡具有相同的NUMA节点,才能达到性能最优,否则会由于跨NUMA IO访问可能有30%左右的性能下降。

类似的,虚拟交换端口也存在NUMA节点归属问题,虚拟交换端口也可能会由于跨NUMA IO访问造成性能下降。

而在上面举例的这些业务场景中,VAS对应的VM相关的port在vSwitch上体现为添加、删除和流量变更的操作,那么可以引入本实施例的机制来调整部署。

其中,检测的触发条件例如可包括Host上运行的VM增加、减少或变更了。或者VM增加、减少或变更了其交换端口,或者vSwitch中的转发处理线程增加、减少或变更了,或者,计算节点更换或新增了物理网卡等,当然并不限于上述举例。

502、Host检测Host中的vSwitch的K个转发处理线程的状态属性,转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性。

其中,vSwitch中的K个转发处理线程和计算节点中的K个处理器之间一一对应。

503、在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,Host调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

其中,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

可选的,在本发明一些可能的实施方式中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可包括:

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

具体例如,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,包括:在转发处理线程x4的剩余转发资源额度大于所述交换端口j4的流量所占用的转发资源额度的情况下,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4。

可选的,在本发明一些可能的实施方式中,亲和性节点可为非统一内存访问的体系结构(NUMA)节点或其它可描述对象亲和性的节点。

可以看出,本实施例中,通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,例如转发处理线程的处理器与其所服务的交换端口之间的亲和性等等,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

其中,发明人研究和实现发现,属同一个亲和性节点的处理器和交换端口之间的数据中转效率通常会高于分属不同亲和性节点的处理器和交换端口之间的数据中转效率,因此通过调整服务交换端口的转发处理线程,使得转发处理线程的处理器与所服务的交换端口尽量归属于相同亲和性节点,这样有利于提高相关数据中转效率。

参见图6,图6是本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法的流程示意图,本发明的另一个实施例提供的一种调整转发处理线程的交换端口的方法可包括:

601、在计算节点上电之后,计算节点中的Host初始配置Host中的vSwitch中的转发处理线程所服务的交换端口。

其中,Host初始配置转发处理线程所服务的交换端口时,可优先为流量优先级较高的交换端口配置转发处理线程。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,一个转发处理线程可服务一个或多个交换端口。

例如在ServiceChain场景中,VM在支撑VAS功能的同时,同时还需要其它网络平面的虚拟网卡用于做管理和环境配置。其中,由于计算节点硬件网卡个数受限,可能会将VM的管理平面的虚拟网卡连接在vSwitch的port上,此时业务流量和管理流量在相同vSwitch上完成,虽然管理平面的流量不大,但是需要保证其基本能力的处理,否则可能造成VAS心跳中断的影响。所以这类管理平面关联的port具有较高的优先级,需要尽量的保证这类高优先级的port的转发资源额度。

当然,一些核心业务的转发资源额度也需尽量保证。

602、Host检测Host中的vSwitch的K个转发处理线程的状态属性,所述转发处理线程的状态属性包括转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度。

其中,vSwitch中的K个转发处理线程和计算节点中的K个处理器之间一一对应。

假设流量优先级级别存在3个,即1级、2级和3级,优先级阈值可等于1或2,假设流量的优先级级别存在4个,即1级、2级、3级和4级,优先级阈值例如可等于1、2或3,以此类推。可根据具体需要来确定优先级阈值的取值。

603、在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,Host调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

其中,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

可以看出,本实施例中,通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,转发处理线程的状态属性包括转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

其中,上述举例中引入了有利于确保高优先级流量的转发资源额度的可能机制。例如心跳包的优先级级别通常高于其他流量的优先级级别,因此基于上述举例的机制有利于尽量确保心跳包的转发资源额度,又例如一些核心业务流量的优先级级别通常高于普通业务流量的优先级级别,因此基于上述举例的机制有利于尽量确保核心业务流量的转发资源额度,有利于提高虚拟架构下的转发资源的有效利用率和网络流量变化的自适应能力。

本发明实施例还提供用于实施上述方案的相关装置。

参见图7-a,本发明实施例提供的一种调整转发处理线程的交换端口的装置700,可包括:

检测单元710,用于检测宿主机中的虚拟交换机vSwitch的K个转发处理线程的状态属性;

调整单元720,用于在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

可选的,在本发明的一些可能的实施方式中,所述交换端口包括虚拟交换端口和/或物理交换端口,其中,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所转发处理的关键流量实际占用的转发资源额度,所述关键流量的业务优先级高于优先级阈值。

可选的,在本发明的一些可能的实施方式之中,所述调整触发条件包括如下条件中的至少一个:转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

可选的,在本发明的一些可能的实施方式之中,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小(如转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异不超出预设范围)、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高(如转发处理线程的处理器和其所服务的交换端口之间的亲和性高于预设范围)、所述K个转发处理线程之间的负载均衡度提高(例如所述K个转发处理线程之间的负载均衡度高于预设范围)。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;所述调整单元720具体用于,基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;

所述调整单元720具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

所述调整单元720具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

所述调整单元720具体用于:若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;

所述调整单元720具体用于,若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,所述调整单元720具体用于,若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述调整单元720具体用于,在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

具体例如,所述调整单元720具体用于,在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,且在检测到转发处理线程x4的剩余转发资源额度大于所述交换端口j4的流量所占用的转发资源额度的情况下,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

可选的,在本发明的一些可能的实施方式中,所述亲和性节点为非统一内存访问的体系结构NUMA节点。

可选的,在本发明的一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程转发处理的关键流量实际占用的转发资源额度,

其中,所述调整单元720具体用于,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

所述调整单元720具体用于,若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

可以理解的是,本实施例中的调整转发处理线程的交换端口的装置700各个模块的功能可根据上述方法实施例介绍的方法具体实现,其具体实现过程可以参见上述实施例中的相关描述,在此不再赘述。调整转发处理线程的交换端口的装置700例如可以是Host或vSwitch,或如图7-b举例所示,调整转发处理线程的交换端口的装置700可部署于Host中,或如图7-c举例所示,调整转发处理线程的交换端口的装置700可部署于vSwitch中。

可以看出,本实施例中装置700通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

参见图8,本发明实施例还提供一种计算节点800,可包括:

硬件层810、运行在上述硬件层810之上的宿主机820、以及运行在上述宿主机820之上的至少一个虚拟机830。

其中,所述硬件层810包括K个处理器,所述宿主机820中的虚拟交换机821的K个转发处理线程与所述K个处理器之间一一对应。

其中,所述宿主机820用于,检测所述宿主机中的虚拟交换机821的K个转发处理线程的状态属性;在检测到虚拟交换机821的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

其中,宿主机820可实时的或周期性的检测Host中的vSwitch的K个转发处理线程的状态属性,也可在一些触发条件的触发下检测Host中的vSwitch的K个转发处理线程的状态属性。触发条件例如可以是设备重启,部件更换、虚拟机迁移等等触发条件。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度(即转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度),其中,所述关键流量的业务优先级高于优先级阈值。

可选的,在本发明的一些可能的实施方式之中,所述调整触发条件包括如下条件中的至少一个:转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

可选的,在本发明的一些可能的实施方式之中,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小(如转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异不超出预设范围)、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高(如转发处理线程的处理器和其所服务的交换端口之间的亲和性高于预设范围)、所述K个转发处理线程之间的负载均衡度提高(例如所述K个转发处理线程之间的负载均衡度高于预设范围)。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,宿主机820在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

可选的,在本发明的一些可能的实施方式之中,所述转发处理线程的状态属性例如可以包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,宿主机820可具体用于:

基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

其中,例如负载均衡度越高表示负载越均衡,而负载均衡度越低表示负载越不均衡。其中,假设负载均衡度的取值范围是0~1,那么第二阈值例如可以等于0.5、0.6、0.8、0.9或其他值。

其中,例如也可用于K个转发处理线程的剩余转发资源额度的方差来表征负载均衡度,其中,方差越大表示负载均衡度越低,方差越大表示负载均衡度越高,以此类推。

可以理解,通过调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,宿主机820可具体用于:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

可根据转发处理线程的总转发资源额度来确定第三阈值的取值。假设转发处理线程(转发处理线程x1或x2)的总转发资源额度为100,那么第三阈值例如可以等于10、16、8、20或其他值,其他情况以此类推。

可以理解,当转发处理线程的剩余转发资源额度较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,宿主机820可具体用于:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

其中,剩余转发资源额度占比是值剩余转发资源额度占总转发资源额度的比例。其中,第四阈值例如可等于5%、10%、15、17%、9%、20%、25%或其他值。

可以理解,当转发处理线程的剩余转发资源额度占比较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,宿主机820可具体用于:

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

其中,发明人研究和实现发现,属同一个亲和性节点的处理器和交换端口之间的数据中转效率通常会高于分属不同亲和性节点的处理器和交换端口之间的数据中转效率,因此通过调整服务交换端口的转发处理线程,使得转发处理线程的处理器与所服务的交换端口尽量归属于相同亲和性节点,这样有利于提高相关数据中转效率。

可选的,在本发明一些可能的实施方式中,亲和性节点可为非统一内存访问的体系结构(NUMA)节点或其它可描述对象亲和性的节点。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所转发处理的关键流量实际占用的转发资源额度。

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的方面,宿主机820可具体用于:

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

假设流量的优先级级别存在3个,即1级、2级和3级,优先级阈值例如可等于1或2,假设流量的优先级级别存在4个,即1级、2级、3级和4级,优先级阈值例如可等于1、2或3,以此类推。可根据具体需要来确定优先级阈值的取值。

可以理解,上述举例中引入了有利于确保高优先级流量的转发资源额度的可能机制。例如心跳包的优先级级别通常高于其他流量的优先级级别,因此基于上述举例的机制有利于尽量确保心跳包的转发资源额度,又例如一些核心业务流量的优先级级别通常高于普通业务流量的优先级级别,因此基于上述举例的机制有利于尽量确保核心业务流量的转发资源额度,有利于提高虚拟架构下的转发资源的有效利用率和网络流量变化的自适应能力。

可以理解,上述举例只给出了宿主机820在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的一些可能实现方式,当然还可能有其他多种可能的调整实现方式,本发明不限于上述举例方式,其他可能方式此处不再一一举例。

可以理解的是,本实施例中的计算节点800各个模块的功能可根据上述方法实施例介绍的方法具体实现,其具体实现过程可以参见上述实施例中的相关描述,在此不再赘述。

可以看出,本实施例中宿主机820通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

图9是本发明实施例提供的一种计算机设备的结构示意图。计算机设备900可包括输入设备903(可选的)、输出设备904(可选的)、处理器901和存储器905。

其中,存储器903可以包括只读存储器和随机存取存储器,并向处理器902提供指令和数据。存储器903的一部分还可以包括非易失性随机存取存储器(NVRAM)。

在一些实施方式中,存储器903存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。

虚拟机:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。

宿主机中包括但不限于检测单元710调整单元720。

宿主机中各模块的具体实现参见图7-a所示实施例中的相应模块,在此不赘述。

在本发明实施例中,通过调用存储器903存储的操作指令(该操作指令可存储在操作系统中),处理器902用于:检测宿主机中的虚拟交换机vSwitch的K个转发处理线程的状态属性;在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,所述K为正整数。

处理器902控制计算机设备900的操作,其中,处理器902还可以称为CPU。存储器903可以包括只读存储器和随机存取存储器,并向处理器902提供指令和数据。其中,存储器903的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,网关900的各个组件通过总线系统905耦合在一起,其中总线系统905除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统905。

上述本发明实施例揭示的方法可以应用于处理器902中,或者由处理器902实现。处理器902可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器902可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器903,处理器902读取存储器903中的信息,结合其硬件完成上述方法的步骤。

可以看出,本实施例中处理器902通过检测宿主机中的vSwitch的K个转发处理线程的状态属性,并在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口。由于引入了可根据vSwitch的转发处理线程的状态属性来调整转发处理线程所服务的交换端口的机制,使得转发处理线程所服务的交换端口可能发生动态变化,摒弃了转发处理线程和其所服务的交换端口之间始终固定绑定的传统机制,因此,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

其中,可实时的或周期性的检测Host中的vSwitch的K个转发处理线程的状态属性,也可在一些触发条件的触发下检测Host中的vSwitch的K个转发处理线程的状态属性。其中,触发条件例如可以是设备重启,部件更换、虚拟机迁移等等触发条件。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括如下状态属性中的至少一种:转发处理线程的处理器和其所服务的交换端口之间的亲和性、转发处理线程的剩余转发资源额度、转发处理线程的剩余转发资源额度占比、转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度(即转发处理线程所服务的交换端口的关键流量实际占用的转发资源额度),其中,所述关键流量的业务优先级高于优先级阈值。

其中,所述交换端口包括虚拟交换端口和/或物理交换端口,所述虚拟交换端口与运行于所述宿主机之上的虚拟机连接。

其中,运行于所述宿主机之上的虚拟机可提供VAS。

可选的,在本发明的一些可能的实施方式之中,所述调整触发条件包括如下条件中的至少一个:转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异超出预设范围、转发处理线程的处理器和其所服务的交换端口之间的亲和性低于预设范围、所述K个转发处理线程之间的负载均衡度低于预设范围。

可选的,在本发明的一些可能的实施方式之中,所述调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,使得如下条件中的至少一个条件被满足:所述K个转发处理线程中的至少1个转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异减小(如转发处理线程所转发处理的关键流量实际占用的转发资源额度与所述关键流量额定占用的转发资源额度的差异不超出预设范围)、所述K个转发处理线程中的至少1个转发处理线程的处理器和其所服务的交换端口之间的亲和性提高(如转发处理线程的处理器和其所服务的交换端口之间的亲和性高于预设范围)、所述K个转发处理线程之间的负载均衡度提高(例如所述K个转发处理线程之间的负载均衡度高于预设范围)。

其中,处理器902在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的具体实现方式可以能是多种多样的,下面举例一些可能的调整实现方式。

可选的,在本发明的一些可能的实施方式之中,所述转发处理线程的状态属性例如可以包括转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,可包括:

基于所述K个转发处理线程的剩余转发资源额度和/或剩余转发资源额度占比,获得所述K个转发处理线程之间的负载均衡度,若获得的所述K个转发处理线程之间的负载均衡度低于第二阈值,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度。

其中,例如负载均衡度越高表示负载越均衡,而负载均衡度越低表示负载越不均衡。其中,假设负载均衡度的取值范围是0~1,那么第二阈值例如可以等于0.5、0.6、0.8、0.9或其他值。

其中,例如也可用于K个转发处理线程的剩余转发资源额度的方差来表征负载均衡度,其中,方差越大表示负载均衡度越低,方差越大表示负载均衡度越高,以此类推。

可以理解,通过调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口,以提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或者等于第三阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,并且在将为所述vSwitch的交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度仍大于所述第三阈值,则将为所述交换端口j1服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度大于第三阈值,且在将为所述vSwitch的k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度均大于所述第三阈值,则将为所述k1个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并且将为所述k2个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,其中,所述k1和所述k2为正整数;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度小于或等于第三阈值,且所述转发处理线程x1的剩余转发资源额度与转发处理线程x1当前服务的交换端口j2的流量速率占用的转发资源额度的和值,小于所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,将为所述交换端口j2服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2。

可根据转发处理线程的总转发资源额度来确定第三阈值的取值。假设转发处理线程(转发处理线程x1或x2)的总转发资源额度为100,那么第三阈值例如可以等于10、16、8、20或其他值,其他情况以此类推。

可以理解,当转发处理线程的剩余转发资源额度较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的剩余转发资源额度占比;其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或等于第四阈值,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第三阈值,且在将为所述vSwitch的交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2的情况下,能够使得所述转发处理线程x2的剩余转发资源额度占比仍大于所述第四阈值,则将为所述交换端口j3服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1的剩余转发资源额度占比小于或者等于第四阈值,并且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度占比大于第四阈值,且在将为所述vSwitch的k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,且将为所述vSwitch的k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1的情况下,能够使得所述转发处理线程x2和所述转发处理线程x1的剩余转发资源额度占比均大于所述第四阈值,则将为所述k3个交换端口服务的转发处理线程由所述转发处理线程x1调整为所述转发处理线程x2,并将为所述k4个交换端口服务的转发处理线程由所述转发处理线程x2调整为所述转发处理线程x1,所述k3和所述k4为正整数。

其中,剩余转发资源额度占比是值剩余转发资源额度占总转发资源额度的比例。其中,第四阈值例如可等于5%、10%、15、17%、9%、20%、25%或其他值。

可以理解,当转发处理线程的剩余转发资源额度占比较少时,通过调整(如减少或更换)转发处理线程所服务的交换端口,有利于提高所述K个转发处理线程之间的负载均衡度,有利于提高虚拟架构下的转发资源利用率和网络流量变化的自适应能力。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程的处理器与其所服务的交换端口之间的亲和性;

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

在检测到所述K个转发处理线程中的转发处理线程x3的处理器与其所服务的所述vSwitch的交换端口j4不属于相同亲和性节点,将为所述交换端口j4服务的转发处理线程由转发处理线程x3调整为转发处理线程x4,所述转发处理线程x4的处理器与所述交换端口j4属于相同亲和性节点。

其中,发明人研究和实现发现,属同一个亲和性节点的处理器和交换端口之间的数据中转效率通常会高于分属不同亲和性节点的处理器和交换端口之间的数据中转效率,因此通过调整服务交换端口的转发处理线程,使得转发处理线程的处理器与所服务的交换端口尽量归属于相同亲和性节点,这样有利于提高相关数据中转效率。

可选的,在本发明一些可能的实施方式中,亲和性节点可为非统一内存访问的体系结构(NUMA,Non Uniform Memory Access Architecture)节点或其它可描述对象亲和性的节点。

可选的,在本发明一些可能的实施方式中,所述转发处理线程的状态属性包括转发处理线程所转发处理的关键流量实际占用的转发资源额度。

其中,所述在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口包括:

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2;

或者,

若检测到所述K个转发处理线程中的转发处理线程x1所服务的交换端口j5的关键流量实际占用的转发资源额度,小于所述交换端口j5的关键流量额定占用的转发资源额度,且检测到所述K个转发处理线程中的转发处理线程x2的剩余转发资源额度,大于或等于所述交换端口j5的关键流量额定占用的转发资源额度,所述转发处理线程x1服务的交换端口包括交换端口j5和交换端口j6,将为所述交换端口j6服务的转发处理线程由转发处理线程x1调整为转发处理线程x2。

假设流量的优先级级别存在3个,即1级、2级和3级,上述优先级阈值例如可等于1或2,假设流量的优先级级别存在4个,即1级、2级、3级和4级,优先级阈值例如可等于1、2或3,以此类推。可根据具体需要来确定优先级阈值的取值。

可以理解,上述举例中引入了有利于确保高优先级流量的转发资源额度的可能机制。例如心跳包的优先级级别通常高于其他流量的优先级级别,因此基于上述举例的机制有利于尽量确保心跳包的转发资源额度,又例如一些核心业务流量的优先级级别通常高于普通业务流量的优先级级别,因此基于上述举例的机制有利于尽量确保核心业务流量的转发资源额度,有利于提高虚拟架构下的转发资源的有效利用率和网络流量变化的自适应能力。

可以理解,上述举例只是给出了处理器902在检测到所述vSwitch的K个转发处理线程的状态属性满足预设调整触发条件的情况下,调整所述K个转发处理线程中的至少1个转发处理线程所服务的交换端口的一些可能的实现方式,当然还可能有其他多种可能的调整实现方式,本发明也不限于上述举例的方式,其他可能方式此处不再一一举例。

可以理解的是,本实施例中的计算机设备900各个模块的功能可根据上述方法实施例介绍的方法具体实现,其具体实现过程可以参见上述实施例中的相关描述,在此不再赘述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,其中,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1