虚拟机的数据交换方法、装置和系统制造方法及图纸

技术编号:9742454 阅读:128 留言:0更新日期:2014-03-07 06:29
本发明专利技术实施例提供一种虚拟机的数据交换方法,包括:获取物理主机内需要发送给目的节点的数据,根据该数据确定目的节点为本物理主机内的节点还是本物理主机外的节点,若为本物理主机内的节点,则确定目的虚拟网卡接口,通过该目的虚拟网卡接口对应的虚拟网卡将所述数据发给对应的目的虚拟机,若为本物理主机外的节点,则确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外。此外,本发明专利技术实施例还提供相应的装置和系统。

【技术实现步骤摘要】
【国外来华专利技术】虚拟机的数据交换方法、装置和系统
本专利技术涉及通信
,具体涉及一种虚拟机的数据交换方法、装置和系统。
技术介绍
在虚拟化技术产生以后,多个虚拟机(VM,VirtualMachine)共存于一个主机(Host,后文亦称为物理主机)内部,虚拟机对用户呈现好似一个正常的物理机,因此,除了虚拟机之间有数据交换需求之外,虚拟机与外界网络也有通信的需求。现在主流的虚拟机数据交换方案有软交换和硬交换两种,其中,软件交换指的是用软件模仿一个物理交换机的行为,实现较为繁琐;而硬交换指的是在网卡芯片上或利用物理交换机来实现一个交换逻辑的行为,也就是说,虚拟机对外的数据交换发生在硬件上,例如,具体可以使用硬件直通技术,将物理网卡接口直接分配给虚拟机,或者使用SR-IOV(单根I/O虚拟技术,SingleRootI/OVirtualization)网卡生成的VF(virtualfunction,SR-IOV设备模拟出来的虚拟设备),使得虚拟机能直接使用网卡,这样,数据交换就可以发生在物理交换机或网卡上的交换逻辑模块上。该方案可以消除虚拟机使用网络对主机的消耗,性能较好,而且网卡内部的第二层交换机(L2switch,Layer2switch)是查询内部VF的媒体接入层(MAC,MediaAccessControl)转发,逻辑上没有环路,可以避免生成树协议(STP,SpanningTreeProtocol)的开销,实现较为灵活。在对现有技术的研究和实践过程中,本专利技术的专利技术人发现,虽然现有的这种硬交换方案相对于软交换而言,性能和灵活性都有所提高,但其数据交换效率并不够高,比如,虚拟机通信全部都需要先经过网卡,以及无论是与主机内的单元还是主机外的设备进行通信都会消耗周边原件扩展接口(PCI,PedpherdComponentInterconnect)总线带宽,等等,而且,在该方案中,主机内虚拟机间的通信还会影响主机内的其他虚拟机与主机外设备间的通信。
技术实现思路
本专利技术实施例提供一种虚拟机的数据交换方法、装置和系统,可以在不降低其性能和灵活性的前提下,提高数据交换效率,一定程度上消除主机内虚拟机间的通信对主机内的其他虚拟机与主机外设备间的通信的影响。第一方面,本专利技术实施例提供一种虚拟机的数据交换方法,包括:获取物理主机内需要发送给目的节点的数据,所述数据中携带目的节点的MAC地址;根据所述数据中携带的目的节点的MAC地址确定目的节点为本物理主机内的节点还是本物理主机外的节点;若为本物理主机内的节点,则确定目的虚拟接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机;若为本物理主机外的节点,则确定物理网卡接口(out_port),通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外。在第一种可能的实施方式中,结合第一方面,所述根据所述数据中携带的目的节点的MAC地址确定目的节点为本物理主机内的节点还是本物理主机外的节点,可以包括:确定第一映射表中是否存在所述数据中携带的目的节点的MAC地址,所述第一映射表包括MAC地址和虚拟网卡(NIC,NetworkInterfaceCard)接口的对应关系;若是,则确定目的节点为本物理主机内的节点,若否,则确定目的节点为本物理主机外的节点。在第二种可能的实施方式中,结合第一方面的第一种可能的实施方式,所述确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机,可以包括:根据所述数据中携带的目的节点的MAC地址从第一映射表中查找与所述MAC地址对应的目的虚拟网卡接口(in_port);通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机。在第三种可能的实施方式中,结合第一方面,所述根据所述数据中携带的目的节点的MAC地址确定目的节点为物理主机内的节点还是物理主机外的节点,可以包括:根据所述数据中携带的目的节点的MAC地址从第一映射表中查找与所述MAC地址对应的虚拟网卡接口,所述第一映射表包括MAC地址和虚拟网卡接口的对应关系;若查找到与所述MAC地址对应的虚拟网卡接口,则确定目的节点为本物理主机内的节点;若查找不到与所述MAC地址对应的虚拟网卡接口,则确定目的节点为本物理主机外的节点;其中,所述确定目的虚拟网卡接口为:确定所述查找到的与所述MAC地址对应的虚拟网卡接口为所述目的虚拟网卡接口。在第四种可能的实施方式中,结合第一方面,所述确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外,可以包括:获取接收所述数据时所使用的虚拟网卡接口;根据所述虚拟网卡接口从第二映射表中查找得到与所述虚拟网卡接口对应的物理网卡接口,所述第二映射表包括虚拟网卡接口和物理网卡接口的对应关系;通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外。在第五种可能的实施方式中,结合第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,该方法还可以包括:检测到后端虚拟网卡接入本物理主机时,生成虚拟网卡接口,并在所述第一映射表中添加对应于指定的MAC地址的所述虚拟网卡接口;以及,检测到后端虚拟网卡从本物理主机上移除时,在所述第一映射表中删除对应于所述指定的MAC地址的所述虚拟网卡接口;其中,所述第一映射表不进行媒体接入层地址学习(Mac-learning)。在第六种可能的实施方式中,结合第一方面,该方法还可以包括:通过物理网卡接收来自物理主机外的数据,该来自物理主机外的数据携带目的节点的MAC地址;根据所述来自物理主机外的数据中携带的目的节点的MAC地址确定对应目的虚拟网卡接口;通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述来自物理主机外的数据发送给对应的目的虚拟机。在第七种可能的实施方式中,结合第一方面的第六种可能的实施方式,所述由物理网卡根据所述来自物理主机外的数据中携带的目的节点的MAC地址确定对应目的虚拟网卡接口,可以包括:根据所述来自物理主机外的数据中携带的目的节点的MAC地址从第一映射表中查找与所述MAC地址对应的虚拟网卡接口,所述与所述MAC地址对应的虚拟网卡接口为目的虚拟网卡接口,所述第一映射表包括MAC地址和虚拟网卡接口的对应关系。此外,可选的,在所述通过物理网卡接收来自物理主机外的数据之后,该方法还可以包括:根据所述来自物理主机外的数据中携带的目的节点的MAC地址,从第一映射表中查找不到与所述MAC地址对应的虚拟网卡接口时,丢弃所述来自物理主机外的数据。第二方面,本专利技术实施例还提供一种虚拟机的数据交换装置,包括获取单元、判断单元、第一处理单元和第二处理单元;获取单元,用于获取物理主机内需要发送给目的节点的数据,该数据中携带目的节点的MAC地址;判断单元,用于根据所述数据中携带的目的节点的MAC地址确定目的节点为物理主机内的节点还是物理主机外的节点;第一处理单元,用于在判断单元确定目的节点为物理主机内的节点时,确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机;第二处理单元,用于在判断单元确定目的节点为物理主机外的节点时,确定物理网卡接口,通过本文档来自技高网
...
虚拟机的数据交换方法、装置和系统

【技术保护点】
一种虚拟机的数据交换方法,其特征在于,包括:获取物理主机内需要发送给目的节点的数据,所述数据中携带目的节点的媒体接入层地址;根据所述数据中携带的目的节点的媒体接入层地址确定目的节点为本物理主机内的节点还是本物理主机外的节点;若为本物理主机内的节点,则确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机;若为本物理主机外的节点,则确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外。

【技术特征摘要】
【国外来华专利技术】1.一种虚拟机的数据交换方法,其特征在于,包括:获取物理主机内需要发送给目的节点的数据,所述数据中携带目的节点的媒体接入层地址;根据所述数据中携带的目的节点的媒体接入层地址确定目的节点为本物理主机内的节点还是本物理主机外的节点;若为本物理主机内的节点,则确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机;若为本物理主机外的节点,则确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外;其中,所述确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外,包括:获取接收所述数据时所使用的虚拟网卡接口;根据所述虚拟网卡接口从第二映射表中查找得到与所述虚拟网卡接口对应的物理网卡接口,所述第二映射表包括虚拟网卡接口和物理网卡接口的对应关系;通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外。2.根据权利要求1所述的方法,其特征在于,所述根据所述数据中携带的目的节点的媒体接入层地址确定目的节点为本物理主机内的节点还是本物理主机外的节点,包括:确定第一映射表中是否存在所述数据中携带的目的节点的媒体接入层地址,所述第一映射表包括媒体接入层地址和虚拟网卡接口的对应关系;若所述第一映射表中存在所述数据中携带的目的节点的媒体接入层地址,则确定目的节点为本物理主机内的节点;若所述第一映射表中不存在所述数据中携带的目的节点的媒体接入层地址,则确定目的节点为本物理主机外的节点。3.根据权利要求2所述的方法,其特征在于,所述确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机,包括:根据所述数据中携带的目的节点的媒体接入层地址从第一映射表中查找与所述媒体接入层地址对应的虚拟网卡接口,所述与所述媒体接入层地址对应的虚拟网卡接口为目的虚拟网卡接口;通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机。4.根据权利要求1所述的方法,其特征在于,所述根据所述数据中携带的目的节点的媒体接入层地址确定目的节点为本物理主机内的节点还是本物理主机外的节点,包括:根据所述数据中携带的目的节点的媒体接入层地址从第一映射表中查找与所述媒体接入层地址对应的虚拟网卡接口,所述第一映射表包括媒体接入层地址和虚拟网卡接口的对应关系;若查找到与所述媒体接入层地址对应的虚拟网卡接口,则确定目的节点为本物理主机内的节点;若查找不到与所述媒体接入层地址对应的虚拟网卡接口,则确定目的节点为本物理主机外的节点;其中,所述确定目的虚拟网卡接口为:确定所述查找到的与所述媒体接入层地址对应的虚拟网卡接口为所述目的虚拟网卡接口。5.根据权利要求2至4任一项所述的方法,其特征在于,还包括:检测到后端虚拟网卡接入本物理主机时,生成对应的虚拟网卡接口,并在所述第一映射表中添加对应于指定的媒体接入层地址的所述虚拟网卡接口;以及,检测到所述后端虚拟网卡从本物理主机上移除时,在所述第一映射表中删除对应于所述指定的媒体接入层地址的所述虚拟网卡接口。6.根据权利要求1项所述的方法,其特征在于,还包括:通过物理网卡接收来自物理主机外的数据,该来自物理主机外的数据中携带目的节点的媒体接入层地址;根据所述来自物理主机外的数据中携带的目的节点的媒体接入层地址确定对应的目的虚拟网卡接口;通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述来自物理主机外的数据发送给对应的目的虚拟机。7.根据权利要求6所述的方法,其特征在于,所述根据所述来自物理主机外的数据中携带的目的节点的媒体接入层地址确定对应的目的虚拟网卡接口,包括:根据所述来自物理主机外的数据中携带的目的节点的媒体接入层地址,从第一映射表中查找与所述媒体接入层地址对应的虚拟网卡接口,所述与所述媒体接入层地址对应的虚拟网卡接口为目的虚拟网卡接口,所述第一映射表包括媒体接入层地址和虚拟网卡接口的对应关系。8.根据权利要求7所述的方法,其特征在于,所述通过物理网卡接收来自物理主机外的数据之后,还包括:根据所述来自物理主机外的数据中携带的目的节点的媒体接入层地址,从所述第一映射表中查找不到与所述媒体接入层地址对应的虚拟网卡接口时,丢弃所述来自物理主机外的数据。9.一种虚拟机的数据交换装置,其特征在于,包括:获取单元,用于获取物理主机内需要发送给目的节点的数据,所述数据中携带目的节点的媒体接入层地址;判断单元,用于根据所述数据中携带的目的节点的媒体接入层地址确定目的节点为本物理主机内的节点还是本物理主机外的节点;第一处理单元,用于在所述判断单元确定目的节点为本物理主机内的节点时,确定目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机;第二处理单元,用于在所述判断单元确定目的节点为本物理主机外的节点时,确定物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外;其中,所述第二处理单元,具体用于在所述判断单元确定目的节点为本物理主机外的节点时,获取接收述数据时所使用的虚拟网卡接口,根据所述虚拟网卡接口从第二映射表中查找得到与所述虚拟网卡接口对应的物理网卡接口,通过所述物理网卡接口对应的物理网卡将所述数据发送至所述物理主机外;所述第二映射表包括虚拟网卡接口和物理网卡接口的对应关系。10.根据权利要求9所述的虚拟机的数据交换装置,其特征在于,所述判断单元,具体用于确定第一映射表中是否存在所述数据中携带的目的节点的媒体接入层地址,若存在所述数据中携带的目的节点的媒体接入层地址,则确定目的节点为本物理主机内的节点,若不存在所述数据中携带的目的节点的媒体接入层地址,则确定目的节点为本物理主机外的节点;所述第一映射表包括媒体接入层地址和虚拟网卡接口的对应关系。11.根据权利要求10所述的虚拟机的数据交换装置,其特征在于,所述第一处理单元,具体用于在判断单元确定目的节点为本物理主机内的节点时,根据所述数据中携带的目的节点的媒体接入层地址从第一映射表中查找与所述媒体接入层地址对应的虚拟网卡接口,所述与所述媒体接入层地址对应的虚拟网卡接口为目的虚拟网卡接口,通过所述目的虚拟网卡接口对应的目的虚拟网卡将所述数据发给对应的目的虚拟机。12.根据权利要求9所述的虚拟机的数据交换装置,其特征在于,所述判断单元,具体用于根据所述数据中携带的目的节点的媒体接入层地址从第一映射表中查找与所述媒体接入层地址对应的虚拟网卡接口;若查找到与所述媒体接入层地址对应的虚拟网卡接口,则确定目的节点为本物理主机内的节点;若查找不到与所述媒体接入层地址对应的虚拟网卡接口,则确定目的节点为本物理主机外的节点,所述第一映射表包括媒体接入层地址和虚拟网卡接口的对应关系;则所述第一处理单元,具体用于在判断单元确定目的节点为本物理主机内的节点时,确定所述查找到的与所述媒体接入层地址对应的虚拟网卡接口为所述目的虚拟网卡接口。13.根据权利要求10至12任一项所述的虚拟机的数据交换装置,其特征在于,还包括检测单元;检测单元,用于检测到后端虚拟网卡接入本物理主机时,生成对应的虚拟网卡接口,并在所述第一映射表中添加对应于指定的媒体接入层地址的所述虚拟网卡接口;以及,检测到所述后端虚拟网卡从本物理主机上移除时,在所述第一映射表中删除对应于所述指定的媒体接入层地址的所述虚拟网卡接口。14.根据权利要求9所述的虚拟机的数据交换装置,其特征在于,还包括接收单元、确定单元和发送单元;接收单元,用于通过物理网卡接收来自物理主机外的数据,该来自物理主机外的数据中携带目的节点的媒体接入层地址;确定单元,用于根据所述来自物理主...

【专利技术属性】
技术研发人员:秦传瑜逯云松
申请(专利权)人:华为技术有限公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1