CN103795621B - 一种虚拟机的数据交换方法、装置及物理主机 - Google Patents
一种虚拟机的数据交换方法、装置及物理主机 Download PDFInfo
- Publication number
- CN103795621B CN103795621B CN201310684772.7A CN201310684772A CN103795621B CN 103795621 B CN103795621 B CN 103795621B CN 201310684772 A CN201310684772 A CN 201310684772A CN 103795621 B CN103795621 B CN 103795621B
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual machine
- priority
- queue
- physical host
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及虚拟化技术领域。本发明实施例提供一种虚拟机的数据交换方法,获取源物理主机内的第一虚拟机待发送的第一数据包;根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组;从所述目标虚拟队列中确定目标虚拟队列组,再确定与所述目标虚拟队列组相映射的目标物理队列,并通过所述目标物理队列发送所述第一数据包,采用本方案可以在一定程度上保证虚拟机的数据交换效率。本发明实施例还提供一种虚拟机的数据交换装置、物理主机和集群系统。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟机的数据交换方法、装置及物理主机。
背景技术
在虚拟化技术产生以后,通常一台物理主机上包括多个虚拟机(VM,VirtualMachine),且所述物理主机上有至少一个包含多个物理队列的物理网卡,所述多个虚拟机共享该物理主机的网卡资源,每个虚拟机都可以通过位于该物理主机上的任一个物理网卡的任一个物理队列收发数据,这种资源分配方式会导致部分虚拟机占用大量的物理队列收发数据包,其他虚拟机分配不到合理数量的物理队列收发数据包,导致虚拟机的数据交换效率得不到保证。
发明内容
本发明实施例提供一种虚拟机的数据交换方法、装置及物理主机,用于在一定程度上保证虚拟机的数据交换效率。
第一方面,本发明实施例提供提出了一种虚拟机的数据交换方法,该方法包括:获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射 关系;从所述目标虚拟队列组中确定目标虚拟队列;通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
结合第一方面,在第一种实现方式下,该方法还包括:根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
结合第一方面的第一种实现方式,在第二种实现方式下,所述根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,包括:根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;根据虚拟机的业务要求设置虚拟机的优先级;根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
结合第一方面的第二种实现方式,在第三种实现方式下,所述根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,包括:当虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,根据虚拟队列组的优先级等级不低于具有对应关系的虚拟机的优先级等级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系;或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目多时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个虚拟队列组对应于至少两个优先级等级的虚拟机;或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目 少时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机对应于至少两个虚拟队列组。
结合第一方面的第二种实现方式或者第一方面的第三种实现方式,在第四种实现方式下,所述业务要求是指业务对响应及时性的要求,所述根据虚拟机的业务要求设置虚拟机的优先级,包括:根据虚拟机上运行的业务对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级。
结合第一方面的第二种实现方式或者第一方面的第三种实现方式,在第五种实现方式下,所述业务要求是指业务对网络资源的要求,所述根据虚拟机的业务要求设置虚拟机的优先级,包括:根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行的业务对网络资源要求低的虚拟机的优先级。
结合第一方面的第二种实现方式或者第一方面的第三种实现方式,在第六种实现方式下,所述业务要求是指业务对网络服务质量的要求,所述根据虚拟机的业务要求设置虚拟机的优先级,包括:根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级。
结合第一方面或者第一方面的第一种实现方式至第一方面的第六种实现方式中的任一种实现方式,在第七种实现方式下,所述从所述目标虚拟队列组中确定目标虚拟队列,包括:基于所述第一数据包包含的所述第一虚拟机地址信息和所述目标物理主机的地址信息,通过调用Hash函数计算出目标虚拟队列的标识;基于所述标识从所述目标虚拟队列组中确定对应的目标虚拟队列。
结合第一方面或者第一方面的第一种实现方式至第一方面的第七种实现方式中的任一种实现方式,在第八种实现方式下,通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
第二方面,本发明实施例提供一种虚拟机的数据交换装置,该装置包括:获取单元,用于获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;确定单元,用于根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;所述确定单元还用于从所述目标虚拟队列组中确定目标虚拟队列;收发单元,用于通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
结合第二方面,在第一种实现方式下,该装置还包括:设置单元,用于根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
结合第二方面的第一种实现方式,在第二种实现方式下,所述设置单元具体用于根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;根据虚拟机的业务要求设置虚拟机的优先级;以及,根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
结合第二方面的第二种实现方式,在第三种实现方式下,在所述根据虚拟 机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系的操作上,所述设置单元具体用于当虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,根据虚拟队列组的优先级等级不低于具有对应关系的虚拟机的优先级等级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系;或者,所述设置单元具体用于当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目多时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个虚拟队列组对应于至少两个优先级等级的虚拟机;或者,所述设置单元具体用于当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目少时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机对应于至少两个虚拟队列组。
结合第二方面的第二种实现方式或者第二方面的第三种实现方式,在第四种实现方式下,所述业务要求是指业务的对响应及时性的要求,在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务的对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级。
结合第二方面的第二种实现方式或者第二方面的第三种实现方式,在第五种实现方式下,所述业务要求是指业务的对网络资源的要求,在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行的业务对网络资源 要求低的虚拟机的优先级。
结合第二方面的第二种实现方式或者第二方面的第三种实现方式,在第六种实现方式下,所述业务要求是指业务的对网络服务质量的要求,在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级。
结合第二方面或者第二方面的第一种实现方式至第二方面的第六种实现方式中的任一种实现方式,在第七种实现方式下,在所述从所述目标虚拟队列组中确定目标虚拟队列的操作上,所述确定单元具体用于基于所述第一数据包包含的所述第一虚拟机地址信息和所述目标物理主机的地址信息,通过调用Hash函数计算出目标虚拟队列的标识;基于所述标识从所述目标虚拟队列组中确定对应的目标虚拟队列。
结合第二方面或者第二方面的第一种实现方式至第二方面的第七种实现方式中的任一种实现方式,在第八种实现方式下,所述收发单元还用于通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
第四方面,本发明实施例提供一种物理主机,该物理主机包括:两个以上虚拟机和至少一个包含多个物理队列的物理网卡,以及如第二方面或者第二方面的第一种实现方式至第二方面的第八种实现方式下的任一种实现方式所述的虚拟机的数据交换装置,其中所述两个以上虚拟机包括第一虚拟机,所述数据交换装置用于将所述第一虚拟机待发送的第一数据包通过所述物理网卡中的目标物理队列向目的端的物理主机发送。
第四方面,本发明实施例提供还提供一种集群系统,该集群系统包括至少一个如第三方面所述的物理主机。
可见,本发明实施例提供的虚拟机的数据交换方法、装置及物理主机中,源物理主机上的特定虚拟机通过与其具有对应关系的虚拟队列组中包含的虚拟队列所映射的物理队列向目的物理主机传输数据包,也即特定虚拟机只能通过与其具有对应关系的虚拟队列组传输数据包,不会通过所述源物理主机上与其他虚拟机具有对应关系的虚拟队列组中的虚拟队列所映射的物理队列传输数据包,从而保证所述其他虚拟机的的网络资源不会被占用,采用本发明实施例的虚拟机的数据交换方法、装置及物理主机,可以在一定程度上保证物理主机上的虚拟机的数据交换效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种集群系统的交互示意图;
图2是本发明实施例提供的一种通信系统的交互示意图;
图3是本发明实施例提供的一种物理主机的逻辑结构图;
图4a是本发明实施例提供的一种虚拟机的数据交换方法的方法流程图;
图4b是本发明实施例提供的另一种虚拟机的数据交换方法的方法流程图;
图4c是本发明实施例提供的再一种虚拟机的数据交换方法的方法流程图;
图4d是本发明实施例提供的再一种虚拟机的数据交换方法的方法流程图;
图5a为本发明实施例提供的一种虚拟机的数据交换装置的结构示意图;
图5b为本发明实施例提供的另一种虚拟机的数据交换装置的结构示意 图;
图6为本发明实施例提供的一种物理主机的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
物理主机(Host):也叫目的主机,是虚拟机所在的主机,亦称为主机或物理服务器。
物理网卡:位于物理主机中,用于接收和发送数据信息,值得注意的是,本发明实施例所述的物理网卡包含多个物理队列,换言之,即多队列的物理网卡。
物理队列:位于物理网卡中,用于接收数据包和发送数据包,实现物理网卡收发数据包的能力。
虚拟队列:虚拟队列与物理主机内物理网卡包含的物理队列具有一一映射关系,一个虚拟队列映射一个物理队列;其中,虚拟队列本身没有发送或者接收数据的能力,源物理主机内虚拟机待发送的数据包是通过与虚拟队列相映射的物理队列发送到目的物理主机。
虚拟队列组:是对物理主机内的物理网卡中的物理队列所映射的虚拟队列进行管理或分组得到的。每个虚拟队列组包括至少一个虚拟队列,同一个虚拟队列组包含虚拟队列对应的物理队列分布在一个或多个物理网卡中,本发明实施例中虚拟出来的,其并不实际存在于物理主机中。
参阅附图3,为本发明实施例提供的一种物理主机的逻辑结构示意图,该 物理主机包括7个虚拟机和3个多队列物理网卡,在所述7个虚拟机和3个多队列物理网卡之间,有3个虚拟机队列组,每个虚拟队列组中包含的虚拟队列的数目不同,但是每个虚拟队列组均包含一个以上的虚拟队列。
需要说明的是,本发明实施例提供的所述物理主机包括两个以上的虚拟机、至少一个包含多个物理队列的物理网卡以及虚拟机的数据交换装置,其中所述虚拟机的数据交换装置用于将虚拟机产生的数据包通过所述物理网卡中的目标物理队列发送给目的物理主机。
参阅附图3可知,三个虚拟队列组中包括的总共12个虚拟队列分别与三个物理网卡包含的总共12个物理队列存在一一映射关系,基于该映射关系,在确定某一虚拟队列后,就能确定出与其具有映射关系的物理队列。
进一步的,如图3所示,所述物理主机还包括三个优先级组,分别是优先级组2、优先级组1和优先级组0,其中虚拟机3、虚拟机4和虚拟机5位于优先级组2;虚拟机1和虚拟机2位于优先级组1;虚拟机6和虚拟机7位于优先级组0。
需要说明的是,将物理主机上的7个虚拟机划分成三个优先级组是由所述虚拟机的数据交换装置依据是虚拟机的业务要求设置的,其中具有相同或者相似业务要求的虚拟机位于同一个优先级组中。当然,也可以将所述7个虚拟机划分成7个优先级组,每个优先级组仅包含一个虚拟机。不过在本发明实施例中所述7个虚拟机至少需要根据其上运行的业务要求的不同被划分到两个优先级等级中。
其中,所述虚拟机的数据交换装置根据虚拟机的业务要求将所述7个虚拟机设置成三个优先级组,包括但不限于下述情形:根据虚拟机的业务对响应及时性的要求将物理主机上的7个虚拟机划分成三个优先级组,其中,具有相同或者类似响应及时性要求的虚拟机位于同一个优先级组,对响应及时性要求高的虚拟机所属的优先级组高于对响应及时性要求低的虚拟机所属的优先级组;或者,根据虚拟机的业务对网络服务质量的要求将物理主机上的7个虚拟机划 分成三个优先级组,其中,具有相同或者类似网络服务质量要求的虚拟机位于同一个优先级组,对网络服务质量的要求高的虚拟机所属的优先级组高于对网络服务质量的要求低的虚拟机所属的优先级组;或者,根据虚拟机的业务对网络资源的要求将物理主机上的7个虚拟机划分成三个优先级组,其中,具有相同或者类似网络资源要求的虚拟机位于同一个优先级组,对网络资源的要求高的虚拟机所属的优先级组高于对网络资源的要求低的虚拟机所属的优先级组。需要说明的是,所述根据虚拟机的业务要求将所述7个虚拟机设置成三个优先级组,还可以是根据虚拟机的业务对网络稳定性等性能的要求,本发明对此不做限制性规定。
如图3所示,所述物理主机包括三个虚拟队列组,所述三个虚拟队列组也是由所述虚拟机的数据交换装置设置的,具体是由所述虚拟机的数据交换装置依据所述三个虚拟队列组中包含的虚拟队列的数目为所述三个虚拟队列组分别设置优先级,其中,包含虚拟队列数目多的虚拟队列组的优先级高于包含虚拟队列数目少的虚拟队列组的优先级,因为虚拟队列组2包含的虚拟队列的数目最多,所以具有最高的优先级,虚拟队列组1包含的虚拟队列的数目多于虚拟队列组3包含的虚拟队列的数目,所以虚拟队列组1的优先级高于虚拟队列组2的优先级。当然,也可以对包含虚拟队列数目越多的虚拟队列组设置越低的优先级,或者采用其他的方式划分该优先级,本发明对此不做限定性规定。
再者,参阅附图3,优先级组2对应优先级最高的虚拟队列组2,优先级组1对应优先级次高的虚拟队列组1,优先级组0对应优先级最低的虚拟队列组。需要说明的是,这种对应关系是所述虚拟机的数据交换装置依据优先级组的优先级和虚拟队列组的优先级预先设置的。设置所述对应关系的基本准则是对应于每一个优先级组的虚拟队列组能够满足该优先级组内的虚拟机的业务处理要求。
作为本发明的一个实施例,若优先级组的优先级等级数目和虚拟队列组的优先级等级数目相同的,所述虚拟机的数据交换装置根据具有对应关系的虚拟 队列组的优先级等级不低于虚拟机的优先级等级设置优先级组与虚拟队列组的对应关系。图3所示的物理主机即是按照这种标准设置优先级组与虚拟队列组的对应关系的。
作为本发明的另一种实施例,所述虚拟机的数据交换装置根据优先级高的优先级组对应的虚拟队列组的优先级高于优先级低的优先级组对应的虚拟队列组的优先级设置优先级组与虚拟队列组的对应关系;其中,同一优先级等级的虚拟机与同一个虚拟队列组相对应,同一个虚拟队列组与一个或者多个优先级等级的虚拟机相对应。
值得注意的是,所述虚拟机的数据交换装置设置优先级组与虚拟队列组之间的对应关系时,只要能够满足具有对应关系的虚拟队列组能够满足优先级组内的虚拟机的业务处理要求即可。这种对应关系的设置还可以采用其他的标准,此处不再一一列举。
这种对应关系表明来自优先级组2的数据包通过虚拟队列组2中包含的虚拟队列映射的物理网卡发送给外部计算节点;来自优先级组1的数据包通过虚拟队列组1中包含的虚拟队列映射的物理队列发送给外部计算节点;来自优先级组0的数据包通过虚拟队列组3中包含的虚拟队列映射的物理队列发送给外部计算节点。也即,图3所示的物理主机中每一个优先级组产生的数据包通过其对应的虚拟队列组包含的虚拟队列映射的物理队列传输给外部计算节点。
可知,本发明实施例提供的物理主机,由于每一个虚拟机只能通过与其具有对应关系的虚拟队列组传输数据,不能占用其他虚拟机对应的虚拟队列组。比如虚拟机1通过虚拟队列组1发送的数据包,不会通过虚拟队列组2发送数据包,其中虚拟队列组2对应于虚拟机3-4,所以虚拟机3-4的网络资源就不会被虚拟机1占用所以采用本发明实施例所述的物理主机,可以在一定程度上保证物理主机上的虚拟机的数据交换速率。
本发明实施例提供一种集群系统,其中,所述集群系统包含两个以上的物理主机且该两个以上物理主机之间能够交互通信。具体参阅附图1所示的集群 系统包括三个物理主机,分别是第一物理主机、第二物理主机和第三物理主机,这三个物理主机中的任意两个物理主机之间能够通信连接,且所述三个物理主机中至少有一个物理主机是如图3所示的物理主机。
需要说明的是,图1所示的三个物理主机中至少有一个物理主机包含两个以上的虚拟机和至少一个包含多个物理队列的物理网卡,为了清楚的描述本发明所述的实施例,不妨假设图1中所示的第一物理主机是如图3所示的包含两个以上的虚拟机和至少一个多队列物理网卡。在图1所示的集群系统中,当该第一物理主机上的虚拟机将要与第二物理主机交换数据包时,其二者之间的交互具体可以参阅附图2所示的通信系统。
图2所示的通信系统中包含所述第一物理主机和所述第二物理主机,值得注意的是,所述第一物理主机中包括7个虚拟机,则所述第一物理主机上的7个虚拟机可以和第二物理主机进行网络通信。具体的,当所述第一物理主机上的虚拟机1将要向所述第二物理主机发送第一数据包(此处所述的第一数据包就是现有技术中的数据包,为了清楚描述,将所述数据包命名为第一数据包)时,所述第一物理主机通过解析所述第一数据包获知所述虚拟机1的地址信息和所述第二物理主机的地址信息,通过所述虚拟机1的地址信息确定发送所述第一数据包的所述虚拟机1;然后所述第一物理主机从其关联的多个虚拟队列组中确定与所述虚拟机对应的虚拟队列组作为目标虚拟队列组。
值得注意的是,所述第一物理主机关联多个虚拟队列组,且所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列。所述第一物理主机根据虚拟机的业务和虚拟队列组中包含的虚拟队列的数目设置虚拟机与虚拟队列组的对应关系,具有对应关系的虚拟队列组中包含的虚拟队列的数目满足虚拟机的业务要求。所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列成一一映射关系。然后从所述目标虚拟队列组中确定目标虚拟队列,并根据虚拟队列与物理队列的映射关系确定与所述目标虚拟队列相映射的目标物理队列,最后通过所述目标物理队列向所述第二物理主机发送所述第一数据包。
可知,利用本发明实施例提供的集群系统或者通信系统进行通信时,由于所述集群系统或者通信系统中的至少一个如图3所示的物理主机,所以可以在保证该物理主机上的虚拟机的数据交换速率。所以本发明实施例提供的集群系统或者通信系统的通信速率能在一定程度上得以保证。
参阅附图4a所,为本发明实施例提供的一种虚拟机的数据交换方法的方法流程图,本发明实施例是站在源物理主机内的虚拟机生成数据包并将所述数据包发送给目标物理主机的角度进行描述的,本发明实施例所述的虚拟机的数据交换方法可以应用于图3所示的物理主机、图1所示的集群系统以及图2所述的通信系统。
具体的,所述虚拟机的数据交换方法的流程如下:
S101、获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;
需要说明的是,所述源物理主机包括两个以上虚拟机和至少一个包含多个物理队列的物理网卡。位于所述源物理主机上的虚拟机可以是用于提供某种具体业务的服务器,例如数据库服务器、网页服务器、存储服务器或者个人计算机等。
值得注意的是,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息,所述第一虚拟机地址信息用于识别所述第一虚拟机,所述目的物理主机地址信息用于识别所述目的物理主机。其中,所述第一虚拟机地址信息包括但不限于所述虚拟机的IP地址、MAC地址、VLAN地址等,凡是用于唯一识别所述第一虚拟机的标识信息都在本发明实施例所述的所述第一虚拟机地址信息的保护范围内,本发明对此不做限制性规定,此处不再一一列举;对应的,所述目的物理主机地址信息包括但不限于所述目的物理主机的IP地址、MAC地址、VLAN地址等。
S103、根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对 应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;
其中,所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系是预先设置的,且所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系是根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置的。
具体的,在获取所述第一数据包后,通过解析所述第一数据包,得到所述第一虚拟机地址信息,通过所述第一虚拟机地址信息能够确定发送所述第一数据包的所述第一虚拟机;确定出所述第一虚拟机后,根据所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,能够确定对应于所述第一虚拟机的虚拟队列组,该虚拟队列组即是目标虚拟队列组。
S105、从所述目标虚拟队列组中确定目标虚拟队列;
具体的,由于所述目标虚拟队列组包括至少一个虚拟队列,所以在确定所述目标虚拟队列组之后,还需要进一步确定用于发送所述第一数据包的目标虚拟队列。值得注意的是,从所述目标虚拟队列组中确定所述目标虚拟队列,可以是从所述目标虚拟队列组中随机选择一个虚拟队列作为所述目标虚拟队列,不过这种确定目标虚拟队列的方式不利于合理分配网络资源;也可以在所述目标虚拟队列组包含的多个虚拟队列中分别具有不同的标识时,基于一定方式确定出一个虚拟队列的标识,根据所述标识找到其对应的虚拟队列,所述虚拟队列即是所述目标虚拟队列。当然也可以采用其他的方式确定出所述目标虚拟队列,本发明实施例对确定所述目标虚拟队列的方式不做限制性规定。
需要说明的是,所述从所述目标虚拟队列组中确定目标虚拟队列,可以采用下述方式:基于所述第一数据包包含所述第一虚拟机地址信息和目的物理主机地址信息,通过调用Hash函数计算出目标虚拟队列的标识,基于所述标识就可以从所述目标虚拟队列组中确定所述目标虚拟队列。
S107、通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主 机地址信息对应的目的物理主机发送所述第一数据包。
需要说明的是,无论是所述虚拟队列组还是所述虚拟队列,都不能够真正的发送所述第一数据包,所述第一数据包是通过与所述目标虚拟队列相映射的目标物理队列发送给所述目的物理主机地址信息对应的所述目的物理主机的。
值得注意的是,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系,每一个虚拟队列映射一个物理队列。则所述多个虚拟队列组包含的虚拟队列的数目与所述源物理主机包含的物理队列的数目是相同的。
作为本发明的另一个实施例,参阅附图4b,所述虚拟机的数据交换方法还包括:
S118、通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
具体的,所述第二数据包是由所述目的物理主机发送给所述源物理主机上的所述第一虚拟机的,所述目的物理主机可以是个人计算机,也可以是用于提供某种具体服务的服务器。
参阅附图4b可知,本发明实施例还包括步骤S102、S103、S105和S107,这些步骤分别对应于图4a所示的步骤S102、S103、S105和S107,所以对这些步骤的描述参阅前述实施例即可,此处不再赘述。
由上可知,采用本发明实施例所述的虚拟机的数据交换方法,所述源物理主机上的第一虚拟机向所述目的物理主机传输所述第一数据包时,所述第一数据包通过与所述第一虚拟机对应的虚拟队列组中包含的虚拟队列映射的物理队列发往所述目的物理主机。所述源物理主机上特定虚拟机产生的数据包仅通过与其具有对应关系的虚拟队列组传输,不会占用其他虚拟机对应的虚拟队列组,也即每一个虚拟机收发数据包时使用的是其对应的网络资源,不会占用其他虚拟机分配到的网络资源;所以采用本发明实施例所述的虚拟机的数据交换方法 可以在一定程度上保证虚拟机的数据交换速率。
参阅附图4c为本发明的实施例提供的另一种虚拟机的数据方法,本发明实施例是站在源物理主机内的虚拟机生成数据包并将所述数据包发送给目标物理主机的角度进行描述的,本发明实施例所述的虚拟机的数据交换方法可以应用于图3所示的物理主机、图1所示的集群系统以及图2所述的通信系统。
通过对比附图4c和附图4a可知,本发明实施例所述虚拟机的数据交换方法相对于附图4a所示的虚拟机的数据交换方法,还包括步骤S201:根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
如图4d所示,所述根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,具体是通过下述步骤实现的:
S2011、根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;
S2012、根据虚拟机的业务要求设置虚拟机的优先级;
具体的,所述根据虚拟机的业务要求设置虚拟机的优先级,包括下述情形:根据虚拟机的业务对响应及时性的要求设置虚拟机的优先级,其中,对响应及时性要求高的虚拟机的优先级高于对响应及时性要求低的虚拟机的优先级。值得注意的是,在实际根据虚拟机的业务对响应及时性的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对响应及时性的要求不同时,可以将具有相同或相似响应及时性要求的虚拟机设置相同的优先级。
或者,所述根据虚拟机的业务要求设置虚拟机的优先级,包括下述情形:根据虚拟机的业务对网络服务质量的要求设置虚拟机的优先级,其中,对网络服务质量要求高的虚拟机的优先级高于对网络服务质量要求低的虚拟机的优先 级。值得注意的是,在实际根据虚拟机的业务对网络服务质量的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对网络服务质量的要求不同时,可以将具有相同或相似网络服务质量要求的虚拟机设置相同的优先级。
或者,所述根据虚拟机的业务要求设置虚拟机的优先级,包括下述情形:根据虚拟机的业务对网络资源的要求设置虚拟机的优先级,其中,对网络资源要求高的虚拟机的优先级高于对网络资源要求低的虚拟机的优先级。值得注意的是,在实际根据虚拟机的业务对网络资源的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对网络资源的要求不同时,可以将具有相同或相似网络资源要求的虚拟机设置相同的优先级。
需要说明的是,所述根据虚拟机的业务要求设置虚拟机的优先级,包括但不限于上述根据虚拟机的业务对响应及时性的要求、对网络服务质量的要求或者对网络资源的要求,还可以是根据虚拟机的业务对网络稳定性的要求设置虚拟机的优先级等,本发明实施例对此不做限制性规定,本发明实施例可以基于虚拟机的业务的任何维度设置虚拟机的优先级。
S2013、根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
需要注意的是,所述根据虚拟机的优先级与虚拟队列组的优先级设置源物理主机内的虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,是指在虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,根据具有对应关系的虚拟队列组的优先级等级不低于虚拟机的优先级等级的标准设置所述虚拟机与虚拟队列组的对应关系。或者,所述根据虚拟机的优先级与虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系,是指在虚拟机的优先级等级数目与虚拟队列组的优先级等级数目不同时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系。具体的,在虚拟机的优先级等级数目大于虚拟队列组的优先级等级数目时,至少一个虚拟队列组可以对应于至少两 个的优先级等级的虚拟机;在虚拟机的优先级等级数目小于虚拟队列组的优先级等级数目时,至少一个优先级等级的虚拟机可以对应与至少两个的虚拟队列组。值得注意的是,在这种对应关系下,所述源物理主机内的虚拟机至少要被设置成两个优先级等级,然后这两个优先级等级中每一个优先级等级至少对应一个虚拟队列组。
需要说明的是,所述虚拟机与虚拟队列组的对应关系可以具体表现为一张映射表,通过查找所述映射表,可以找到对应于所述第一虚拟机的虚拟队列组,即所述目标虚拟队列组;所述虚拟机与虚拟队列组的对应关系也可以表现为其他的形式。
参阅附图4c可知,本发明实施例还包括步骤S202、S203、S205和S207,这些步骤分别对应于图4a所示的步骤S102、S103、S105和S107,所以对这些步骤的描述参阅前述实施例即可,此处不再赘述。
由上可知,采用本发明实施例所述的虚拟机的数据交换方法,源物理主机上的虚拟机产生的数据包通过对应的虚拟队列组包含的虚拟队列映射的物理队列发往目的物理主机,虚拟机与虚拟队列组之间的对应关系使得特定虚拟机向所述目的物理主机发送数据包时不会占用所述源物理主机上其他虚拟机分配的网络资源,可以在一定程度上保证虚拟机的数据交换速率;进一步的,本发明实施例还提供一种网络资源分配方案,即根据虚拟机的业务要求,为优先级高的虚拟机分配的物理队列的数目多于为优先级低的虚拟机分配的物理队列的数目,从而使得合理利用所述源物理主机内的网络资源。
参阅附图5a,本发明实施例还提供一种虚拟机的数据交换装置50,所述虚拟机的数据交换装置50可以位于如图3所示的物理主机中,进一步的,所述虚拟机的数据交换装置50可以位于如图2所示的通信系统或者如图3所示的集群系统中任一个或者全部的物理主机上。具体的,参阅附图5a,所述虚拟机的数据交换装置50包括:
获取单元53,用于获取源物理主机内的第一虚拟机待发送的第一数据包, 所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;
具体的,位于所述源物理主机上的虚拟机可以是用于提供某种具体业务的服务器,例如数据库服务器、网页服务器、存储服务器或者个人计算机等。
需要说明的是,所述源物理主机包括两个以上虚拟机和至少一个包含多个物理队列的物理网卡。
值得注意的是,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息,所述第一虚拟机地址信息用于识别所述第一虚拟机,所述目的物理主机地址信息用于识别所述目的物理主机。其中,所述第一虚拟机地址信息包括但不限于所述虚拟机的IP地址、MAC地址、VLAN地址等,凡是用于唯一识别所述第一虚拟机的标识信息都在本发明实施例所述的所述第一虚拟机地址信息的保护范围内,本发明对此不做限制性规定,此处不再一一列举;对应的,所述目的物理主机地址信息包括但不限于所述目的物理主机的IP地址、MAC地址、VLAN地址等。
确定单元57,用于根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;
需要说明的是,虚拟机与虚拟队列组之间具有预先设置的对应关系,所述虚拟机与虚拟队列组之间的对应关系是根据虚拟机的业务要求和虚拟队列组中包含的虚拟队列的数目设置的。
具体的,在获取单元53获取所述第一数据包后并通过解析所述第一数据包,确定出发送所述第一数据包的所述第一虚拟机后,所述确定单元57根据虚拟机与虚拟队列组之间的对应关系,能够确定对应于所述第一虚拟机的虚拟队列组,该虚拟队列组即是目标虚拟队列组。
所述确定单元57还用于从所述目标虚拟队列组中确定目标虚拟队列;
具体的,由于所述目标虚拟队列组包括至少一个虚拟队列,所述确定单元57在确定所述目标虚拟队列组之后,还需要进一步确定用于发送所述第一数据包的目标虚拟队列。值得注意的是,所述确定单元57从所述目标虚拟队列组中确定所述目标虚拟队列,可以是从所述目标虚拟队列组中随机选择一个虚拟队列作为所述目标虚拟队列;也可以在所述目标虚拟队列组包含的多个虚拟队列中分别具有不同的标识时,基于一定方式确定出一个虚拟队列的标识,根据所述标识找到其对应的虚拟队列,所述虚拟队列即是所述目标虚拟队列,比如利用所述第一数据包包含所述第一虚拟机地址信息和目的物理主机地址信息进行hash计算,确定出一个虚拟队列的标识,该标识对应的虚拟队列即是所述目标虚拟队列。当然也可以采用其他的方式确定出所述目标虚拟队列,本发明实施例对确定所述目标虚拟队列的方式不做限制性规定。
收发单元59,用于通过与所述目标物理队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
进一步的,作为本发明的另一个实施例,所述收发单元59还用于通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
值得注意的是,所述第一虚拟机发往所述目的物理主机的所述第一数据包和所述第一虚拟机接收到来自所述目的物理主机的所述第二数据包都是通过所述目的物理队列进行传输的。
参阅附图5b,为本发明实施例提供的另一种虚拟机的数据交换装置500,虚拟机的数据交换装置500相对于虚拟机的数据交换装置50来说,还包括设置单元501.
所述设置单元501用于根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
其中,所述设置单元501具体用于根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;以及具体用于根据虚拟机的业务要求设置虚拟机的优先级;以及具体用于根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
需要说明的是,所述设置单元501根据虚拟机的业务要求设置虚拟机的优先级,包括但不限于下述情形:
所述业务要求是指业务的对响应及时性的要求时,所述设置单元501具体用于根据虚拟机上运行的业务的对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级;值得注意的是,在实际根据虚拟机的业务对网络服务质量的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对网络服务质量的要求不同时,所述设置单元501可以将具有相同或相似网络服务质量要求的虚拟机设置相同的优先级;
或者,在所述业务要求是指业务的对网络服务质量的要求时,所述设置单元501具体用于根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级;值得注意的是,在实际根据虚拟机的业务对网络服务质量的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对网络服务质量的要求不同时,可以将具有相同或相似网络服务质量要求的虚拟机设置相同的优先级。
或者,在所述业务要求是指业务的对网络资源的要求时,所述设置单元501具体用于根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行 的业务对网络资源要求低的虚拟机的优先级;值得注意的是,在实际应用中,所述设置单元501根据虚拟机的业务对网络资源的要求设置虚拟机的优先级时,在所述源物理主机内的虚拟机的业务对网络资源的要求不同时,可以将具有相同或相似网络资源要求的虚拟机设置相同的优先级。
需要说明的是,所述设置单元501根据虚拟机的业务要求设置虚拟机的优先级,包括但不限于上述根据虚拟机的业务对响应及时性的要求、对网络服务质量的要求或者对网络资源的要求,还可以是根据虚拟机的业务对网络稳定性的要求设置虚拟机的优先级等,本发明实施例对此不做限制性规定,本发明实施例可以基于虚拟机的业务的任何维度设置虚拟机的优先级。
需要说明的是,所述设置单元501具体用于根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,包括但不限于下述情形:
在虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,所述设置单元501具体用于根据具有对应关系的虚拟队列组的优先级等级不低于虚拟机的优先级等级的标准设置所述虚拟机与虚拟队列组的对应关系;
或者,在虚拟机的优先级等级数目大于虚拟队列组的优先级等级数目相同时,所述设置单元501具体用于根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系,其中至少一个虚拟队列组可以对应于至少两个优先级等级的虚拟机;
或者,在虚拟机的优先级等级数目小于虚拟队列组的优先级等级数目相同时,所述设置单元501具体用于根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机可以对应与至少两个虚拟队列组;
值得注意的是,所述设置单元501按照上述规则,设置所述虚拟机与虚拟 队列组的对应关系时,所述设置单元501根据虚拟机的业务的优先级将所述源物理主机上的虚拟机设置成两个以上的优先级等级,其中每一个优先级等级至少对应一个虚拟队列组。再者,所述设置单元501设置所述虚拟机与虚拟队列组的对应关系最根本的依据是具有对应关系的虚拟队列组的中包含的虚拟队列组的数目满足虚拟机的业务要求,凡是能够满足这个要求的对应关系设置方式都在本发明实施例所述的技术方案内。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是也可以或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
由此可知,采用本发明实施例提供的虚拟机的数据交换装置进行数据包的交换时,特定虚拟机产生的数据包通过对应的虚拟队列组包含的虚拟队列映射的物理队列发往目的物理主机,虚拟机与虚拟队列组之间的对应关系使得特定虚拟机向所述目的物理主机发送数据包时不会占用所述源物理主机上其他虚拟机分配的网络资源,采用本发明实施例所述的虚拟机的数据交换方法可以保证虚拟机的数据交换效率;进一步的,设置所述虚拟机与虚拟队列组的对应关系时参照虚拟机上的业务要求以及虚拟队列组中包含的虚拟队列的数目,以实现从而使得合理利用所述源物理主机内的网络资源。
相应的,参阅附图6,为本发明实施例提供一种物理主机,所述物理主机的逻辑结构可以参阅附图3,该物理主机可以包括至少一个处理器601,例如CPU,至少一个网络接口604,例如物理网卡,或者其他的用户接口603,以及存储器605和至少一个通信总线602。
其中,通信总线602用于实现这些组件之间的连接通信。
网络接口604用于实现该物理主机和网络之间的连接通信,比如该网络接口604可以用于连接物理网卡和/或物理交换机等设备。
可选的,用户接口603,可以包括显示器,键盘或者其他点击设备,例如,鼠标,轨迹球(trackball),触感板或者触感显示屏等。
存储器605可能包括高速随机存取记忆体(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,该存储器605还可以包括至少一个位于远离前述处理器601的存储装置。
在一些实施方式中,存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统6051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块6052,包含各种应用程序,用于实现各种应用业务。
应用模块6052中包括但不限于与虚拟机的数据交换相关的各种单元,比如获取单元、确定单元、收发单元等。
具体地,处理器601,用于获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;从所述目标虚拟队列组中确定目标虚拟队列;通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
进一步的,所述处理器601还用于根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
值得注意的是,所述处理器601具体用于根据虚拟队列组中包括的虚拟队 列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;以及具体用于根据虚拟机的业务要求设置虚拟机的优先级;以及具体用于根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
需要说明的是,当虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,所述处理器601具体用于根据具有对应关系的虚拟队列组的优先级等级不低于虚拟机的优先级等级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系;或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目多时,所述处理器601具体用于根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系,其中至少一个虚拟队列组对应于至少两个优先级等级的虚拟机;或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目少时,所述处理器601具体用于根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级设置所述虚拟机与虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机对应于至少两个虚拟队列组。
值得注意的是,所述业务要求是指业务对响应及时性的要求,所述处理器601具体用于根据虚拟机上运行的业务对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级;或者,所述业务要求是指业务对网络资源的要求,所述处理器601具体用于根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行的业务对网络资源要求低的虚拟机的优先级;或者,所述业务要求是指业务对网络服务质量的要求,所述处理 器601具体用于根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级。
进一步的,所述处理器601还用于通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由此可知,采用本发明实施例提供的物理主机与目的物理主机交互传输数据包时,所述物理主机上的特定虚拟机产生的数据包通过对应的虚拟队列组包含的虚拟队列映射的物理队列发往目的物理主机,虚拟机与虚拟队列组之间的对应关系使得特定虚拟机向所述目的物理主机发送数据包时不会占用所述源物理主机上其他虚拟机分配的网络资源,所以采用本发明实施例所述的物理主机可以在一定程度上保证虚拟机的数据交换速率。进一步的,设置所述物理主机上的虚拟机与虚拟队列组的对应关系时参照虚拟机上的业务要求以及虚拟队列组中包含的虚拟队列的数目,以实现合理利用所述物理主机的网络资源。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于虚拟机的数据交换装置、物理主机以及通信系统的实施例而言,由于其基本相似于虚拟机的数据交换方法的实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是也可以或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,单元之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或者多条通信总线或者信号线。 本领域普通技术人员在不付出创造性劳动的情况下,既可以理解并实施。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种虚拟机的数据交换方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种虚拟机的数据交换方法,其特征在于,所述方法包括:
获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;
根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;
从所述目标虚拟队列组中确定目标虚拟队列;
通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
2.根据权利要求1所述的虚拟机的数据交换方法,其特征在于,还包括:
根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
3.根据权利要求2所述的虚拟机的数据交换方法,其特征在于,所述根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,包括:
根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;
根据虚拟机的业务要求设置虚拟机的优先级;
根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
4.根据权利要求3所述的虚拟机的数据交换方法,其特征在于,所述根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,包括:
当虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,根据虚拟队列组的优先级等级不低于具有对应关系的虚拟机的优先级等级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系;
或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目多时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个虚拟队列组对应于至少两个优先级等级的虚拟机;
或者,当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目少时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机对应于至少两个虚拟队列组。
5.根据权利要求3或4所述的虚拟机的数据交换方法,其特征在于:
所述业务要求是指业务对响应及时性的要求,
所述根据虚拟机的业务要求设置虚拟机的优先级,包括:
根据虚拟机上运行的业务对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级。
6.根据权利要求3或4所述的虚拟机的数据交换方法,其特征在于:
所述业务要求是指业务对网络资源的要求,
所述根据虚拟机的业务要求设置虚拟机的优先级,包括:
根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行的业务对网络资源要求低的虚拟机的优先级。
7.根据权利要求3或4所述的虚拟机的数据交换方法,其特征在于:
所述业务要求是指业务对网络服务质量的要求,
所述根据虚拟机的业务要求设置虚拟机的优先级,包括:
根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级。
8.根据权利要求1-4任一项所述的虚拟机的数据交换方法,其特征在于,所述从所述目标虚拟队列组中确定目标虚拟队列,包括:
基于所述第一数据包包含的所述第一虚拟机地址信息和所述目标物理主机的地址信息,通过调用Hash函数计算出目标虚拟队列的标识;
基于所述标识从所述目标虚拟队列组中确定对应的目标虚拟队列。
9.根据权利要求1-4任一项所述的虚拟机的数据交换方法,其特征在于,所述方法还包括:
通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
10.一种虚拟机的数据交换装置,其特征在于,包括:
获取单元,用于获取源物理主机内的第一虚拟机待发送的第一数据包,所述第一数据包包括所述第一虚拟机地址信息和目的物理主机地址信息;
确定单元,用于根据源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,确定与所述第一虚拟机地址信息表示的所述第一虚拟机对应的虚拟队列组作为目标虚拟队列组,所述多个虚拟队列组中的每个虚拟队列组均包含至少一个虚拟队列,所述多个虚拟队列组中的虚拟队列与所述源物理主机内的物理队列呈一一映射关系;
所述确定单元还用于从所述目标虚拟队列组中确定目标虚拟队列;
收发单元,用于通过与所述目标虚拟队列相映射的目标物理队列向所述目的物理主机地址信息对应的目的物理主机发送所述第一数据包。
11.根据权利要求10所述的虚拟机的数据交换装置,其特征在于,还包括:
设置单元,用于根据所述多个虚拟机的业务要求和所述多个虚拟队列组中包含的虚拟队列的数目设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
12.根据权利要求11所述的虚拟机的数据交换装置,其特征在于:
所述设置单元具体用于根据虚拟队列组中包括的虚拟队列的数目,为所述多个虚拟队列组中的每个虚拟队列组设置对应的优先级,其中优先级高的虚拟队列组中包含的虚拟队列的数目多于优先级低的虚拟队列组中包含的虚拟队列的数目;根据虚拟机的业务要求设置虚拟机的优先级;以及,根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系。
13.根据权利要求12所述的虚拟机的数据交换装置,其特征在于:在所述根据虚拟机的优先级与虚拟队列组的优先级设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系的操作上,
所述设置单元具体用于当虚拟机的优先级等级数目与虚拟队列组的优先级等级数目相同时,根据虚拟队列组的优先级等级不低于具有对应关系的虚拟机的优先级等级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系;
或者,所述设置单元具体用于当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目多时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个虚拟队列组对应于至少两个优先级等级的虚拟机;
或者,所述设置单元具体用于当虚拟机的优先级等级数目比虚拟队列组的优先级等级数目少时,根据优先级高的虚拟机对应的虚拟队列组的优先级高于优先级低的虚拟机对应的虚拟队列组的优先级的规则,设置所述源物理主机内的多个虚拟机与所述源物理主机关联的多个虚拟队列组的对应关系,其中至少一个优先级等级的虚拟机对应于至少两个虚拟队列组。
14.根据权利要求12或13所述的虚拟机的数据交换装置,其特征在于:
所述业务要求是指业务的对响应及时性的要求,
在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务的对响应及时性的要求,设置所述虚拟机的优先级,其中,其上运行的业务对响应及时性要求高的虚拟机的优先级高于其上运行的业务对响应及时性要求低的虚拟机的优先级。
15.根据权利要求12或13所述的虚拟机的数据交换装置,其特征在于:
所述业务要求是指业务的对网络资源的要求,
在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务对网络资源的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络资源要求高的虚拟机的优先级高于其上运行的业务对网络资源要求低的虚拟机的优先级。
16.根据权利要求12或13所述的虚拟机的数据交换装置,其特征在于:
所述业务要求是指业务的对网络服务质量的要求,
在所述根据虚拟机的业务要求设置虚拟机的优先级的操作上,所述设置单元具体用于根据虚拟机上运行的业务对网络服务质量的要求,设置所述虚拟机的优先级,其中,其上运行的业务对网络服务质量要求高的虚拟机的优先级高于其上运行的业务对网络服务质量要求低的虚拟机的优先级。
17.根据权利要求10-13任一项所述的虚拟机的数据交换装置,其特征在于:
在所述从所述目标虚拟队列组中确定目标虚拟队列的操作上,所述确定单元具体用于基于所述第一数据包包含的所述第一虚拟机地址信息和所述目标物理主机的地址信息,通过调用Hash函数计算出目标虚拟队列的标识;基于所述标识从所述目标虚拟队列组中确定对应的目标虚拟队列。
18.根据权利要求10-13任一项所述的虚拟机的数据交换装置,其特征在于:
所述收发单元还用于通过所述目标物理队列接收来自所述目的物理主机的第二数据包,所述第二数据包包括目的地址信息和所述目的物理主机地址信息,所述目的地址信息是所述第一虚拟机地址信息。
19.一种物理主机,其特征在于,包括:两个以上虚拟机和至少一个包含多个物理队列的物理网卡,以及如权利要求10-18任一项所述的虚拟机的数据交换装置,其中所述两个以上虚拟机包括第一虚拟机,所述数据交换装置用于将所述第一虚拟机待发送的第一数据包通过所述物理网卡中的目标物理队列向目的端的物理主机发送。
20.一种集群系统,其特征在于,包括:至少一个如权利要求19所述的物理主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310684772.7A CN103795621B (zh) | 2013-12-12 | 2013-12-12 | 一种虚拟机的数据交换方法、装置及物理主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310684772.7A CN103795621B (zh) | 2013-12-12 | 2013-12-12 | 一种虚拟机的数据交换方法、装置及物理主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795621A CN103795621A (zh) | 2014-05-14 |
CN103795621B true CN103795621B (zh) | 2017-02-15 |
Family
ID=50670937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310684772.7A Expired - Fee Related CN103795621B (zh) | 2013-12-12 | 2013-12-12 | 一种虚拟机的数据交换方法、装置及物理主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103795621B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017107091A1 (en) * | 2015-12-23 | 2017-06-29 | Intel IP Corporation | Virtual cpu consolidation to avoid physical cpu contention between virtual machines |
CN106250217A (zh) * | 2016-07-22 | 2016-12-21 | 无锡华云数据技术服务有限公司 | 一种多虚拟处理器间的同步调度方法及其调度系统 |
CN107819707B (zh) * | 2016-09-14 | 2020-11-10 | 阿里巴巴集团控股有限公司 | 数据处理的方法、装置、物理机、虚拟交换机与系统 |
CN111953805B (zh) * | 2017-09-30 | 2022-08-26 | 华为云计算技术有限公司 | 传输数据的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009645A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 基于cam的宽带网络业务流按每流排队的可扩展的装置 |
CN101599966A (zh) * | 2009-05-11 | 2009-12-09 | 曙光信息产业(北京)有限公司 | 一种多虚拟机应用的数据过滤方法 |
CN101819564A (zh) * | 2009-02-26 | 2010-09-01 | 国际商业机器公司 | 协助在虚拟机之间进行通信的方法和装置 |
CN102427421A (zh) * | 2011-12-19 | 2012-04-25 | 浪潮电子信息产业股份有限公司 | 一种高速网络虚拟化的方法 |
CN103164255A (zh) * | 2013-03-04 | 2013-06-19 | 华为技术有限公司 | 虚拟机网络通信实现方法和虚拟机监控器以及物理主机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423646B2 (en) * | 2010-07-09 | 2013-04-16 | International Business Machines Corporation | Network-aware virtual machine migration in datacenters |
-
2013
- 2013-12-12 CN CN201310684772.7A patent/CN103795621B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009645A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 基于cam的宽带网络业务流按每流排队的可扩展的装置 |
CN101819564A (zh) * | 2009-02-26 | 2010-09-01 | 国际商业机器公司 | 协助在虚拟机之间进行通信的方法和装置 |
CN101599966A (zh) * | 2009-05-11 | 2009-12-09 | 曙光信息产业(北京)有限公司 | 一种多虚拟机应用的数据过滤方法 |
CN102427421A (zh) * | 2011-12-19 | 2012-04-25 | 浪潮电子信息产业股份有限公司 | 一种高速网络虚拟化的方法 |
CN103164255A (zh) * | 2013-03-04 | 2013-06-19 | 华为技术有限公司 | 虚拟机网络通信实现方法和虚拟机监控器以及物理主机 |
Non-Patent Citations (1)
Title |
---|
Xen虚拟机的虚拟CPU松弛协同调度方法;王凯 等;《计算机研究与发展》;20120115;第118-127页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103795621A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951353B (zh) | 一种对vnf实现加速处理的方法及装置 | |
CN104980361B (zh) | 一种负载均衡方法、装置及系统 | |
CN103414535B (zh) | 数据发送方法和数据接收方法及相关装置 | |
CN103023827B (zh) | 一种虚拟化数据中心的数据转发方法及其实现设备 | |
CN103338252B (zh) | 一种分布式数据库并发存储虚拟请求机制的实现方法 | |
CN103475704B (zh) | 一种面向虚拟机群应用的虚拟节点配置方法 | |
CN103560967A (zh) | 一种业务需求感知的虚拟数据中心映射方法 | |
CN107317887B (zh) | 一种负载均衡方法、装置和系统 | |
CN104769550B (zh) | 在云计算网络中分配带宽的方法和系统 | |
US20140108584A1 (en) | Method and Apparatus for Network Resource Virtual Partitioning | |
CN106209402B (zh) | 一种虚拟网络功能的伸缩方法和设备 | |
CN104521198A (zh) | 用于虚拟以太网接口绑定的系统和方法 | |
CN103795621B (zh) | 一种虚拟机的数据交换方法、装置及物理主机 | |
CN113810205B (zh) | 服务算力信息的上报、接收方法、服务器及数据中心网关 | |
CN103369027A (zh) | 混合云环境中的位置感知虚拟服务配备 | |
CN103403683A (zh) | 虚拟数据中心服务请求的基于能力的路由 | |
CN108270676A (zh) | 一种基于IntelDPDK的网络数据处理方法及装置 | |
TW201246835A (en) | Data center switch | |
Zhang et al. | IoV scenario: Implementation of a bandwidth aware algorithm in wireless network communication mode | |
CN109558446A (zh) | 作业请求方法、装置、电子设备及存储介质 | |
CN104461727A (zh) | 内存模组访问方法及装置 | |
CN102932271A (zh) | 负载均衡的实现方法和装置 | |
CN106713378A (zh) | 实现多个应用服务器提供服务的方法和系统 | |
Li et al. | QoS-aware service selection in geographically distributed clouds | |
Hsu et al. | Virtual network mapping algorithm in the cloud infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20181212 |