CN105656795A - 虚拟机的流量控制方法及物理机 - Google Patents
虚拟机的流量控制方法及物理机 Download PDFInfo
- Publication number
- CN105656795A CN105656795A CN201410650425.7A CN201410650425A CN105656795A CN 105656795 A CN105656795 A CN 105656795A CN 201410650425 A CN201410650425 A CN 201410650425A CN 105656795 A CN105656795 A CN 105656795A
- Authority
- CN
- China
- Prior art keywords
- interrupt signal
- virtual machine
- sent
- machine
- physical
- 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.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种虚拟机的流量控制方法及物理机,其中,该方法包括:当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量;判断已发送给虚拟机的中断信号的数量是否小于预设门限;若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据;若已发送给虚拟机的中断信号的数量等于预设门限,则将第一中断信号存入到等待队列中。本发明解决了现有技术中在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时无法对SRIOV物理网卡虚拟机接收到的数据进行流量控制的技术问题。
Description
技术领域
本发明涉及虚拟化网络技术领域,具体而言,涉及一种虚拟机的流量控制方法及物理机。
背景技术
随着虚拟化网络技术的使用范围越来越广泛,新的虚拟化网络技术也层出不穷。其中,利用硬件虚拟化网络技术实现的SRIOV(SingleRootInputOutputVirtualization,单根输入输出虚拟化)网卡相比采用其他的虚拟化网络技术的网卡而言,可以大大减少网络传输的延时,具有明显的性能优势。
众所周知,典型的虚拟化网络是在一台物理机上支持多台虚拟机,此时必然需要对虚拟机进行网络流量的配置和管理。在现有技术中,数据经过物理机的虚拟化网络处理传输到虚拟机,在这种情况下,物理机通过对经过虚拟化网络处理的数据的流量设置门限值,可以实现对虚拟机接收到的数据的流量控制。然而,SRIOV物理网卡,数据通过VF(VirtualFunction,虚函数)直接进入虚拟机,而不经过物理机的虚拟化网络处理,因此,通过现有的对经过虚拟化网络处理的数据的流量设置门限值无法实现对虚拟机接收到的数据的流量控制。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种虚拟机的流量控制方法及物理机,以至少解决现有技术中在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时无法对虚拟机接收到的数据进行流量控制的技术问题。
根据本发明实施例的一个方面,提供了一种虚拟机的流量控制方法,包括:当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量;判断已发送给虚拟机的中断信号的数量是否小于预设门限;若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据;若已发送给虚拟机的中断信号的数量等于预设门限,则将第一中断信号存入到等待队列中。
根据本发明实施例的另一方面,还提供了一种物理机,包括:第一获取单元,用于当需向运行在物理机上的虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量;第一判断单元,用于判断已发送给虚拟机的中断信号的数量是否小于预设门限;第一输出单元,用于若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据;缓存单元,用于若已发送给虚拟机的中断信号的数量等于预设门限,则将第一中断信号存入到等待队列中。
在本发明实施例中,由于虚拟机在接收到中断信号后才能接收数据,因此通过控制向虚拟机发送的中断信号的数量,可以在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时实现对虚拟机接收到的数据的流量控制,进而解决了现有技术中在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时无法对虚拟机接收到的数据进行流量控制的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的虚拟机的流量控制方法的应用场景示意图;
图2是根据本发明实施例的一种可选的虚拟机的流量控制方法的流程示意图;
图3是根据本发明实施例的另一种可选的虚拟机的流量控制方法的示意图;
图4是根据本发明实施例的又一种可选的虚拟机的流量控制方法的示意图;
图5是根据本发明实施例的又一种可选的虚拟机的流量控制方法的示意图;
图6是根据本发明实施例的又一种可选的虚拟机的流量控制方法的示意图;
图7是根据本发明实施例的又一种可选的虚拟机的流量控制方法的示意图;
图8是根据本发明实施例的一种可选的等待队列的结构示意图;
图9是根据本发明实施例的一种可选的物理机的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种虚拟机的流量控制方法。本实施例中的虚拟机的流量控制方法可以应用于如图1所示的硬件环境中。
如图1所示,SRIOV物理网卡101在启用SRIOV之后会生成若干接口102,物理网卡101的功能在于转发物理网口103与接口102之间的数据,物理网口103在SRIOV场景中充当一个对外的网络接口,它与外部的物理媒介(如光纤)104连接,与物理媒介104实现数据交互;VF106是支持SRIOV的物理网卡101所虚拟出的一个“网卡”或者说虚拟出来的一个实例,它会以一个独立网卡的形式呈现出来,每一个VF106有它自己独享的PCI配置区域,并且可能与其他VF106共享着同一个物理资源。由图1可知,SRIOV物理网卡101将通过VF106向虚拟机107发送数据,而不经过物理机的虚拟化网络处理。如此一来即可跳过中间的虚拟化层,以达到接近物理环境的性能。上述以SRIOV物理网卡进行举例,本实施例对此不做限定,本实施例的虚拟机的流量控制方法可以应用于任意的物理网卡可以直接向虚拟机发送数据而不经过物理机的虚拟化网络处理的场景中。
可选地,在本实施例中,上述虚拟机的流量控制方法的流程可以如图2所示,该方法包括:
S102:当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量;
S104:判断已发送给虚拟机的中断信号的数量是否小于预设门限;
S106:若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据;
S108:若已发送给虚拟机的中断信号的数量等于预设门限,则将第一中断信号存入到等待队列中。
应当明确的是,本发明实施例所要解决的问题之一是提供一种方法,以便于对SRIOV物理网卡的虚拟机进行流量控制。
具体地,虚拟化网络技术通常是指在一个物理机上可以同时运行多个互不干扰的逻辑网络(虚拟机,例如,图1所示的虚拟机107),这些逻辑网络可以有自己特定的拓扑和路由算法,并允许各逻辑网络采用完全不同的体系结构,从而允许虚拟机(VirtualMachine)中实现充分实验、完全创新、各具特色的网络技术。其中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统;物理机是相对于虚拟机而言的对实体计算机的称呼,物理机提供给虚拟机以硬件环境,通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。
在另一方面,随着虚拟化网络技术的使用范围越来越广泛,新的虚拟化网络技术也层出不穷。其中,利用硬件虚拟化网络技术实现的SRIOV物理网卡相比其他的虚拟化网络技术,可以大大减少网络传输的延时,具有明显的性能优势。众所周知,典型的虚拟化网络是在一台物理机上支持多台虚拟机,这必然需要对虚拟机进行网络流量的配置和管理,现有技术中,物理机是通过设置数据流的配额来实现。然而,对于SRIOV物理网卡,数据直接通过VF直接进入虚拟机,而不经过物理机的虚拟化网络处理,因此,现有的通过设置数据流的配额来实现网络流量的配置和管理已经不再生效。
为解决上述问题,在本发明实施例中,采用了对预设时间段内发送给虚拟机的中断信号的数量进行限制的方式来达到对虚拟机的流量控制的目的。具体地,在本发明实施例中,可以当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量,并判断已发送给虚拟机的中断信号的数量是否小于预设门限,进而若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送中断信号,若已发送给虚拟机的中断信号的数量等于预设门限,则将中断信号存入到等待队列中。由于虚拟机在接收到中断信号后才能接收数据,因此通过控制向虚拟机发送的中断信号的数量来实现对虚拟机的流量控制,进而解决了现有技术中在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时无法对SRIOV物理网卡虚拟机接收到的数据进行流量控制的技术问题。
例如,在物理机使用了SRIOV物理网卡的场景下,数据不再经过物理机,但是中断信号仍然需要通过物理机注入虚拟机,也就是说,当SRIOV物理网卡要向虚拟机传输数据时,首先要向物理机发送数据传输请求,然后物理机需要向虚拟机发送中断信号,才能触发虚拟机接收SRIOV物理网卡的数据,而对于虚拟机而言,虚拟机每收到一个中断信号则接收一个数据包。
采用本发明实施例的虚拟机的流量控制方法,当物理机获知需向虚拟机发送中断信号时,物理机获取预设时间段内已发送给虚拟机的中断信号的数量,进而,物理机判断该数量是否小于预设门限,若该数量小于预设门限,物理机则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据,若该数量等于预设门限,物理机则将该第一中断信号存入到等待队列中。
在此基础上,还可以设置有计数器,该计数器可以用于对预设时间段内已发送给虚拟机的中断信号进行计数。具体地,在本发明实施例中,物理机获取预设时间段内已发送给虚拟机的中断信号的数量,是指物理机从该计数器中读取已发送给虚拟机的中断信号的数量,以便于进行后续的对已发送给虚拟机的中断信号的数量的判断。
例如,在一个场景下,当物理机需向虚拟机发送中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量,并判断已发送给虚拟机的中断信号的数量是否小于预设门限,进而,若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送中断信号后,物理机对计数器执行加1操作。当然,这只是一种示例,在一些实施例中,物理机也可以对计数器执行减1操作,本发明对此不作限定。进一步地,物理机可以当经过预设时间段时,对计数器执行清零操作,从而,从下一预设时间段开始重新计数。
当然,以上只是一种示例,并不意味着对本发明构成了限定。具体来说,可以设置任意一个或多个具有计数功能的装置,以便物理机对已发送给虚拟机的中断信号的数量进行判断。
需要说明的是,本发明通过以上描述提供了一种本发明技术方案的可行的实施环境,然而应当理解的是,以上描述仅仅是一种示例性的描述,以便于对本发明技术方案及其工作环境的理解,而不应视为是对本发明的限定。具体地,根据本发明实施例提供的虚拟机的流量控制方法还可以实施于多种可行的其他硬件或系统环境中,本发明在此不一一累述。
在上述环境下,根据本发明实施例提供的虚拟机的流量控制方法,在步骤S102中,用于实现虚拟机的流量控制的物理机可以当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量。
在本发明实施例中,在SRIOV标准中,数据是直接从SRIOV物理网卡通过VF传输至虚拟机的,而控制信令是需要物理机向虚拟机发送的。具体地,该控制信令就包含了本发明技术方案中的中断信号。本发明实施例中,中断信号可以用于通知虚拟机进行数据接收,即虚拟机在接收到中断信号后,才会开启接收数据。
具体地,在本发明实施例中,物理机在获知有数据要发送给虚拟机时,获取已发送预设时间段内已发送给虚拟机的中断信号的数量。例如可选地,在一个实施例中,如图3所示,通过以下步骤判断是否需向虚拟机发送第一中断信号:
S302、接收来自第三方设备的第一数据传输请求。
例如,第三方设备可以为:上述实施例所述的SRIOV物理网卡。
S304、判断第一数据传输请求是否指示第三方设备需向虚拟机发送第一数据。
S306、若第一数据传输请求指示第三方设备需向虚拟机发送第一数据,则生成第一中断信号,并判断出需向虚拟机发送第一中断信号。
在上述环境下,根据本发明实施例提供的虚拟机的流量控制方法,在S302中,当第三方设备有数据需要发送至虚拟机时,该第三方设备可以向物理机发送第一数据传输请求,物理机在接收到该数据传输请求后,即可如S304,物理机判断第一数据传输请求是否指示第三方设备需向虚拟机发送第一数据。
进一步地,若第一数据传输请求指示第三方设备需向虚拟机发送第一数据,在S306中,物理机则生成第一中断信号,并判断出需向虚拟机发送第一中断信号。
例如,在一个实施例中,预先设置的计数器对已发送给虚拟机的中断信号进行计数,当物理机判断出需向虚拟机发送中断信号时,物理机从计数器中读取预设时间段内已发送给虚拟机的中断信号的数量,比如,物理机从计数器中读取1秒钟内已发送给虚拟机的中断信号的数量。进而,如果1秒钟内已发送给虚拟机的中断信号的数量未超过预设门限,物理机才会向虚拟机发送该中断信号。
需要说明的是,预设时间段的时间长度为初始化时预先设置好的,可以为任意值,上述场景中以1秒钟为例进行说明,但并不做限定。
可选地,在接收来自第三方设备的第一数据传输请求时,本实施例的方法还包括:接收第三方设备发送的第一数据;将接收到的第一数据存储在物理机上的内存中,其中,虚拟机运行在物理机上;其中,虚拟机响应第一中断信号接收第一数据包括:虚拟机响应第一中断信号从物理机上的内存中读取第一数据。
在上述环境下,根据本发明实施例提供的虚拟机的流量控制方法,在步骤S104中,用于实现虚拟机的流量控制的物理机可以在获取预设时间段内已发送给虚拟机的中断信号的数量后,判断已发送给虚拟机的中断信号的数量是否小于预设门限。
在本发明实施例中,为了实现虚拟机的流量控制,本发明的流量控制方法主要是对发送给虚拟机的中断信号的数量进行控制,因此,物理机在获取到预设时间段内已发送给虚拟机的中断信号的数量后,物理机可以判断已发送给虚拟机的中断信号的数量是否小于预设门限。
具体地,在本发明实施例中的预设门限的取值,可以为初始化时配置好的。例如可选地,如图4所示,在一个实施例中,上述步骤S102之前可以包括:
S402、获取初始化配置信息。
S404、将预设门限设置为初始化配置信息中携带的配置值,其中,配置值用于指示在预设时间段内向虚拟机发送中断信号的数量的最大值。
本发明实施例中,物理机可以首先进行初始化配置。例如对于上述实施例,物理机获取初始化配置信息,该初始化信息可以是管理员输入的信息,也可以是管理设备发送给物理机的信息,本发明不做限制。初始化配置信息中可以携带配置值,该配置值用于指示在预设时间段内向虚拟机发送中断信号的数量的最大值。例如,物理机从初始化配置信息中提取出配置值为10个/秒,则表示物理机在1秒钟内向虚拟机发送中断信号的数量的最大值为10个。
在以上描述的基础上,如图5所示,作为进一步可选的方式,在本发明实施例中,在步骤S102之前,上述方法还可以包括:
S502:设置计数器,用于对预设时间段内已发送给虚拟机的中断信号进行计数;其中,
步骤S102可以包括:
S504:当需向虚拟机发送第一中断信号时,从计数器中读取已发送给虚拟机的中断信号的数量。
在本发明实施例中,基于获取预设时间段内已发送给虚拟机的中断信号的数量以判断该数量是否满足预设门限,需要对已发送给虚拟机的中断信号的数量进行计数。具体地,本发明实施例通过设置计数器,用于对预设时间段内已发送给虚拟机的中断信号进行计数,即物理机当需向虚拟机发送第一中断信号时,可以从计数器中读取已发送给虚拟机的中断信号的数量。
需要说明的是,本发明实施例的计数器可以为高速计数模块,或其它具有计数功能的装置,此处不做限制。并且,上述S502与S402-S406之间并没有时间顺序的限制,即可以先执行S502,再执行S402-S406,也可以先执行S402-S406,再执行S502,也可以同时执行S502与S402-S406,本发明不做限制。
在上述环境下,根据本发明实施例提供的虚拟机的流量控制方法,在步骤S106中,若已发送给虚拟机的中断信号的数量小于预设门限,则用于实现虚拟机的流量控制的物理机可以向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据。
在本发明实施例中,为了实现虚拟机的流量控制,本发明的流量控制方法主要是对发送给虚拟机的中断信号的数量进行控制,因此,如果物理机判断出已发送给虚拟机的中断信号的数量小于预设门限,物理机则可以向虚拟机发送第一中断信号,进而触发虚拟机接收第一数据。
除此之外,在本发明实施例中,步骤S106之后还可以包括:
S2、对计数器执行加1操作。
例如,在一个实施例中,当物理机判断出已发送给虚拟机的中断信号的数量小于预设门限,进而向虚拟机发送第一中断信号后,物理机可以对上述计数器执行加1操作。并且,当经过预设时间段时,对计数器执行清零操作,例如,每经过1秒钟将计数器的值设置为“0”。当然,物理机也可以对上述计数器执行减1操作,本发明不做限制。
在上述环境下,根据本发明实施例提供的虚拟机的流量控制方法,作为与S106并列的一种方案,在S108中,若已发送给虚拟机的中断信号的数量等于预设门限,则将中断信号存入到等待队列中。
在本发明实施例中,为了实现虚拟机的流量控制,本发明的流量控制方法主要是对发送给虚拟机的中断信号的数量进行控制,因此,如果物理机判断出已发送给虚拟机的中断信号的数量等于预设门限,物理机则可以将中断信号存入到等待队列中,进而等待在后续周期再向虚拟机发送该中断信号。
在以上描述的基础上,如图6所示,作为进一步可选的方式,在本发明实施例中,在步骤S108之后,上述方法还可以包括:
S602:当到达下一个预设时间段、且未收到来自第三方设备的第二数据传输请求时,判断下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于预设门限,其中,所述第二数据传输请求用于指示所述第三方设备需向所述虚拟机发送第二数据;
S604:若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限,则从等待队列中移出待发送的中断信号发送给虚拟机,其中,待发送的中断信号为第一中断信号或先于第一中断信号存入等待队列中的中断信号。
具体地,本实施例中,“下一个预设时间段”和上述的“预设时间段”的时间长度可以是相等的,例如都为1秒。当到达下一个预设时间段时,物理机同样可以去判断该下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于预设门限,若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限,则从等待队列中移出待发送的中断信号发送给虚拟机,其中,待发送的中断信号为第一中断信号或先于第一中断信号存入等待队列中的中断信号。
在以上描述的基础上,如图7所示,作为进一步可选的方式,在本发明实施例中,在步骤S108之后,上述方法还可以包括:
S702:当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于预设门限;
S704:若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限、且等待队列不为空,则从等待队列中移出待发送的中断信号发送给虚拟机,并将第二中断信号存入到等待队列中,其中,待发送的中断信号为第一中断信号或先于第一中断信号存入等待队列中的中断信号;
S706:若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限、且等待队列为空,则将第二中断信号发送给虚拟机,以使虚拟机响应第二中断信号接收第二数据。
具体地,当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于预设门限,若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限、且等待队列不为空,则从等待队列中移出待发送的中断信号发送给虚拟机,并将第二中断信号存入到等待队列中,也就是说,如图8所示,假如当前的等待队列中已经缓存有A、B、C三个中断信号,此时,响应来自第三方设备的第二数据传输请求物理机生成第二中断信号D,那么,首先,物理机需要判断下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于预设门限,同时,物理机还需要判断等待队列是否为空,即,是否有未发送的中断信号,若下一个预设时间段内已发送给虚拟机的中断信号的数量小于预设门限、且等待队列不为空,则从等待队列中移出待发送的中断信号A发送给虚拟机,并将第二中断信号D存入到等待队列中。
示例性的,以预设时间段为1秒、预设门限为10个/秒为例对本发明方案进行描述,当第一秒内物理机接收到SRIOV物理网卡发送的数据传输请求时,物理机生成中断信号A,物理机进而判断在该第一秒内已发送给虚拟机的中断信号的数量为多少,若该数量小于10,则将中断信号A发送给虚拟机,若该数量等于10,说明该第一秒内已发送给虚拟机的中断信号的数量已经达到预设门限,物理机则将该中断信号A存入到等待队列的第一个存储区域中,如图8所示,进一步地,若在该第一秒内,物理机响应SRIOV物理网卡的数据传输请求生成了中断信号B、中断信号C,物理机会按照上述相同的方法将中断信号B和中断信号C存入到中断信号A的后面;当进入第二秒时,物理机会将按照先进先出的顺序将中断信号A、B、C发送至虚拟机,在此过程中,如果物理机响应于SRIOV网卡的数据传输请求生成了中断信号D,那么物理机首先会判断该第二秒内已发送至虚拟机的中断信号的数量是否小于10,然后还会判断等待队列是否有未发送给虚拟机的中断信号,假如此时中断信号B、C还存储在等待队列中,那么物理机则会先去发送中断信号B、C,再去发送D,则物理机会将中断信号D存入等待队列中断信号C的后面以等待发送。
通过上述实施例,对本发明技术方案进行了描述,然而应当理解的是,上述实施例仅用于对本发明技术方案的理解,并不会对本发明构成限定。例如,上述实施例中具体SRIOV物理网卡向虚拟机发送数据时物理机对虚拟机的控制为例对根据本发明实施例提供的虚拟机的流量控制方法的各步骤进行了具体描述,然而这并非是本发明唯一的实施方式,其还可以利用相似的处理流程实施于采用其他技术的网卡与虚拟机交互的过程中,本发明对此不作限定。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,提供了一种物理机,上述物理机可以应用于如图1所示的硬件环境中。
如图1所示,SRIOV物理网卡101在启用SRIOV之后会生成若干接口102,物理网卡101的功能在于转发物理网口103与接口102之间的数据,物理网口103在SRIOV场景中充当一个对外的网络接口,它与外部的物理媒介(如光纤)104连接,与物理媒介104实现数据交互;VF106是支持SRIOV的物理网卡101所虚拟出的一个“网卡”或者说虚拟出来的一个实例,它会以一个独立网卡的形式呈现出来,每一个VF106有它自己独享的PCI配置区域,并且可能与其他VF106共享着同一个物理资源。由图1可知,SRIOV物理网卡101将通过VF106向虚拟机107发送数据,而不经过物理机的虚拟化网络处理。如此一来即可跳过中间的虚拟化层,以达到接近物理环境的性能。上述以SRIOV物理网卡进行举例,本实施例对此不做限定,本实施例的虚拟机的流量控制方法可以应用于任意的物理网卡可以直接向虚拟机发送数据而不经过物理机的虚拟化网络处理的场景中。
可选地,在本实施例中,如图9所示,该物理机包括:
1)第一获取单元802,用于当需向运行在所述物理机上的虚拟机发送中断信号时,获取预设时间段内已发送给所述虚拟机的中断信号的数量;
2)第一判断单元804,用于判断所述已发送给所述虚拟机的中断信号的数量是否小于预设门限;
3)第一输出单元806,用于若所述已发送给所述虚拟机的中断信号的数量小于所述预设门限,则向所述虚拟机发送所述第一中断信号,以使所述虚拟机响应所述第一中断信号接收第一数据;
4)缓存单元808,用于若所述已发送给所述虚拟机的中断信号的数量等于所述预设门限,则将所述第一中断信号存入到等待队列中。
应当明确的是,本发明实施例所要解决的问题之一是提供一种物理机,以便于对SRIOV物理网卡的虚拟机进行流量控制。
具体地,虚拟化网络技术通常是指在一个物理机上可以同时运行多个互不干扰的逻辑网络(虚拟机,例如,图1所示的虚拟机107),这些逻辑网络可以有自己特定的拓扑和路由算法,并允许各逻辑网络采用完全不同的体系结构,从而允许虚拟机(VirtualMachine)中实现充分实验、完全创新、各具特色的网络技术。其中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统;物理机是相对于虚拟机而言的对实体计算机的称呼,物理机提供给虚拟机以硬件环境,通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统(一个外界操作系统和虚拟机中的数个操作系统),并且几个操作系统间还可以实现通信,就像是有多台计算机一样。
在另一方面,随着虚拟化网络技术的使用范围越来越广泛,新的虚拟化网络技术也层出不穷。其中,利用硬件虚拟化网络技术实现的SRIOV物理网卡相比其他的虚拟化网络技术,可以大大减少网络传输的延时,具有明显的性能优势。众所周知,典型的虚拟化网络是在一台物理机上支持多台虚拟机,这必然需要对虚拟机进行网络流量的配置和管理,现有技术中,物理机是通过设置数据流的配额来实现。然而,对于SRIOV物理网卡,数据直接通过VF直接进入虚拟机,而不经过物理机的虚拟化网络处理,因此,现有的通过设置数据流的配额来实现网络流量的配置和管理已经不再生效。
为解决上述问题,在本发明实施例中,采用了对预设时间段内发送给虚拟机的中断信号的数量进行限制的方式来达到对虚拟机的流量控制的目的。具体地,在本发明实施例中,可以当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量,并判断已发送给虚拟机的中断信号的数量是否小于预设门限,进而若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送中断信号,若已发送给虚拟机的中断信号的数量等于预设门限,则将中断信号存入到等待队列中。由于虚拟机在接收到中断信号后才能接收数据,因此通过控制向虚拟机发送的中断信号的数量来实现对虚拟机的流量控制,进而解决了中在数据直接进入虚拟机而不经过物理机的虚拟化网络处理时无法对SRIOV物理网卡虚拟机接收到的数据进行流量控制的技术问题。
例如,在物理机使用了SRIOV物理网卡的场景下,虽然SRIOV物理网卡数据不再经过物理机,但是中断信号仍然需要通过物理机注入虚拟机,也就是说,当SRIOV物理网卡要向虚拟机传输数据时,首先要向物理机发送数据传输请求,然后物理机需要向虚拟机发送中断信号,才能触发虚拟机接收SRIOV物理网卡的数据,而对于虚拟机而言,虚拟机每收到一个中断信号则接收一个数据包。
本实施例中,当物理机获知需向虚拟机发送中断信号时,物理机获取预设时间段内已发送给所述虚拟机的中断信号的数量,进而,物理机判断该数量是否小于预设门限,若该数量小于预设门限,物理机则向虚拟机发送第一中断信号,以使所述虚拟机响应所述第一中断信号接收第一数据,若该数量等于预设门限,物理机则将该第一中断信号存入到等待队列中。
在此基础上,还可以设置有计数器,该计数器可以用于对预设时间段内已发送给所述虚拟机的中断信号进行计数。具体地,在本发明实施例中,物理机获取预设时间段内已发送给虚拟机的中断信号的数量,是指物理机从该计数器中读取已发送给虚拟机的中断信号的数量,以便于进行后续的对已发送给虚拟机的中断信号的数量的判断。
例如,在一个场景下,当物理机需向虚拟机发送中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量,并判断已发送给虚拟机的中断信号的数量是否小于预设门限,进而,若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送中断信号后,物理机对计数器执行加1操作。当然,这只是一种示例,在一些实施例中,物理机也可以对计数器执行减1操作,本发明对此不作限定。进一步地,物理机可以当经过预设时间段时,对计数器执行清零操作,从而,从下一预设时间段开始重新计数。
当然,以上只是一种示例,并不意味着对本发明构成了限定。具体来说,可以设置任意一个或多个具有计数功能的装置,以便物理机对已发送给虚拟机的中断信号的数量进行判断。
需要说明的是,本发明通过以上描述提供了一种本发明技术方案的可行的实施环境,然而应当理解的是,以上描述仅仅是一种示例性的描述,以便于对本发明技术方案及其工作环境的理解,而不应视为是对本发明的限定。
在本发明实施例中,在SRIOV标准中,数据是直接从SRIOV物理网卡通过VF传输至虚拟机的,而控制信令是需要物理机向虚拟机发送的。具体地,该控制信令就包含了本发明技术方案中的中断信号。本发明实施例中,中断信号可以用于通知虚拟机进行数据接收,即虚拟机在接收到中断信号后,才会开启接收数据。
具体地,在本发明实施例中,物理机在获知有数据要发送给虚拟机时,获取已发送预设时间段内已发送给虚拟机的中断信号的数量。例如,作为一种可选的方案,上述装置还包括:
1)第一接收单元,用于接收来自第三方设备的第一数据传输请求;
2)处理单元,用于判断所述第一数据传输请求是否指示所述第三方设备需向所述虚拟机发送所述第一数据;若所述第一数据传输请求指示所述第三方设备需向所述虚拟机发送所述第一数据,则生成所述第一中断信号,并判断出需向所述虚拟机发送所述第一中断信号。
当第三方设备有数据需要发送至虚拟机时,该第三方设备可以向物理机发送第一数据传输请求,物理机在接收到该数据传输请求后,物理机判断所述第一数据传输请求是否指示所述第三方设备需向所述虚拟机发送所述第一数据。
例如,在一个实施例中,预先设置的计数器对已发送给虚拟机的中断信号进行计数,当物理机判断出需向虚拟机发送中断信号时,物理机从计数器中读取预设时间段内已发送给虚拟机的中断信号的数量,比如,物理机从计数器中读取1秒钟内已发送给虚拟机的中断信号的数量。进而,如果1秒钟内已发送给虚拟机的中断信号的数量未超过预设门限,物理机才会向虚拟机发送该中断信号。
需要说明的是,预设时间段的时间长度为初始化时预先设置好的,可以为任意值,上述场景中以1秒钟为例进行说明,但并不做限定。
可选地,在接收来自第三方设备的第一数据传输请求时,本实施例的物理机还包括:
1)第二接收单元,用于接收所述第三方设备发送的所述第一数据;将接收到的所述第一数据存储在物理机上的内存中;
其中,所述虚拟机响应所述第一中断信号接收第一数据包括:所述虚拟机响应所述第一中断信号从所述物理机上的所述内存中读取所述第一数据。
在本发明实施例中,为了实现虚拟机的流量控制,本发明的物理机主要是对发送给虚拟机的中断信号的数量进行控制,因此,物理机在获取到预设时间段内已发送给虚拟机的中断信号的数量后,物理机可以判断已发送给虚拟机的中断信号的数量是否小于预设门限。
具体地,在本发明实施例中的预设门限的取值,可以为初始化时配置好的。例如可选地,该物理机还包括:
1)第二获取单元,用于获取初始化配置信息;
2)设置单元,用于将所述预设门限设置为所述初始化配置信息中携带的配置值,其中,所述配置值用于指示在所述预设时间段内向所述虚拟机发送所述中断信号的数量的最大值。
本发明实施例中,物理机可以首先进行初始化配置。例如对于上述实施例,物理机获取初始化配置信息,该初始化信息可以是管理员输入的信息,也可以是管理设备发送给物理机的信息,本发明不做限制。初始化配置信息中可以携带配置值,该配置值用于指示在所述预设时间段内向所述虚拟机发送所述中断信号的数量的最大值。例如,物理机从初始化配置信息中提取出配置值为10个/秒,则表示物理机在1秒钟内向虚拟机发送中断信号的数量的最大值为10个。
在以上描述的基础上,作为进一步可选的方式,在本发明实施例中,上述物理机还包括:
1)第二判断单元,用于当到达下一个预设时间段、且未收到来自第三方设备的第二数据传输请求时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限,其中,所述第二数据传输请求用于指示所述第三方设备需向所述虚拟机发送第二数据;
2)第二输出单元,用于若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号。
具体地,本实施例中,“下一个预设时间段”和上述的“预设时间段”的时间长度可以是相等的,例如都为1秒。当到达下一个预设时间段时,物理机同样可以去判断该下一个预设时间段内已发送给虚拟机的中断信号的数量是否小于所述预设门限,若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号。
在以上描述的基础上,作为进一步可选的方式,在本发明实施例中,上述物理机还包括:
1)第三判断单元,用于当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限;
2)第三输出单元,用于若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列不为空,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,并将所述第二中断信号存入到所述等待队列中,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号;若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列为空,则将所述第二中断信号发送给所述虚拟机,以使所述虚拟机响应所述第二中断信号接收第二数据。
通过上述实施例,对本发明技术方案进行了描述,然而应当理解的是,上述实施例仅用于对本发明技术方案的理解,并不会对本发明构成限定。例如,上述实施例中具体SRIOV物理网卡向虚拟机发送数据时物理机对虚拟机的控制为例对根据本发明实施例提供的虚拟机的流量控制方法的各步骤进行了具体描述,然而这并非是本发明唯一的实施方式,其还可以利用相似的处理流程实施于采用其他技术的网卡与虚拟机交互的过程中,本发明对此不作限定。需要说明的是,对于前述的各个单元均可以应用上述各方法实施例中的方法步骤。
实施例3
根据本发明实施例,提供了一种物理机,上述物理机可以为应用于如图1所示的硬件环境中。
如图1所示,SRIOV物理网卡101在启用SRIOV之后会生成若干接口102,物理网卡101的功能在于转发物理网口103与接口102之间的数据,物理网口103在SRIOV场景中充当一个对外的网络接口,它与外部的物理媒介(如光纤)104连接,与物理媒介104实现数据交互;VF106是支持SRIOV的物理网卡101所虚拟出的一个“网卡”或者说虚拟出来的一个实例,它会以一个独立网卡的形式呈现出来,每一个VF106有它自己独享的PCI配置区域,并且可能与其他VF106共享着同一个物理资源。由图1可知,SRIOV物理网卡101将通过VF106向虚拟机107发送数据,而不经过物理机的虚拟化网络处理。如此一来即可跳过中间的虚拟化层,以达到接近物理环境的性能。上述以SRIOV物理网卡进行举例,本实施例对此不做限定,本实施例的虚拟机的流量控制方法可以应用于任意的物理网卡可以直接向虚拟机发送数据而不经过物理机的虚拟化网络处理的场景中。
可选地,在本实施例中,上述物理机包括:
1)存储器,被设置为存储预设门限以及第一中断信号;
2)处理器,被设置为判断所述已发送给所述虚拟机的中断信号的数量是否小于预设门限;
3)通讯接口,被设置为当需向虚拟机发送中断信号时,获取预设时间段内已发送给所述虚拟机的中断信号的数量;还被设置为若所述已发送给所述虚拟机的中断信号的数量小于所述预设门限,则向所述虚拟机发送所述第一中断信号,以使所述虚拟机响应所述第一中断信号接收第一数据。
可选地,在本实施例中,上述存储器还可以用于存储上述实施例1中的搜索过程中所存储的其他数据。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
实施例4
根据本发明实施例还提供了一种存储介质,上述存储介质可以应用于如图1所示的硬件环境中。
如图1所示,SRIOV物理网卡101在启用SRIOV之后会生成若干接口102,物理网卡101的功能在于转发物理网口103与接口102之间的数据,物理网口103在SRIOV场景中充当一个对外的网络接口,它与外部的物理媒介(如光纤)104连接,与物理媒介104实现数据交互;VF106是支持SRIOV的物理网卡101所虚拟出的一个“网卡”或者说虚拟出来的一个实例,它会以一个独立网卡的形式呈现出来,每一个VF106有它自己独享的PCI配置区域,并且可能与其他VF106共享着同一个物理资源。由图1可知,SRIOV物理网卡101将通过VF106向虚拟机107发送数据,而不经过物理机的虚拟化网络处理。如此一来即可跳过中间的虚拟化层,以达到接近物理环境的性能。上述以SRIOV物理网卡进行举例,本实施例对此不做限定,本实施例的虚拟机的流量控制方法可以应用于任意的物理网卡可以直接向虚拟机发送数据而不经过物理机的虚拟化网络处理的场景中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1:当需向虚拟机发送第一中断信号时,获取预设时间段内已发送给虚拟机的中断信号的数量;
S2:判断已发送给虚拟机的中断信号的数量是否小于预设门限;
S3:若已发送给虚拟机的中断信号的数量小于预设门限,则向虚拟机发送第一中断信号,以使虚拟机响应第一中断信号接收第一数据;
S4:若已发送给虚拟机的中断信号的数量等于预设门限,则将第一中断信号存入到等待队列中。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1:当到达下一个预设时间段、且未收到来自第三方设备的第二数据传输请求时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限,其中,所述第二数据传输请求用于指示所述第三方设备需向所述虚拟机发送第二数据;
S2:若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1:当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限;
S2:若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列不为空,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,并将所述第二中断信号存入到所述等待队列中,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号;
S3:若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列为空,则将所述第二中断信号发送给所述虚拟机,以使所述虚拟机响应所述第二中断信号接收第二数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1:接收来自第三方设备的第一数据传输请求;
S2:判断所述第一数据传输请求是否指示所述第三方设备需向所述虚拟机发送所述第一数据;
S3:若所述第一数据传输请求指示所述第三方设备需向所述虚拟机发送所述第一数据,则生成所述第一中断信号,并判断出需向所述虚拟机发送所述第一中断信号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1:在接收来自第三方设备的第一数据传输请求时,所述方法还包括:接收所述第三方设备发送的所述第一数据;将接收到的所述第一数据存储在物理机上的内存中,其中,所述虚拟机运行在所述物理机上;
其中,所述虚拟机响应所述第一中断信号接收第一数据包括:所述虚拟机响应所述第一中断信号从所述物理机上的所述内存中读取所述第一数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1:获取初始化配置信息;
S2:将所述预设门限设置为所述初始化配置信息中携带的配置值,其中,所述配置值用于指示在所述预设时间段内向所述虚拟机发送所述中断信号的数量的最大值。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的服务器和客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种虚拟机的流量控制方法,其特征在于,包括:
当需向所述虚拟机发送第一中断信号时,获取预设时间段内已发送给所述虚拟机的中断信号的数量;
判断所述已发送给所述虚拟机的中断信号的数量是否小于预设门限;
若所述已发送给所述虚拟机的中断信号的数量小于所述预设门限,则向所述虚拟机发送所述第一中断信号,以使所述虚拟机响应所述第一中断信号接收第一数据;
若所述已发送给所述虚拟机的中断信号的数量等于所述预设门限,则将所述第一中断信号存入到等待队列中。
2.根据权利要求1所述的虚拟机的流量控制方法,其特征在于,所述将所述第一中断信号存入到等待队列中之后,所述方法还包括:
当到达下一个预设时间段、且未收到来自第三方设备的第二数据传输请求时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限,其中,所述第二数据传输请求用于指示所述第三方设备需向所述虚拟机发送第二数据;
若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号。
3.根据权利要求1所述的虚拟机的流量控制方法,其特征在于,所述将所述第一中断信号存入到等待队列中之后,所述方法还包括:
当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限;
若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列不为空,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,并将所述第二中断信号存入到所述等待队列中,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号;若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列为空,则将所述第二中断信号发送给所述虚拟机,以使所述虚拟机响应所述第二中断信号接收第二数据。
4.根据权利要求1所述的虚拟机的流量控制方法,其特征在于,通过以下步骤判断是否需向所述虚拟机发送第一中断信号:
接收来自第三方设备的第一数据传输请求;
判断所述第一数据传输请求是否指示所述第三方设备需向所述虚拟机发送所述第一数据;
若所述第一数据传输请求指示所述第三方设备需向所述虚拟机发送所述第一数据,则生成所述第一中断信号,并判断出需向所述虚拟机发送所述第一中断信号。
5.根据权利要求4所述的虚拟机的流量控制方法,其特征在于,
在接收来自第三方设备的第一数据传输请求时,所述方法还包括:接收所述第三方设备发送的所述第一数据;将接收到的所述第一数据存储在物理机上的内存中,其中,所述虚拟机运行在所述物理机上;
其中,所述虚拟机响应所述第一中断信号接收第一数据包括:所述虚拟机响应所述第一中断信号从所述物理机上的所述内存中读取所述第一数据。
6.根据权利要求3至5中任一项所述的虚拟机的流量控制方法,其特征在于,所述第三方设备为单根输入输出虚拟化SRIOV物理网卡。
7.根据权利要求1至5中任一项所述的虚拟机的流量控制方法,其特征在于,所述获取预设时间段内已发送给所述虚拟机的中断信号的数量之前,所述方法还包括:
获取初始化配置信息;
将所述预设门限设置为所述初始化配置信息中携带的配置值,其中,所述配置值用于指示在所述预设时间段内向所述虚拟机发送中断信号的数量的最大值。
8.一种物理机,其特征在于,包括:
第一获取单元,用于当需向运行在所述物理机上的虚拟机发送第一中断信号时,获取预设时间段内已发送给所述虚拟机的中断信号的数量;
第一判断单元,用于判断所述已发送给所述虚拟机的中断信号的数量是否小于预设门限;
第一输出单元,用于若所述已发送给所述虚拟机的中断信号的数量小于所述预设门限,则向所述虚拟机发送所述第一中断信号,以使所述虚拟机响应所述第一中断信号接收第一数据;
缓存单元,用于若所述已发送给所述虚拟机的中断信号的数量等于所述预设门限,则将所述第一中断信号存入到等待队列中。
9.根据权利要求8所述的物理机,其特征在于,还包括:
第二判断单元,用于当到达下一个预设时间段、且未收到来自第三方设备的第二数据传输请求时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限,其中,所述第二数据传输请求用于指示所述第三方设备需向所述虚拟机发送第二数据;
第二输出单元,用于若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号。
10.根据权利要求8所述的物理机,其特征在于,还包括:
第三判断单元,用于当到达下一个预设时间段、且响应来自第三方设备的第二数据传输请求生成第二中断信号时,判断所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量是否小于所述预设门限;
第三输出单元,用于若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列不为空,则从所述等待队列中移出待发送的中断信号发送给所述虚拟机,并将所述第二中断信号存入到所述等待队列中,其中,所述待发送的中断信号为所述第一中断信号或先于所述第一中断信号存入所述等待队列中的中断信号;若所述下一个预设时间段内已发送给所述虚拟机的中断信号的数量小于所述预设门限、且所述等待队列为空,则将所述第二中断信号发送给所述虚拟机,以使所述虚拟机响应所述第二中断信号接收第二数据。
11.根据权利要求8所述的物理机,其特征在于,还包括:
第一接收单元,用于接收来自第三方设备的第一数据传输请求;
处理单元,用于判断所述第一数据传输请求是否指示所述第三方设备需向所述虚拟机发送所述第一数据;若所述第一数据传输请求指示所述第三方设备需向所述虚拟机发送所述第一数据,则生成所述第一中断信号,并判断出需向所述虚拟机发送所述第一中断信号。
12.根据权利要求11所述的物理机,其特征在于,还包括:
第二接收单元,用于接收所述第三方设备发送的所述第一数据;将接收到的所述第一数据存储在所述物理机上的内存中;
其中,所述第一中断信号用于使所述虚拟机从所述物理机上的所述内存中读取所述第一数据。
13.根据权利要求10至12中任一项所述的物理机,其特征在于,所述第三方设备为单根输入输出虚拟化SRIOV物理网卡。
14.根据权利要求8至12中任一项所述的物理机,其特征在于,还包括:
第二获取单元,用于获取初始化配置信息;
设置单元,用于将所述预设门限设置为所述初始化配置信息中携带的配置值,其中,所述配置值用于指示在所述预设时间段内向所述虚拟机发送中断信号的数量的最大值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410650425.7A CN105656795A (zh) | 2014-11-14 | 2014-11-14 | 虚拟机的流量控制方法及物理机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410650425.7A CN105656795A (zh) | 2014-11-14 | 2014-11-14 | 虚拟机的流量控制方法及物理机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105656795A true CN105656795A (zh) | 2016-06-08 |
Family
ID=56480178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410650425.7A Pending CN105656795A (zh) | 2014-11-14 | 2014-11-14 | 虚拟机的流量控制方法及物理机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105656795A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645456A (zh) * | 2016-07-20 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 流量控制方法和流量控制系统 |
CN113687916A (zh) * | 2021-08-17 | 2021-11-23 | 锐捷网络股份有限公司 | 数据处理方法及装置、时间更新方法及装置、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102315968A (zh) * | 2011-09-19 | 2012-01-11 | 华中科技大学 | 虚拟机环境下的网络配置方法 |
CN103473136A (zh) * | 2013-09-02 | 2013-12-25 | 华为技术有限公司 | 一种虚拟机的资源配置方法和通信设备 |
-
2014
- 2014-11-14 CN CN201410650425.7A patent/CN105656795A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102315968A (zh) * | 2011-09-19 | 2012-01-11 | 华中科技大学 | 虚拟机环境下的网络配置方法 |
CN103473136A (zh) * | 2013-09-02 | 2013-12-25 | 华为技术有限公司 | 一种虚拟机的资源配置方法和通信设备 |
Non-Patent Citations (2)
Title |
---|
JIANGLU CHEN等: "SR-IOV based Virtual Network Sharing", 《ACM》 * |
黄智强: "基于SR-IOV的高性能I/O虚拟化研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645456A (zh) * | 2016-07-20 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 流量控制方法和流量控制系统 |
CN107645456B (zh) * | 2016-07-20 | 2021-04-30 | 菜鸟智能物流控股有限公司 | 流量控制方法和流量控制系统 |
CN113687916A (zh) * | 2021-08-17 | 2021-11-23 | 锐捷网络股份有限公司 | 数据处理方法及装置、时间更新方法及装置、电子设备 |
CN113687916B (zh) * | 2021-08-17 | 2023-01-10 | 锐捷网络股份有限公司 | 数据处理方法及装置、时间更新方法及装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104426885B (zh) | 异常账号提供方法及装置 | |
CN105939279B (zh) | 流量处理方法和装置 | |
CN108052299A (zh) | 终端设备、多屏拼接系统和方法 | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
CN106096927A (zh) | 信息更新的方法、装置以及服务器 | |
CN109660639A (zh) | 一种数据上传方法、设备、系统及介质 | |
CN108600145B (zh) | 一种确定DDoS攻击设备的方法及装置 | |
CN106851779A (zh) | 一种识别接入点和热点的方法及移动终端 | |
CN109828843A (zh) | 一种计算节点间数据传输的方法、系统及电子设备 | |
CN106572146A (zh) | 消息发送方法及消息发送装置 | |
CN114726947B (zh) | 消息展示方法、装置、用户终端及可读存储介质 | |
CN104618364B (zh) | 信息处理方法、电子设备及服务器 | |
CN106302459A (zh) | 联网操作方法及装置 | |
CN108366098A (zh) | 一种网络节点的数据交互方法及装置 | |
CN105991588A (zh) | 一种防御消息攻击的方法及装置 | |
CN104363257B (zh) | 一种用户界面数据刷新方法和设备 | |
CN105656795A (zh) | 虚拟机的流量控制方法及物理机 | |
CN107741873A (zh) | 业务处理方法及装置 | |
CN106502841B (zh) | 数据备份方法及装置 | |
CN103299298A (zh) | 处理业务的方法和系统 | |
CN106202456B (zh) | 发送图片的方法及装置 | |
CN107295412A (zh) | 数据处理方法、装置及系统 | |
CN107643938A (zh) | 数据传输方法、装置及存储介质 | |
CN103414756A (zh) | 一种任务分发方法、分发节点及系统 | |
CN110347729A (zh) | 事件显示方法及装置、存储介质、电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160608 |