本发明涉及虚拟化网络管理技术领域,特别是涉及一种虚拟机流量控制方法及装置。
背景技术:
在传统网络中,所有的报文都被无差别的对待,每个转发设备对所有的报文均采用先入先出的策略进行处理,尽最大的努力将报文发送至目的地,但对报文传送的可靠性、延迟等不做任何保证,一旦网络发生拥塞,数据报文有可能被大量丢弃。鉴于此,提供一种虚拟机流量控制方法及装置,以对网络资源进行合理高效的利用是非常有必要的。
技术实现要素:
本发明的目的是提供一种虚拟机流量控制方法及装置,以解决现有网络中所有报文被无差别对待,导致网络发生拥塞的问题。
为解决上述技术问题,本发明提供一种虚拟机流量控制方法,包括:
接收主机内虚拟机的业务流量数据;
将不同的虚拟机流量数据导入各自独立的数据通道;
根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;
将划分后的流量数据导入不同的子通道,按照所述优先级的顺序发送报文至网卡发送队列。
可选地,在所述将不同的虚拟机流量数据导入各自独立的数据通道之后还包括:
对导入所述独立的数据通道后的流量数据进行整体限速。
可选地,所述将划分后的流量数据导入不同的子通道,按照所述优先级的顺序发送报文至网卡发送队列包括:
将划分后的流量数据导入不同的子通道,根据优先级对应的不同的预设速率发送报文至网卡发送队列,其中,优先级高的流量数据优先发送报文。
可选地,所述按照所述优先级的顺序发送报文至网卡发送队列包括:
当判断当前子通道发送报文的时间超过预设的时间阈值时,强制所述当前子通道的次级子通道进行报文发送。
本发明还提供了一种虚拟机流量控制装置,包括:
接收模块,用于接收主机内虚拟机的业务流量数据;
导入模块,用于将不同的虚拟机流量数据导入各自独立的数据通道;
划分模块,用于根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;
发送模块,用于将划分后的流量数据导入不同的子通道,按照所述优先级的顺序发送报文至网卡发送队列。
可选地,还包括:
限速模块,用于在将不同的虚拟机流量数据导入各自独立的数据通道之后,对导入所述独立的数据通道后的流量数据进行整体限速。
可选地,发送模块具体为:将划分后的流量数据导入不同的子通道,根据优先级对应的不同的预设速率发送报文至网卡发送队列的模块;其中,优先级高的流量数据优先发送报文。
可选地,所述发送模块还包括:
判断单元,用于当判断当前子通道发送报文的时间超过预设的时间阈值时,强制所述当前子通道的次级子通道进行报文发送。
本发明所提供的虚拟机流量控制方法及装置,接收主机内虚拟机的业务流量数据;将不同的虚拟机流量数据导入各自独立的数据通道;根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;将划分后的流量数据导入不同的子通道,按照优先级的顺序发送报文至网卡发送队列。本发明所提供的虚拟机流量控制方法及装置,可以根据主机内虚拟机的业务流量划分优先级,根据优先级的不同,对虚拟机的业务流量速率进行有效地控制,从而不影响同主机内其他虚拟机的网络访问,对主机内的网络资源进行合理高效的利用。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的虚拟机流量控制方法的一种具体实施方式的流程图;
图2为本发明所提供的虚拟机流量控制方法各模块在云计算场景下部署示意图;
图3为本发明实施例提供的虚拟机流量控制装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的虚拟机流量控制方法的一种具体实施方式的流程图如图1所示,该方法包括:
步骤S101:接收主机内虚拟机的业务流量数据;
本实施例中,分布式虚拟交换机位于主机内,为虚拟机提供网络服务,通过openflow协议转发虚拟机流量。
步骤S102:将不同的虚拟机流量数据导入各自独立的数据通道;
本发明实施例中先根据不同虚拟机将虚拟机流量数据进行划分,分别对应不同的独立数据通道。
步骤S103:根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;
在划分了数据通道后,再根据数据的优先级划分次级子通道。优先级可以根据流量数据的业务或者协议来进行划分。
步骤S104:将划分后的流量数据导入不同的子通道,按照所述优先级的顺序发送报文至网卡发送队列。
本步骤中将划分后的流量数据导入不同的子通道,根据优先级对应的不同的预设速率发送报文至网卡发送队列,其中,优先级高的流量数据优先发送报文。
本发明所提供的虚拟机流量控制方法,接收主机内虚拟机的业务流量数据;将不同的虚拟机流量数据导入各自独立的数据通道;根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;将划分后的流量数据导入不同的子通道,按照优先级的顺序发送报文至网卡发送队列。本发明所提供的虚拟机流量控制方法,可以根据主机内虚拟机的业务流量划分优先级,根据优先级的不同,对虚拟机的业务流量速率进行有效地控制,从而不影响同主机内其他虚拟机的网络访问,对主机内的网络资源进行合理高效的利用。
在上述实施例的基础上,本发明所提供的虚拟机流量控制方法在将不同的虚拟机流量数据导入各自独立的数据通道之后还可以进一步包括:
对导入所述独立的数据通道后的流量数据进行整体限速。
作为一种优选实施方式,本发明所提供的虚拟机流量控制方法中按照所述优先级的顺序发送报文至网卡发送队列还可以包括:
当判断当前子通道发送报文的时间超过预设的时间阈值时,强制所述当前子通道的次级子通道进行报文发送。
下面通过一具体实施例对本发明所提供的虚拟机流量控制方法进行进一步详细阐述,该实施例具体通过流控模块来实现虚拟机流量控制方法。
在云计算环境下,虚拟机部署于主机内,虚拟机以虚拟网卡形式接入支持openflow协议的分布式虚拟交换机,该分布式虚拟交换机通过openflow协议转发虚拟机的流量至流控模块,流控模块预置不同的流控策略,流控模块为每个虚拟机创建一个独立的数据通道,这个独立的数据通道又分割成不同优先级的子通道,各个子通道最终将报文传输至网卡发送队列。流控模块首先把不同的虚拟机流量导入各自独立的数据通道,同时能够根据每个虚拟机的不同业务流量分派报文进入不同优先级的子通道,合理有效得利用了主机资源。本发明采用的分布式虚拟交换机,可以确保流控策略能够随着虚拟机迁移一同迁移,能够随时对虚拟机业务流量进行控制。
本实施例中流控模块位于主机内,负责接收分布式虚拟交换机转发过来的虚拟机流量,通过预置不同的流控策略,为每个虚拟机创建一个独立的数据通道,这个独立的数据通道又分割成不同优先级的子通道,各个子通道最终将报文传输至网卡发送队列。
参照图2本发明所提供的虚拟机流量控制方法各模块在云计算场景下部署示意图,当虚拟机发出业务流量时,该流量通过虚拟网卡进入分布式虚拟交换机,该分布式虚拟交换机通过openflow协议转发该流量至流控模块,流控模块使该流量进入虚拟机独立的数据通道,并根据预设的规则对该虚拟机的流量进行整体限速,随后对带宽内的该流量再次进行分流,根据业务或者协议的不同划分成不同优先级的流量,该虚拟机的报文分别进入不同的子通道,子通道根据优先级的不同分为若干个,优先级从最高级、次高级…直最低级,优先级最高的子通道优先发送报文至发送队列。
优选地,为了避免子通道报文独占发送队列,本发明为各个子通道设置了一个时间阀值,当该子通道发送报文时间超过该阀值时,流控模块强制进行次级子通道的报文发送。
本发明实施例充分利用了网络带宽资源,可以根据主机内虚拟机的业务流量划分优先级,根据优先级对应的不同的预设速率,对虚拟机的业务流量速率进行有效地控制,从而不影响同主机内其他虚拟机的网络访问,对主机内的网络资源进行合理高效的利用。
下面对本发明实施例提供的虚拟机流量控制装置进行介绍,下文描述的虚拟机流量控制装置与上文描述的虚拟机流量控制方法可相互对应参照。
图3为本发明实施例提供的虚拟机流量控制装置的结构框图,参照图3虚拟机流量控制装置可以包括:
接收模块100,用于接收主机内虚拟机的业务流量数据;
导入模块200,用于将不同的虚拟机流量数据导入各自独立的数据通道;
划分模块300,用于根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;
发送模块400,用于将划分后的流量数据导入不同的子通道,按照所述优先级的顺序发送报文至网卡发送队列。
作为一种具体实施方式,本发明所提供的虚拟机流量控制装置还可以进一步包括:
限速模块,用于在将不同的虚拟机流量数据导入各自独立的数据通道之后,对导入所述独立的数据通道后的流量数据进行整体限速。
可选地,发送模块可以具体为:将划分后的流量数据导入不同的子通道,根据优先级对应的不同的预设速率发送报文至网卡发送队列的模块;其中,优先级高的流量数据优先发送报文。
进一步地,本发明所提供的虚拟机流量控制装置中发送模块还可以包括:
判断单元,用于当判断当前子通道发送报文的时间超过预设的时间阈值时,强制所述当前子通道的次级子通道进行报文发送。
本实施例的虚拟机流量控制装置用于实现前述的虚拟机流量控制方法,因此虚拟机流量控制装置中的具体实施方式可见前文中的虚拟机流量控制方法的实施例部分,例如,接收模块100,导入模块200,划分模块300,发送模块400,分别用于实现上述虚拟机流量控制方法中步骤S101,S102,S103和S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明所提供的虚拟机流量控制装置,接收主机内虚拟机的业务流量数据;将不同的虚拟机流量数据导入各自独立的数据通道;根据业务或协议的不同,对进入独立的数据通道的虚拟机流量数据进行优先级划分;将划分后的流量数据导入不同的子通道,按照优先级的顺序发送报文至网卡发送队列。本发明所提供的虚拟机流量控制装置,可以根据主机内虚拟机的业务流量划分优先级,根据优先级的不同,对虚拟机的业务流量速率进行有效地控制,从而不影响同主机内其他虚拟机的网络访问,对主机内的网络资源进行合理高效的利用
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的虚拟机流量控制方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。