技术领域本发明涉及数据处理技术,尤其涉及一种基于边缘虚拟桥接(EdgeVirtualBridging,EVB)的数据交换方法及系统。
背景技术:
系统虚拟化技术的核心思想是使用虚拟化软件在一台物理机上虚拟出一台或多台虚拟机(VirtualMachine,VM),所谓虚拟机是指使用系统虚拟化技术运行在一个隔离环境中,且具有完整硬件功能的逻辑计算机系统;系统虚拟化技术因具有提高服务器的资源利用率、且提高系统的可靠性的优势,被广泛应用于计算机网络中的服务器。目前,服务器采用系统虚拟化技术能够配置多个虚拟机,虚拟机之间需要通过具有数据交换功能的网络进行通信,但由于各个虚拟机的网络接口是虚拟的,因此,不能直接通过具有数据交换功能的硬件实体设备进行互联。现有服务器中的虚拟机之间进行数据交换,通常是将具有数据交换功能的硬件实体设备也虚拟化,即:在服务器中配置虚拟交换机(Vswitch)16,这样,虚拟机之间进行通信时,虚拟机的网络接口可以不需要经过硬件实体设备,直接在服务器内部通过虚拟交换机进行互联,采用虚拟交换机实现的服务器的组成结构如图1所示,虚拟机VM13和虚拟机VM15之间的通信就直接通过服务器10中配置的Vswitch16完成。但是,随着虚拟机数据的增加,虚拟交换机会占用服务器中大量的处理器(CPU)资源及内存资源,这样,会导致虚拟机的性能下降;并且,不便于虚拟机之间的网络流量监管。为解决上述采用虚拟交换机实现数据交换而导致的问题,电气和电子工程师协会(InstituteofElectricalandElectronicsEngineers,IEEE)提出了一种新的技术标准--EVB,基于EVB实现的虚拟机交换系统的组成结构如图2所示,EVB技术的基本思路是:所有来自于虚拟机的流量都会被转发到邻近的外部交换机26,即使同一服务器20内各个虚拟机之间的流量,如虚拟机VM24和虚拟机VM25之间的流量,也要交给物理接入的外部交换机26查表处理,之后再掉头返回给服务器20,流量做了一个180度的转向,形成了所谓的“发卡弯”模式;该方式虽然能够提高CPU的资源利用率,且便于对虚拟机之间的网络流量进行监管,但通过外部交换机26实现以虚拟机为目标的感知、控制和数据交换,同一服务器内的虚拟机之间的流量在服务器20及外部交换机26之间传输了两次,浪费了网络带宽资源且增加了数据报文的传输时延。
技术实现要素:
有鉴于此,本发明实施例期望提供一种基于EVB的数据交换方法及系统,不仅能提高网络带宽资源的利用率,还能减小数据报文的传输时延。为达到上述目的,本发明的技术方案是这样实现的:本发明实施例提供了一种基于EVB的数据交换方法,该方法包括:接收源主机发送的数据报文,所述数据报文中携带有目标主机的介质访问控制(MediaAccessControl,MAC)地址;根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台;确定处于同一硬件平台时,将所述数据报文直接发送给目标主机。上述方案中,所述方法还包括:确定处于不同硬件平台时,将相应的虚拟通道标识携带于所述数据报文中,并通过外部交换机将所述数据报文发送给目标主机。上述方案中,所述接收源主机发送的数据报文之后,所述方法还包括:对所述数据报文的合法性进行验证;对所述数据报文的合法性验证通过时,根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台。上述方案中,所述根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台,包括:根据目标主机的MAC地址查询预存的MAC地址表,确定源主机与目标主机是否处于同一硬件平台。基于上述方法,本发明实施例提供了一种基于EVB的数据交换系统,该系统包括:接收模块、确定模块、发送模块;其中,所述接收模块,用于接收源主机发送的数据报文,所述数据报文中携带有目标主机的MAC地址;所述确定模块,用于根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台;所述发送模块,用于在所述确定模块确定处于同一硬件平台时,将所述数据报文直接发送给目标主机。上述方案中,所述发送模块,还用于在所述确定模块确定处于不同硬件平台时,将相应的虚拟通道标识携带于所述数据报文中,并通过外部交换机将所述数据报文发送给目标主机。上述方案中,所述服务器还包括:验证模块,用于在接收模块接收源主机发送的数据报文之后,对所述数据报文的合法性进行验证;对所述数据报文的合法性验证通过时,由所述确定模块根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台。上述方案中,所述确定模块,具体用于根据目标主机的MAC地址查询预存的MAC地址表,确定源主机与目标主机是否处于同一硬件平台。本发明实施例所提供的基于EVB的数据交换方法及系统,接收源主机发送的数据报文,所述数据报文中携带有目标主机的MAC地址;根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台;确定处于同一硬件平台时,将所述数据报文直接发送给目标主机,而不需要通过外部交换机发送所述数据报文;如此,本发明实施例确定处于同一硬件平台时,不需要通过外部交换机,在服务器内部即可直接将所述数据报文发送给目标主机,不仅能避免不必要的网络带宽资源开销,提高网络带宽资源的利用率,还能减小数据报文的传输时延。附图说明图1为现有技术中采用虚拟交换机实现的服务器的组成结构示意图;图2为现有技术中基于EVB的虚拟机交换系统的组成结构示意图;图3为本发明实施例基于EVB的数据交换方法的实现流程示意图;图4为本发明实施例基于EVB的数据交换系统的组成结构示意图;图5为本发明实施例一基于EVB的虚拟机交换系统的组成结构示意图。具体实施方式本发明实施例中,接收源主机发送的数据报文,所述数据报文中携带有目标主机的MAC地址;根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台;确定处于同一硬件平台时,将所述数据报文直接发送给目标主机;如此,本发明实施例不仅能避免不必要的网络带宽资源开销,还能减小数据报文的传输时延。下面结合附图对本发明的具体实施方式进行说明。如图3所示,本发明实施例提供的基于EVB的数据交换流程,应用于服务器,具体实现步骤包括:步骤S300、接收源主机发送的数据报文,所述数据报文中携带有目标主机的MAC地址。这里,所述服务器通常配置有多个虚拟机,每个虚拟机可以如真实主机一般运行,所述服务器中配置的所有虚拟机均处于同一硬件平台,可以使用或共享同一硬件平台资源,从而提高所述服务器的资源利用率。这里,所述源主机为服务器中的虚拟机;所述目标主机可以为与所述源主机处于同一硬件平台的虚拟机,即:所述源主机与目标主机为同一服务器中的不同虚拟机,所述目标主机也可以为与所述源主机处于不同硬件平台的虚拟机,即:所述源主机与目标主机为不同服务器中的虚拟机。步骤S301、对所述数据报文的合法性进行验证,对所述数据报文的合法性验证通过时,则转入步骤S302;对所述数据报文的合法性验证未通过时,结束本次处理流程。这里,对所述数据报文的合法性验证未通过时,可以直接丢弃所述数据报文,并结束本次处理流程。步骤S302、根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台,确定处于同一硬件平台时,转入步骤S303;确定处于不同硬件平台时,转入步骤S304。这里,首先从所述数据报文的报文头部提取出目标主机的MAC地址,根据目标主机的MAC地址查询预存的MAC地址表,确定源主机与目标主机是否处于同一硬件平台。这里,所述MAC地址表中包括目标主机的MAC地址及所属的网段等,具体如何根据目标主机的MAC地址查询预存的MAC地址表,确定源主机与目标主机是否处于同一硬件平台属于现有技术,重复之处不再赘述。步骤S303、将所述数据报文直接发送给目标主机,不需要通过外部交换机发送,结束本次处理流程。步骤S304、将相应的虚拟通道标识携带于所述数据报文中,并通过外部交换机将所述数据报文发送给目标主机。本发明实施例中,根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台,确定处于同一硬件平台时,将所述数据报文直接发送给目标主机,而不需要将所述数据报文发送到外部交换机,再从外部交换机返回至服务器内部的目标主机,因此,相对于现有技术同一服务器内的虚拟机之间的流量在服务器及外部交换机之间需要传输两次的数据交换方式,本发明实施例不仅能避免不必要的网络带宽资源开销,提高网络带宽资源的利用率;还能减小数据报文的传输时延;确定处于不同硬件平台时,通常采用基于EVB的两种现有核心机制实现数据交换:1)第一核心机制:修改生成树协议修改生成树协议支持从一个端口上接收到的报文也能从该端口发送出去的功能;2)第二核心机制:重用Q-in-Q重用Q-in-Q支持在外部交换机和服务器之间的物理链路上传送携带虚拟通道标识(S-tag)的数据报文,通过S-tag标识不同的虚拟通道(S-channel),从而实现不同流量的隔离;这里,采用现有重用Q-in-Q实现数据交换,在EVB系统模型中,由服务器侧的S组件和外部交换机侧的S组件通过S通道发现和配置协议(S-ChannelDiscoveryandConfigurationProtocol,CDCP)进行协商:由外部交换机负责分配S-tag,该S-tag用来在服务器内S组件和交换机内S组件之间建立若干个S-channel;服务器侧的S组件相应端口为所述数据报文添加相应S-tag,若该数据报文未携带S-tag,则判断该数据报文为非法报文,将所述数据报文丢弃处理,结束本次处理流程;否则,将携带S-tag的数据报文通过S-Channel传输到外部交换机,在外部交换机S组件的相应端口上剥离S-tag,并转发该数据报文到目标主机,如此,将相应的S-tag携带于所述数据报文并通过外部交换机发送给目标主机,从而实现不同流量的隔离。为实现上述方法,本发明实施例提供了一种基于EVB的数据交换系统,由于系统解决问题的原理与方法相似,因此,系统的实施可以参见前述方法的实施,重复之处不再赘述。图4为本发明实施例中提供的基于EVB的数据交换系统的组成结构示意图,如图4所示,该系统包括:接收模块400、确定模块401、发送模块402;其中,所述接收模块400,用于接收源主机发送的数据报文,所述数据报文中携带有目标主机的MAC地址;所述确定模块401,用于根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台;所述发送模块402,用于在所述确定模块401确定处于同一硬件平台时,将所述数据报文直接发送给目标主机。以上划分方式仅为本发明实施例给出的一种优选实现方式,功能模块的划分方式不构成对本发明的限制。这里,所述源主机为服务器中的虚拟机;所述目的主机可以为与所述源主机处于同一硬件平台的虚拟机,也可以为与所述源主机处于不同硬件平台的真实主机或虚拟机。具体实施中,所述发送模块402,还用于在所述确定模块401确定处于不同硬件平台时,将相应的虚拟通道标识携带于所述数据报文中,并通过外部交换机将所述数据报文发送给目标主机。具体实施中,所述服务器还包括:验证模块403,用于在接收模块400接收源主机发送的数据报文之后,对所述数据报文的合法性进行验证;对所述数据报文的合法性验证通过时,由所述确定模块401根据目标主机的MAC地址确定源主机与目标主机是否处于同一硬件平台。具体实施中,所述确定模块401,具体用于根据目标主机的MAC地址查询预存的MAC地址表,确定源主机与目标主机是否处于同一硬件平台。在实际应用中,基于EVB的数据交换系统可以集成于服务器中,也可以与服务器通过接口进行通信连接,所述基于EVB的数据交换系统作为服务器的辅助平台,控制所述服务器中虚拟机之间进行数据传输或所述服务器中的虚拟机与外部网络之间进行数据传输。在实际应用中,在实际应用中,所述接收模块400、确定模块401、发送模块402、验证模块403均可由位于基于EVB的数据交换系统的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。为了更清楚地对本发明实施例进行说明,下面以具体实施例对本发明实施例中的数据交换流程进行详细描述。实施例一如图5所示,本实施例一中基于EVB的虚拟机交换系统包括服务器50、外部交换机56,所述基于EVB的数据交换系统集成于服务器50中,在所述服务器50中配置有五个虚拟机:虚拟机VM51、虚拟机VM52、虚拟机VM53、虚拟机VM54、虚拟机VM55;并在外部服务器中配置虚拟机VM57;当VM54需要与VM55进行通信时,基于EVB的数据交换系统接收到源主机VM54发送的数据报文时,从所述数据报文的报文头部提取出目标主机VM55的MAC地址,根据目标主机VM55的MAC地址查询MAC地址表,确定源主机VM54与目标主机VM55处于同一硬件平台,此时,不通过外部交换机56,将所述数据报文直接发送给目标主机,以实现服务器内部虚拟机之间的数据报文传输;当VM53需要与外部服务器中的虚拟机VM57进行通信时,基于EVB的数据交换系统接收到源主机VM53发送的数据报文时,从所述数据报文的报文头部提取出目标主机VM57的MAC地址,根据目标主机VM57的MAC地址查询MAC地址表,确定源主机VM53与目标主机VM57处于不同硬件平台时,将相应的S-tag1携带于所述数据报文并通过外部交换机56发送给目标主机VM57。本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。