一种数据包发送的方法和设备的制作方法

文档序号:7775064阅读:141来源:国知局
一种数据包发送的方法和设备的制作方法
【专利摘要】本发明实施例提供一种数据包发送的方法和设备,涉及通信领域,以控制虚拟交换机向目的设备发送数据包的速率。该方法包括:虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,并在接收到该第一虚拟机通过对应的第二虚拟网卡发送的数据包后,将该数据包发送至该第一虚拟网卡,其中,该第一虚拟网卡配置有第一数据包发送规则,则该虚拟交换机接收该第一虚拟网卡按照第一发送速率发送的该数据包,并将该数据包按照该第一发送速率发送至目的设备。本发明实施例用于虚拟机向目的设备发送数据包。
【专利说明】一种数据包发送的方法和设备
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种数据包发送的方法和设备。
【背景技术】
[0002]在服务器虚拟化技术中,物理机中配置的虚拟机在发送数据包时,需要通过虚拟交换机将数据包发送至目的设备(如物理网卡或者物理机中配置的其他虚拟机),但是,在数据包发送的过程中,会占用物理资源(如物理网卡的带宽资源,CPU的计算资源等),当该物理机发送数据包的速率过大时,就会占用过多的物理资源,影响到其他设备(如物理机中配置的其他虚拟机)的正常运行,因此,需要对虚拟机的数据包发送速率进行控制。
[0003]在现有的对虚拟机的数据包发送速率进行控制的方法中,物理网卡中配置有数据包发送规则,在虚拟机通过物理网卡发送数据包的情况下,虚拟交换机接收该虚拟机发送的数据包,并将该数据包发送至物理网卡,该物理网卡根据数据包发送规则将该数据包发送至外部设备(如网络中的另一台服务器),其中,该数据包发送规则包括数据包的发送速率等信息,从而实现对数据包发送速率的控制。
[0004]由上可知,虚拟交换机向目的设备发送数据包的速率是不可控的,若该目的设备为物理机中配置的其他虚拟机,由于虚拟交换机将该数据包发送至该物理机中配置的其他虚拟机的过程中不需要经过物理网卡,因此,则无法实现对数据包发送速率的控制。

【发明内容】

[0005]本发明的实施例提供一种数据包发送的方法和设备,以控制虚拟交换机向目的设备发送数据包的速率。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,提供一种数据包发送的方法,包括:
[0008]虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,其中,所述第一虚拟网卡配置有第一数据包发送规则,所述第一数据包发送规则包括数据包的第一发送速率;
[0009]在所述第一虚拟机对应的第二虚拟网卡接收到所述第一虚拟机发送的数据包后,所述虚拟交换机接收所述第二虚拟网卡发送的所述数据包;
[0010]所述虚拟交换机将所述数据包发送至所述第一虚拟网卡;
[0011]所述虚拟交换机接收所述第一虚拟网卡按照所述第一发送速率发送的所述数据包,并将所述数据包按照所述第一发送速率发送至目的设备。
[0012]在第一方面的第一种可能的实现方式中,在所述虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡前,所述方法还包括:
[0013]所述虚拟交换机接收用户发送的虚拟网卡建立指令,其中,所述虚拟网卡建立指令为用户在确定所述第一虚拟机占用物理资源超过预设阈值时发送的;
[0014]所述虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,包括:
[0015]所述虚拟交换机根据所述虚拟网卡建立指令建立所述第一虚拟网卡。[0016]结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟交换机将所述数据包按照所述第一发送速率发送至目的设备,包括:
[0017]所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机的物理网卡;或者,
[0018]所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机中的第二虚拟机。
[0019]结合第二种可能的实现方式,在第三种可能的实现方式中,所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机的物理网卡,包括:
[0020]所述虚拟交换机根据所述第一发送速率将所述数据包发送至配置有第二数据包发送规则的物理网卡,其中,所述第二数据包发送规则包括数据包的第二发送速率,以便所述物理网卡根据所述第二发送速率将所述数据包发送至外部设备。
[0021]结合第一方面至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
[0022]接收用户发送的网卡删除指令;
[0023]根据所述网卡删除指令删除所述第一虚拟网卡。
[0024]第二方面,提供一种虚拟交换机,包括:
[0025]处理单元,用于建立对应物理机中第一虚拟机的第一虚拟网卡,其中,所述第一虚拟网卡配置有第一数据包发送规则,所述第一数据包发送规则包括数据包的第一发送速率;
[0026]接收单元,用于在所述第一虚拟机对应的第二虚拟网卡接收到所述第一虚拟机发送的数据包后,接收所述第二虚拟网卡发送的所述数据包;
[0027]发送单元,用于将所述接收单元接收到的所述数据包发送至所述第一虚拟网卡;
[0028]所述接收单元还用于,在所述第一虚拟网卡接收到所述发送单元发送的所述数据包后,接收所述第一虚拟网卡按照所述第一发送速率发送的所述数据包;
[0029]所述发送单元还用于,在所述接收单元接收到所述第一虚拟网卡按照所述第一发送速率发送的所述数据包后,将所述数据包按照所述第一发送速率发送至目的设备。
[0030]在第一种可能的实现方式中,所述接收单元具体用于,接收用户发送的虚拟网卡建立指令,其中,所述虚拟网卡建立指令为用户在确定所述第一虚拟机占用物理资源超过预设阈值时发送的;
[0031 ] 所述处理单元具体用于,根据所述虚拟网卡建立指令建立所述第一虚拟网卡。
[0032]结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述发送单元具体用于:
[0033]根据所述第一发送速率将所述数据包发送至物理网卡;或者,
[0034]根据所述第一发送速率将所述数据包发送至所述物理机中的第二虚拟机。
[0035]结合第二种可能的实现方式,在第三种可能的实现方式中,所述发送单元具体用于:
[0036]根据所述数据包的第一发送速率将所述数据包发送至配置有第二数据包发送规则的物理网卡,其中,所述第二数据包发送规则包括数据包的第二发送速率,以便所述物理网卡根据所述第二发送速率将所述数据包发送至外部设备。[0037]结合第二方面至第三种可能的实现方式中的任一项可能的实现方式,在第四种可能的实现方式中,所述接收单元还用于,接收用户发送的网卡删除指令;
[0038]所述处理单元还用于,根据所述网卡删除指令删除所述第一虚拟网卡。
[0039]采用上述方案,虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,并在该第一虚拟机向对应的第二虚拟网卡发送数据包后,接收该第二虚拟网卡发送的该数据包,则该虚拟交换机将该数据包发送至该第一虚拟网卡,这样,该虚拟交换机将该第一虚拟机发送至该第二虚拟网卡的数据包转换为该虚拟交换机发送至该第一虚拟网卡的数据包,并且,该第一虚拟网卡可配置数据包发送规则,控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率,从而控制该虚拟交换机将该数据包发送至目的设备的发送速率,防止了该第一虚拟机通过该虚拟交换机将数据包发送至目的设备的速率过大造成该第一虚拟机占用的物理资源过大,提高了用户体验。
【专利附图】

【附图说明】
[0040]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1为本发明实施例提供的一种数据包发送方法的流程示意图;
[0042]图2为本发明实施例提供的一种数据包发送方法的示意图;
[0043]图3为本发明实施例提供的另一种数据包发送方法的流程示意图;
[0044]图4为本发明实施例提供的一种虚拟交换机的结构示意图;
[0045]图5为本发明实施例提供的另一种虚拟交换机的结构示意图。
【具体实施方式】
[0046]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]本发明实施例提供一种数据包的发送方法,如图1所示,包括:
[0048]SIO1、虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡。
[0049]其中,该第一虚拟网卡配置有第一数据包发送规则,该第一数据包发送规则包括数据包的第一发送速率。
[0050]具体地,在该虚拟交换机接收到用户发送的虚拟网卡建立指令后,根据该虚拟网卡建立指令建立对应物理机中第一虚拟机的虚拟网卡。
[0051]需要说明的是,在物理资源不足或者该第一虚拟机的发送速率过大时,为了使数据包正常传输,用户可以向该虚拟交换机下发虚拟网卡建立指令,该虚拟交换机根据该虚拟网卡建立指令建立该第一虚拟机的第一虚拟网卡,从而根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向目的设备发送数据包的速率。
[0052]其中,上述第一虚拟网卡中配置的第一数据包发送规则可以由流量控制模块完成,该流量控制模块可以是独立于虚拟交换机的模块,具体地,该流量控制模块对该第一虚拟网卡设置QoS (Quality of Service,服务质量保证)参数,从而实现在该第一虚拟网卡上配置第一数据包发送规则,该QoS参数包括传输带宽,上限带宽和突发流量,其中,该传输带宽为设置的传输该数据包的最低带宽,保证了该第一虚拟网卡对应的第一虚拟机发送该数据包的发送速率,从而保证该数据包的正常传输;该上限带宽为设置的传输该数据包的最高带宽,保证了在该第一虚拟机传输的流量较大(即产生突发流量)时,该第一虚拟机发送该数据包发送的发送速率,从而保证该数据包的正常传输,该上限带宽大于等于该传输带宽;该突发流量为该第一虚拟机传输的流量较大时传输的流量与基于传输带宽传输的流量的差值,突发流量越大,该第一虚拟机以该上限带宽发送数据包的时间越长。这样,由于发送该数据包的带宽的不同对应的发送速率也不相同,因此,通过QoS参数设置不同的传输带宽,上限带宽和突发流量能够对应不同的第一发送速率,从而实现对该第一虚拟机通过该虚拟交换机向目的设备发送数据包的发送速率的控制。
[0053]S102、在该第一虚拟机对应的第二虚拟网卡接收到该第一虚拟机发送的数据包后,该虚拟交换机接收该第二虚拟网卡发送的该数据包。
[0054]需要说明的是,该第二虚拟网卡为该第一虚拟机的后端虚拟网卡,该后端虚拟网卡是用户创建该第一虚拟机时,对应该第一虚拟机一同创建的,也就是说,该第一虚拟机通过该第二虚拟网卡接收和发送数据包;其中,该第二虚拟网卡中包括发送队列与接收队列,上述流量控制模块对该发送队列的流量控制具有很好的效果,而对该接收队列的流量控制具有较大的缺陷。由于,该第一虚拟机通过该第二虚拟网卡发送的数据包不经过该第二虚拟网卡的发送队列,因此,在该第二虚拟网卡中配置数据包发送规则无法有效控制该第一虚拟机通过该虚拟机换机向目的设备发送数据包的发送速率。
[0055]示例地,如图2所示,所述图2为数据包发送的示意图,图2所示的物理机包括虚拟交换机、第一虚拟机、该第一虚拟机的后端虚拟网卡、该虚拟交换机建立的对应该第一虚拟机的第一虚拟网卡以及第二虚拟机,该第二虚拟机的后端虚拟网卡,还有该物理机的物理网卡以及该物理机外的外部设备。其中,图2中的小圆圈为接收或发送数据包的端口,数字为发送或接收数据包的路径。则该第二虚拟网卡接收该第一虚拟机发送的数据包如图2中的路径I所示,路径2则表示该虚拟交换机接收该第二虚拟网卡发送的该数据包。
[0056]S103、该虚拟交换机将该数据包发送至该第一虚拟网卡。
[0057]示例地,该虚拟交换机在接收到该第二虚拟网卡发送的数据包后,将该数据包转发至该第一虚拟网卡,如图2中的路径3所示。
[0058]S104、该虚拟交换机接收该第一虚拟网卡按照该第一发送速率发送的该数据包,并将该数据包按照该第一发送速率发送至目的设备。
[0059]需要说明的是,该第一虚拟网卡发送至该虚拟交换机的数据包经过该第一虚拟网卡的发送队列,则该第一虚拟网卡配置的该第一数据包发送规则可以有效控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率。
[0060]如图2中的路径4所示,示例地,该流量控制模块为该虚拟网卡设置的QoS参数包括传输带宽,上限带宽和突发流量,记该传输带宽为传输带宽A,记该上限带宽为上限带宽B,记该突发流量为突发流量C,其中,该突发流量C为设置的该第一虚拟机突发流量的上限值,则该第一虚拟网卡根据该QoS参数对应的第一发送速率向该虚拟交换机发送该数据包,该虚拟交换机根据该第一发送速率将该数据包发送至目的设备,其中,当该第一虚拟机没有突发流量时,该第一虚拟网卡将接收到的数据包根据该传输带宽A对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机将该数据包根据该传输带宽A对应的数据包发送速率发送至该目的设备。
[0061]当该第一虚拟机产生该突发流量D时(D小于C),该第一虚拟网卡将接收到的数据包根据该突发流量D对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机根据该突发流量D对应的数据包发送速率将该数据包发送至该目的设备,当该第一虚拟机没有突发流量时,则该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包,该虚拟交换机恢复以传输带宽A对应的数据包发送速率向该目的设备发送数据包。
[0062]另外,当该第一虚拟机产生该突发流量C时,该虚拟网卡将接收到的数据包根据该上限带宽B对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机根据该上限带宽B对应的数据包发送速率将该数据包发送至该目的设备,并在C/ (B-A)秒后,当该第一虚拟机没有突发流量时,该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包,该虚拟交换机恢复以传输带宽A对应的数据包发送速率向该目的设备发送数据包。
[0063]具体地,该目的设备可以是该物理机中的第二虚拟机,则该虚拟交换机根据该第一发送速率将该数据包发送至该第二虚拟机(如图2中的路径5,路径6和路径7所示);该目的设备也可以是该物理机的物理网卡,则该虚拟交换机根据该第一发送速率将该数据包发送至该物理网卡(如图2中的路径8和路径9所示)。
[0064]由上所述,该第一虚拟机向对应物理机中的第二虚拟机发送数据包时,数据包发送路径如图2中的路径1,2,3,4,5,6,7所示;该第一虚拟机向对应物理机的物理网卡发送数据包时,数据包发送路径如图2中的路径1,2,3,4,8,9,10所示,这样,该第一虚拟机向目的设备发送数据包都经过该第一虚拟网卡向该虚拟交换机发送数据包的路径(即图2中的路径4),从而根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向该目的设备发送数据包的速率。
[0065]进一步地,虚拟交换机根据该第一发送速率将该数据包发送至配置有第二数据包发送规则的物理网卡,其中,该第二数据包发送规则包括数据包的第二发送速率,以便该物理网卡根据该第二发送速率将该数据包发送至外部设备。
[0066]其中,上述物理网卡中配置的第二数据包发送规则可以由流量控制模块完成,该流量控制模块可以是独立于虚拟交换机的模块,具体地,该流量控制模块对该物理网卡设置QoS (Quality of Service,服务质量保证)参数,从而实现在该物理网卡上配置第二数据包发送规则,则该物理网卡根据该QoS参数对应的第二发送速率向外部设备发送该数据包,具体可以参考上述第一虚拟网卡根据该第一发送速率向该虚拟交换机发送数据包的描述,此处不再赘述了。
[0067]示例地,如图2中的路径10所示,该物理网卡根据该第二发送速率将该数据包发送至外部设备,该外部设备可以是如网络中的另一台服务器,该网络可以是广域网或者局域网。
[0068]需要说明的是,该流量控制模块还可以设置该第一虚拟机的优先级,在多个虚拟机同时向该物理网卡发送数据包,并在该数据包流量造成该物理网卡的流量拥塞时,该物理网卡可以根据各虚拟机的优先级分配带宽,优先级高的虚拟机可以占用更多的带宽。
[0069]进一步地,在用户需要取消对该第一虚拟机数据包速率的控制时,该虚拟交换机接收网卡删除指令,并根据该网卡删除指令删除该第一虚拟网卡。
[0070]具体地,在物理资源空闲的情况下或者该第一虚拟机的数据包发送速率较小时,用户可以向该虚拟交换机下发网卡删除指令,该虚拟交换机根据该网卡删除指令删除该第一虚拟网卡,从而取消对该第一虚拟机的数据包发送速率的控制,以减小系统功耗。
[0071]采用上述方法,虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,并在该第一虚拟机向对应的第二虚拟网卡发送数据包后,接收该第二虚拟网卡发送的该数据包,则该虚拟交换机将该数据包发送至该第一虚拟网卡,这样,该虚拟交换机将该第一虚拟机发送至该第二虚拟网卡的数据包转换为该虚拟交换机发送至该第一虚拟网卡的数据包,并且,该第一虚拟网卡可配置数据包发送规则,控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率,从而控制该虚拟交换机将该数据包发送至目的设备的发送速率,防止了该第一虚拟机通过该虚拟交换机将数据包发送至目的设备的速率过大造成该第一虚拟机占用的物理资源过大,提高了用户体验。
[0072]本发明实施例提供一种数据包的发送方法,如图3所示,该方法是在以物理机中的第二虚拟机作为目的设备的情况下进行说明的,包括:
[0073]S301、虚拟父换机接收虚拟网卡建立指令,并根据该虚拟网卡建立指令建立对应物理机中第一虚拟机的第一虚拟网卡。
[0074]其中,该第一虚拟网卡配置有第一数据包发送规则,该第一数据包发送规则包括数据包的第一发送速率。
[0075]具体地,在该虚拟交换机接收到用户发送的虚拟网卡建立指令后,根据该虚拟网卡建立指令建立对应物理机中第一虚拟机的虚拟网卡。
[0076]需要说明的是,在物理资源不足或者该第一虚拟机的发送速率过大时,为了使数据包正常传输,用户可以向该虚拟交换机下发虚拟网卡建立指令,该虚拟交换机根据该虚拟网卡建立指令建立该第一虚拟机的第一虚拟网卡,从而根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向目的设备发送数据包的速率。
[0077]其中,上述第一虚拟网卡中配置的第一数据包发送规则可以由流量控制模块完成,该流量控制模块可以是独立于虚拟交换机的模块,具体地,该流量控制模块对该第一虚拟网卡设置QoS (Quality of Service,服务质量保证)参数,从而实现在该第一虚拟网卡上配置第一数据包发送规则,该QoS参数包括传输带宽,上限带宽和突发流量,其中,该传输带宽为设置的传输该数据包的最低带宽,保证了该第一虚拟网卡对应的第一虚拟机发送该数据包的发送速率,从而保证该数据包的正常传输;该上限带宽为设置的传输该数据包的最高带宽,保证了在该第一虚拟机传输的流量较大(即产生突发流量)时,该第一虚拟机发送该数据包发送的发送速率,从而保证该数据包的正常传输,该上限带宽大于等于该传输带宽;该突发流量为该第一虚拟机传输的流量较大时传输的流量与基于传输带宽传输的流量的差值,突发流量越大,该第一虚拟机以该上限带宽发送数据包的时间越长。这样,由于发送该数据包的带宽的不同对应的发送速率也不相同,因此,通过QoS参数设置不同的传输带宽,上限带宽和突发流量能够对应不同的第一发送速率,从而实现对该第一虚拟机通过该虚拟交换机向目的设备发送数据包的发送速率的控制。
[0078]S302、该第一虚拟机向第二虚拟网卡发送数据包。
[0079]需要说明的是,该第二虚拟网卡为该第一虚拟机的后端虚拟网卡,该后端虚拟网卡是用户创建该第一虚拟机时,对应该第一虚拟机一同创建的,则该第一虚拟机发出的数据包会被该第二虚拟网卡接收;其中,该第二虚拟网卡中包括发送队列与接收队列,上述流量控制模块对该发送队列的流量控制具有很好的效果,而对该接收队列的流量控制具有较大的缺陷。由于,该第一虚拟机通过该第二虚拟网卡发送的数据包不经过该第二虚拟网卡的发送队列,因此,在该第二虚拟网卡中配置数据包发送规则无法有效控制该第一虚拟机通过该虚拟机换机向目的设备发送数据包的发送速率。
[0080]S303、该虚拟交换机接收该第二虚拟网卡发送的该数据包。
[0081 ] S304、该虚拟交换机将该数据包发送至该第一虚拟网卡。
[0082]示例地,如图2所示,所述图2为数据包发送的示意图,包括虚拟交换机、第一虚拟机、该第一虚拟机的后端虚拟网卡、该虚拟交换机建立的对应该第一虚拟机的第一虚拟网卡以及该第一虚拟机对应的物理机中的第二虚拟机,该第二虚拟机的后端虚拟网卡,还有该物理机的物理网卡以及该物理机外的外部设备。其中,图2中的小圆圈为接收或发送数据包的端口,数字为发送或接收数据包的路径。则该第二虚拟网卡接收该第一虚拟机发送的数据包如图2中的路径I所示,路径2则表示该虚拟交换机接收该第二虚拟网卡发送的该数据包。
[0083]示例地,该虚拟交换机在接收到该第二虚拟网卡发送的数据包后,将该数据包转发至该第一虚拟网卡,如图2中的路径3所示。
[0084]S305、该虚拟交换机接收该第一虚拟网卡按照第一发送速率发送的该数据包。
[0085]需要说明的是,该第一虚拟网卡发送至该虚拟交换机的数据包经过该第一虚拟网卡的发送队列,则该第一虚拟网卡配置的该第一数据包发送规则可以有效控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率。
[0086]如图2中的路径4所示,示例地,该流量控制模块为该虚拟网卡设置的QoS参数包括传输带宽,上限带宽和突发流量,记该传输带宽为传输带宽A,记该上限带宽为上限带宽B,记该突发流量为突发流量C,其中,该突发流量C为设置的该第一虚拟机突发流量的上限值,则该第一虚拟网卡根据该QoS参数对应的第一发送速率向该虚拟交换机发送该数据包,其中,当该第一虚拟机没有突发流量时,该第一虚拟网卡将接收到的数据包根据该传输带宽A对应的数据包发送速率发送至该虚拟交换机。
[0087]当该第一虚拟机产生该突发流量D时(D小于C),该第一虚拟网卡将接收到的数据包根据该突发流量D对应的数据包发送速率发送至该虚拟交换机,当该第一虚拟机没有突发流量时,则该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包。
[0088]另外,当该第一虚拟机产生该突发流量C时,该虚拟网卡将接收到的数据包根据该上限带宽B对应的数据包发送速率发送至该虚拟交换机,并在C/(B-A)秒后,当该第一虚拟机没有突发流量时,该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包。
[0089]S306、该虚拟交换机按照该第一发送速率将该数据包发送至第二虚拟机。[0090]示例地,该第一虚拟机向对应物理机中的第二虚拟机发送数据包时,数据包发送路径如图2中的路径1,2,3,4,5,6,7所示,这样,该虚拟机向该第二虚拟机发送数据包经过该第一虚拟网卡向该虚拟交换机发送数据包的路径(即图2中的路径4),从而根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向该目的设备发送数据包的速率。
[0091]在用户需要取消对该第一虚拟机数据包速率的控制时,执行S307步骤。
[0092]S307、该虚拟交换机接收删除网卡指令,并根据该网卡删除指令删除该第一虚拟网卡。
[0093]进一步地,在用户需要取消对该第一虚拟机数据包速率的控制时,该虚拟交换机接收网卡删除指令,并根据该网卡删除指令删除该第一虚拟网卡。
[0094]具体地,在物理资源空闲的情况下或者该第一虚拟机的数据包发送速率较小时,用户可以向该虚拟交换机下发网卡删除指令,该虚拟交换机根据该网卡删除指令删除该第一虚拟网卡,从而取消对该第一虚拟机的数据包发送速率的控制,以减小系统功耗。
[0095]这样,该虚拟交换机将该第一虚拟机发送至该第二虚拟网卡的数据包转换为该虚拟交换机发送至该第一虚拟网卡的数据包,并且,该第一虚拟网卡可配置数据包发送规则,从而控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率。该虚拟交换机按照该发送速率将该数据包发送至第二虚拟机,实现了对该第一虚拟机向该第二虚拟机的数据包发送速率的控制。
[0096]需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0097]本发明实施例提供一种虚拟交换机40,如图4所示,包括:
[0098]处理单元41,用于建立对应物理机中第一虚拟机的第一虚拟网卡。
[0099]其中,该第一虚拟网卡中配置有第一数据包发送规则,该第一数据包发送规则包括数据包的第一发送速率。
[0100]接收单元42,用于在该第一虚拟机对应的第二虚拟网卡接收到该第一虚拟机发送的数据包后,接收该第二虚拟网卡发送的该数据包。
[0101]发送单元43,用于将该接收单元42接收到的该数据包发送至该第一虚拟网卡。
[0102]该接收单元42还用于,在该第一虚拟网卡接收到该发送单元43发送的该数据包后,接收该第一虚拟网卡按照该第一发送速率发送的该数据包。
[0103]该发送单元43还用于,在该接收单元42接收到该第一虚拟网卡按照该第一发送速率发送的该数据包后,将该数据包按照该第一发送速率发送至目的设备。
[0104]具体地,该接收单元42还用于,接收用户发送的虚拟网卡建立指令。
[0105]其中,该虚拟网卡建立指令为用户在确定该第一虚拟机占用物理资源超过预设阈值时发送的。
[0106]该处理单元41还用于,根据该接收单元接收的虚拟网卡建立指令建立对应物理机中第一虚拟机的第一虚拟网卡。
[0107]需要说明的是,在物理资源不足或者该第一虚拟机的发送速率过大时,为了使数据包正常传输,用户可以向该虚拟交换机下发虚拟网卡建立指令,该虚拟交换机根据该虚拟网卡建立指令建立该第一虚拟机的第一虚拟网卡,从而根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向目的设备发送数据包的速率。
[0108]其中,上述第一虚拟网卡中配置的第一数据包发送规则可以由流量控制模块完成,该流量控制模块可以是独立于虚拟交换机的模块,具体地,该流量控制模块对该第一虚拟网卡设置QoS (Quality of Service,服务质量保证)参数,从而实现在该第一虚拟网卡上配置第一数据包发送规则,该QoS参数包括传输带宽,上限带宽和突发流量,其中,该传输带宽为设置的传输该数据包的最低带宽,保证了该第一虚拟网卡对应的第一虚拟机发送该数据包的发送速率,从而保证该数据包的正常传输;该上限带宽为设置的传输该数据包的最高带宽,保证了在该第一虚拟机传输的流量较大(即产生突发流量)时,该第一虚拟机发送该数据包发送的发送速率,从而保证该数据包的正常传输,该上限带宽大于等于该传输带宽;该突发流量为该第一虚拟机传输的流量较大时传输的流量与基于传输带宽传输的流量的差值,突发流量越大,该第一虚拟机以该上限带宽发送数据包的时间越长。这样,由于发送该数据包的带宽的不同对应的发送速率也不相同,因此,通过QoS参数设置不同的传输带宽,上限带宽和突发流量能够对应不同的第一发送速率,从而实现对该第一虚拟机通过该虚拟交换机向目的设备发送数据包的发送速率的控制。
[0109]具体地,该虚拟交换机在接收到该第一虚拟机通过该第二虚拟网卡发送的数据包后,将该数据包发送至该第一虚拟网卡,并在接收到该第一虚拟网卡按照该第一发送速率发送的该数据包,并将该数据包按照该第一发送速率发送至目的设备。
[0110]示例地,该流量控制模块为该虚拟网卡设置的QoS参数包括传输带宽,上限带宽和突发流量,记该传输带宽为传输带宽A,记该上限带宽为上限带宽B,记该突发流量为突发流量C,其中,该突发流量C为设置的该第一虚拟机突发流量的上限值,则该第一虚拟网卡根据该QoS参数对应的第一发送速率向该虚拟交换机发送该数据包,该虚拟交换机根据该第一发送速率将该数据包发送至目的设备,其中,当该第一虚拟机没有突发流量时,该第一虚拟网卡将接收到的数据包根据该传输带宽A对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机将该数据包根据该传输带宽A对应的数据包发送速率发送至该目的设备。
[0111]当该第一虚拟机产生该突发流量D时(D小于C),该第一虚拟网卡将接收到的数据包根据该突发流量D对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机根据该突发流量D对应的数据包发送速率将该数据包发送至该目的设备,当该第一虚拟机没有突发流量时,则该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包,该虚拟交换机恢复以传输带宽A对应的数据包发送速率向该目的设备发送数据包。
[0112]另外,当该第一虚拟机产生该突发流量C时,该虚拟网卡将接收到的数据包根据该上限带宽B对应的数据包发送速率发送至该虚拟交换机,以便该虚拟交换机根据该上限带宽B对应的数据包发送速率将该数据包发送至该目的设备,并在C/ (B-A)秒后,当该第一虚拟机没有突发流量时,该第一虚拟网卡恢复以传输带宽A对应的数据包发送速率向该虚拟交换机发送该数据包,该虚拟交换机恢复以传输带宽A对应的数据包发送速率向该目的设备发送数据包。
[0113]进一步地,该发送单元43具体用于,根据该第一发送速率将该数据包发送至物理网卡,或者根据该第一发送速率将该数据包发送至该物理机中的第二虚拟机。
[0114]由上可知,该第一虚拟机向该第二虚拟机或者该物理网卡发送数据包都经过该第一虚拟网卡向该虚拟交换机发送数据包的路径,从而该虚拟交换机能够根据该第一虚拟网卡中配置的数据包发送规则控制该第一虚拟机向目的设备发送数据包的速率。
[0115]具体地,该发送单元43具体用于,根据该数据包的第一发送速率将该数据包发送至配置有第二数据包发送规则的物理网卡。
[0116]其中,该第二数据包发送规则包括数据包的第二发送速率,以便该物理网卡根据该第二发送速率将该数据包发送至外部设备。该外部设备可以是如网络中的另一台服务器,该网络可以是广域网或者局域网。
[0117]另外,上述物理网卡中配置的第二数据包发送规则可以由流量控制模块完成,该流量控制模块可以是独立于虚拟交换机的模块,具体地,该流量控制模块对该物理网卡设置QoS (Quality of Service,服务质量保证)参数,从而实现在该物理网卡上配置第二数据包发送规则,则该物理网卡根据该QoS参数对应的第二发送速率向外部设备发送该数据包,具体可以参考上述第一虚拟网卡根据该第一发送速率向该虚拟交换机发送数据包的描述,此处不再赘述了。
[0118]需要说明的是,该流量控制模块还可以设置该第一虚拟机的优先级,在多个虚拟机同时向该物理网卡发送数据包,并在该数据包流量造成该物理网卡的流量拥塞时,该物理网卡可以根据各虚拟机的优先级分配带宽,优先级高的虚拟机可以占用更多的带宽。
[0119]可选地,该接收单元42还用于,接收用户发送的网卡删除指令。
[0120]该处理单元41还用于,根据该网卡删除指令删除该第一虚拟网卡。
[0121]具体地,在物理资源空闲的情况下或者该第一虚拟机的数据包发送速率较小时,用户可以向该虚拟交换机下发网卡删除指令,该虚拟交换机根据该网卡删除指令删除该第一虚拟网卡,从而取消对该第一虚拟机的数据包发送速率的控制,以减小系统功耗。
[0122]采用上述虚拟交换机,该虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,并在该第一虚拟机向对应的第二虚拟网卡发送数据包后,接收该第二虚拟网卡发送的该数据包,则该虚拟交换机将该数据包发送至该第一虚拟网卡,这样,该虚拟交换机将该第一虚拟机发送至该第二虚拟网卡的数据包转换为该虚拟交换机发送至该第一虚拟网卡的数据包,并且,该第一虚拟网卡可配置数据包发送规则,控制该第一虚拟网卡向该虚拟交换机发送数据包的发送速率,从而控制该虚拟交换机将该数据包发送至目的设备的发送速率,防止了该第一虚拟机通过该虚拟交换机将数据包发送至目的设备的速率过大造成该第一虚拟机占用的物理资源过大,提高了用户体验。
[0123]本发明实施例提供一种虚拟交换机50,如图5所示,该虚拟交换机50包括:
[0124]处理器51、通信接口 52、存储器53和通信总线54 ;其中,所述处理器51、所述通信接口 52和所述存储器53通过所述通信总线54完成相互间的通信。该通信总线54可以是 ISA (Industry Standard Architecture,工业标准体系结构)总线、PCI (PeripheralComponent,外部设备互连)总线或 EISA (Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
[0125]处理器51可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0126]存储器53用于存储程序代码和相关数据,所述程序代码包括操作系统指令和应用程序指令。存储器53可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0127]通信接口 52用于该虚拟交换机50与其它设备之间的通信。
[0128]处理器51执行存储器53中存储的程序代码,用于建立对应物理机中第一虚拟机的第一虚拟网卡,在该第一虚拟机对应的第二虚拟网卡接收到该第一虚拟机发送的数据包后,接收该第二虚拟网卡发送的该数据包,并将该数据包发送至该第一虚拟网卡,在该虚拟交换机接收到该第一虚拟网卡按照该第一发送速率发送的该数据包,将该数据包按照该第一发送速率发送至目的设备。
[0129]其中,该虚拟网卡中配置有第一数据包发送规则,该第一数据包发送规则包括数据包的第一发送速率。
[0130]需说明的是,本发明实施例所述的物理机可以为虚拟交换设备50所在的物理机。该物理机上包含两个或两个以上虚拟机。
[0131]可选地,该处理器51还用于,接收用户发送的虚拟网卡建立指令,并根据该虚拟网卡建立指令建立该第一虚拟网卡。
[0132]其中,该虚拟网卡建立指令为用户在确定该第一虚拟机占用物理资源超过预设阈值时发送的。
[0133]可选地,该处理器51还用于,根据该第一发送速率将该数据包发送至该物理机的物理网卡,或者,根据该第一发送速率将该数据包发送至该物理机中的第二虚拟机。
[0134]可选地,该处理器51还用于,根据该数据包的第一发送速率将该数据包发送至配置有第二数据包发送规则的物理网卡,以便该物理网卡根据第二发送速率将该数据包发送至外部设备。
[0135]其中,该第二数据包发送规则包括数据包的第二发送速率。
[0136]可选地,该处理器51还用于,接收用户发送的网卡删除指令,并根据该网卡删除指令删除该第一虚拟网卡。
[0137]需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0138]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0139]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种数据包发送的方法,其特征在于,包括: 虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,其中,所述第一虚拟网卡配置有第一数据包发送规则,所述第一数据包发送规则包括数据包的第一发送速率; 在所述第一虚拟机对应的第二虚拟网卡接收到所述第一虚拟机发送的数据包后,所述虚拟交换机接收所述第二虚拟网卡发送的所述数据包; 所述虚拟交换机将所述数据包发送至所述第一虚拟网卡; 所述虚拟交换机接收所述第一虚拟网卡按照所述第一发送速率发送的所述数据包,并将所述数据包按照所述第一发送速率发送至目的设备。
2.根据权利要求1所述的方法,其特征在于,在所述虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡前,所述方法还包括: 所述虚拟交换机接收用户发送的虚拟网卡建立指令,其中,所述虚拟网卡建立指令为用户在确定所述第一虚拟机占用物理资源超过预设阈值时发送的; 所述虚拟交换机建立对应物理机中第一虚拟机的第一虚拟网卡,包括: 所述虚拟交换机根据所述虚拟网卡建立指令建立所述第一虚拟网卡。
3.根据权利要求1或2所述的方法,其特征在于,所述虚拟交换机将所述数据包按照所述第一发送速率发送至目的设备,包括: 所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机的物理网卡;或者, 所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机中的第二虚拟机。
4.根据权利要求3所述的方法,其特征在于,所述虚拟交换机根据所述第一发送速率将所述数据包发送至所述物理机的物理网卡,包括: 所述虚拟交换机根据所述第一发送速率将所述数据包发送至配置有第二数据包发送规则的物理网卡,其中,所述第二数据包发送规则包括数据包的第二发送速率,以便所述物理网卡根据所述第二发送速率将所述数据包发送至外部设备。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括: 接收用户发送的网卡删除指令; 根据所述网卡删除指令删除所述第一虚拟网卡。
6.一种虚拟交换机,其特征在于,包括: 处理单元,用于建立对应物理机中第一虚拟机的第一虚拟网卡,其中,所述第一虚拟网卡配置有第一数据包发送规则,所述第一数据包发送规则包括数据包的第一发送速率; 接收单元,用于在所述第一虚拟机对应的第二虚拟网卡接收到所述第一虚拟机发送的数据包后,接收所述第二虚拟网卡发送的所述数据包; 发送单元,用于将所述接收单元接收到的所述数据包发送至所述第一虚拟网卡;所述接收单元还用于,在所述第一虚拟网卡接收到所述发送单元发送的所述数据包后,接收所述第一虚拟网卡按照所述第一发送速率发送的所述数据包; 所述发送单元还用于,在所述接收单元接收到所述第一虚拟网卡按照所述第一发送速率发送的所述数据包后,将所述数据包按照所述第一发送速率发送至目的设备。
7.根据权利要求6所述的设备,其特征在于,所述接收单元具体用于,接收用户发送的虚拟网卡建立指令,其中,所述虚拟网卡建立指令为用户在确定所述第一虚拟机占用物理资源超过预设阈值时发送的; 所述处理单元具体用于,根据所述虚拟网卡建立指令建立所述第一虚拟网卡。
8.根据权利要求6或7所述的设备,其特征在于,所述发送单元具体用于: 根据所述第一发送速率将所述数据包发送至物理网卡;或者, 根据所述第一发送速率将所述数据包发送至所述物理机中的第二虚拟机。
9.根据权利要求8所述的设备,其特征在于,所述发送单元具体用于: 根据所述数据包的第一发送速率将所述数据包发送至配置有第二数据包发送规则的物理网卡,其中,所述第二数据包发送规则包括数据包的第二发送速率,以便所述物理网卡根据所述第二发送速率将所述数据包发送至外部设备。
10.根据权利要求6至9任一项所述的设备,其特征在于, 所述接收单元还用于,接收用户发送的网卡删除指令; 所述处理单元还用于,根·据所述网卡删除指令删除所述第一虚拟网卡。
【文档编号】H04L12/811GK103581042SQ201310526766
【公开日】2014年2月12日 申请日期:2013年10月30日 优先权日:2013年10月30日
【发明者】梁良, 李春鹤 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1