一种虚拟机数据流管理方法和系统技术方案

技术编号:14415070 阅读:58 留言:0更新日期:2017-01-12 03:07
本发明专利技术实施例公开了一种虚拟机数据流管理方法,所述方法包括:主机通过SR-IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址;所述主机根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能。本发明专利技术实施例还公开了一种虚拟机数据流管理系统。采用本发明专利技术,可提高虚拟机的网络通信性能。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种虚拟机数据流管理方法和系统
技术介绍
服务器虚拟化技术,使CPU、内存、磁盘、I/O(input/output,输入输出端口)等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,让计算机系统对业务的变化更具适应力。目前虚拟化技术中,虚拟子机与主机之间的网络通信采用PV驱动(Para-VirtualizationDriver,半虚拟化驱动)的半虚拟化方案,即:在主机侧安装后端驱动,而在虚拟子机侧安装前端驱动,通过前后端驱动的交互来实现虚拟子机的网络通信,所有发送到虚拟子机或由虚拟子机发送的数据包都会通过主机侧的后端驱动,这样就可以在主机侧对虚拟子机的网络通信进行包过滤、QoS(QualityofService,服务质量)等管理。但是,同时由于所有虚拟子机的数据包都会经由主机侧的后端驱动处理,即由主机侧的后端驱动进行软路由,导致主机侧的CPU处理负担非常大,使用千兆网卡时,网络吞吐量,CPU的消耗还可以接受。在使用万兆网卡时,容易主机侧的CPU性能瓶颈并且对其使用寿命产生影响,无法充分利用网卡的处理能力。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种虚拟机数据流管理方法和系统,可提高虚拟机的网络通信性能。为了解决上述技术问题,本专利技术实施例提供了一种虚拟机数据流管理方法,所述方法包括:主机通过SR-IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址;所述主机根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能。相应地,本专利技术实施例还提供了一种虚拟机数据流管理方法,所述方法包括:目标虚拟子机通过SR-IOV网卡的虚拟连接功能发送IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述目标虚拟子机对应的主机在相同SR-IOV网卡中的指定网口的MAC地址和通信对端的IP地址;所述主机在通过所述SR-IOV网卡中的指定网口接收到所述IP数据包后根据所述目标IP地址将所述IP数据包转发至所述通信对端。相应地,本专利技术实施例还提供了一种虚拟机数据流管理系统,包括主机和至少一个虚拟子机,其中:所述主机,用于通过SR-IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址;所述主机,还用于根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能。相应地,本专利技术实施例还提供了一种虚拟机数据流管理系统,包括主机和至少一个虚拟子机,其中:所述虚拟子机,用于通过SR-IOV网卡的虚拟连接功能发送IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述目标虚拟子机对应的主机在相同SR-IOV网卡中的指定网口的MAC地址和通信对端的IP地址;所述主机,用于在通过所述SR-IOV网卡中的指定网口接收到所述IP数据包后根据所述目标IP地址将所述IP数据包转发至所述通信对端。本专利技术实施例中通过在流经虚拟子机的IP数据包中配置虚拟子机对应主机的指定网口的MAC地址,使得目标虚拟子机的网络数据可以经由主机指定网口,从而可以实现对目标虚拟子机的网络数据进行包过滤、QoS管理,同时由于数据不再需要经过主机侧的后端驱动处理,避免产生主机侧的CPU性能瓶颈或对其使用寿命产生影响,充分实现利用网卡的处理能力。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例中的一种虚拟机数据流管理方法的流程示意图;图2是本专利技术另一实施例中的虚拟机数据流管理方法的流程示意图;图3是本专利技术实施例中的SR-IOV技术网卡通信架构的示意图;图4是本专利技术另一实施例中的虚拟机数据流管理方法的流程示意图;图5是本专利技术另一实施例中的虚拟机数据流管理方法的流程示意图;图6是本专利技术实施例中的一种虚拟机数据流管理系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1是本专利技术实施例中的一种虚拟机数据流管理方法的流程示意图,如图所示本实施例中的虚拟机数据流管理方法流程可以包括:S101,主机通过SR-IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址。所述主机的指定网口为本实施例中的目标虚拟子机的虚拟连接功能(下文也称VF,VirtualFunction)所属的物理连接功能(下文也称PF,PhysicalFuntion),或与所述目标虚拟子机的虚拟连接功能VF属于同一物理连接功能PF的另一虚拟连接功能VF。本专利技术实施例中通信对端在向同属于一SR-IOV网卡的虚拟子机发送IP数据包时,IP数据包中的目标MAC地址是该虚拟子机对应的主机的指定网口的MAC地址,这样主机侧可以通过SR-IOV网卡的指定网口接收到通信对端发送的IP数据包。所述通信对端为外部网络设备,即除了主机外的其他网络设备。S102,所述主机根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能。具体实现中,本专利技术实施例中的虚拟机数据流管理方法基于支持SR-IOV(Single-RootI/OVirtualization,单根I/O虚拟化)技术的网卡中的L2(Layer2,即数据链路层)交换逻辑,SR-IOV技术网卡通信架构可以如图3所示,在本实施例中的流程执行之前,可以通过图3中主机的网卡的物理连接功能(下文也称PF,PhysicalFuntion)为目标虚拟子机生成并分配虚拟连接功能(下文也称VF,VirtualFunction),同时分配该VF的IP和虚拟MAC地址,分配得到的VF直通目标虚拟子机。本专利技术实施例中的主机会管理各个虚拟子机的VF与其IP之间的映射关系,在接收到外部发来的IP数据包时,可以根据其携带的目标IP地址将所述IP数据包转发至对应的目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能,目标虚拟子机从而接收到该IP数据包。从而,主机通过指定网口接收到通信对端发送的IP数据后可以对其进行包过滤、QoS管理后,再将经过包过滤、QoS管理的网络数据转发至目标虚拟子机的VF,从而实现了在主机侧可以对发往目标虚拟子机的网络数据进行包过滤、QoS管理。进而在可选实施例中,为了让通信对端在向目标虚拟子机发送IP数据包时将目标MAC地址设为该虚拟子机对应的主机的指定网口的MAC地址,本专利技术实施例中可以通过执行以下流本文档来自技高网...
一种虚拟机数据流管理方法和系统

【技术保护点】
一种虚拟机数据流管理方法,其特征在于,所述方法包括:主机通过SR‑IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址;所述主机根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR‑IOV网卡中的虚拟连接功能。

【技术特征摘要】
1.一种虚拟机数据流管理方法,其特征在于,所述方法包括:主机通过SR-IOV网卡的指定网口接收通信对端发送的IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述主机的指定网口的MAC地址和目标虚拟子机的IP地址;所述主机根据所述目标IP地址将所述IP数据包转发至目标虚拟子机在相同SR-IOV网卡中的虚拟连接功能。2.如权利要求1所述的虚拟机数据流管理方法,其特征在于,所述主机通过指定网口接收通信对端发送的IP数据之前还包括:获取通信对端发送的针对所述目标虚拟子机的ARP请求消息,所述ARP请求消息中的目标IP地址为所述目标虚拟子机的IP地址;根据所述ARP请求消息向所述通信对端发送ARP响应消息,所述ARP响应消息中的发送者MAC地址或以太网源地址均为所述主机指定网口的MAC地址,以使所述通信对端根据所述ARP响应消息将IP数据包发送至所述目标虚拟子机对应的主机的指定网口。3.如权利要求1-2中任一项所述的虚拟机数据流管理方法,其特征在于,所述主机指定网口为所述目标虚拟子机的虚拟连接功能所属的物理连接功能,或与所述目标虚拟子机的虚拟连接功能属于同一物理连接功能的另一虚拟连接功能。4.一种虚拟机数据流管理方法,其特征在于,所述方法包括:目标虚拟子机通过SR-IOV网卡的虚拟连接功能发送IP数据包,所述IP数据包中的目标MAC地址和目标IP地址分别是所述目标虚拟子机对应的主机在相同SR-IOV网卡中的指定网口的MAC地址和通信对端的IP地址;所述主机在通过所述SR-IOV网卡中的指定网口接收到所述IP数据包后根据所述目标IP地址将所述IP数据包转发至所述通信对端。5.如权利要求4所述的虚拟机数据流管理方法,其特征在于,在所述目标虚拟子机发送IP数据包之前还包括:所述目标虚拟子机发送ARP请求消息;根据所述ARP请求消息向所述目标虚拟子机发送ARP响应消息,所述ARP响应消息中的发送者MAC地址或以太网源地址均为所述主机的指定网口的MAC地址,以使所述目标虚拟子机根据所述ARP响应消息将IP数据包发送至所述主机的指定网口。6.如权利要求5所述的虚拟机数据流管理方法,其特征在于,所述检测到所述目标虚拟子机发送ARP请求消息之后还包括:丢弃所述ARP请求消息。7.如权利要求4-6中任一项所述的虚拟机数据流管理方法,其特征在于,所述目标虚拟子机对应的主机的指定网口为所述目标虚拟子机的虚拟连接功能所属的物理连接功能,或与所述目标虚拟子机的虚拟连接功能属于同一物理连接功能的另一虚拟连接功能。8.一种虚拟机数据流管理系统,其特征在于,包括主机和...

【专利技术属性】
技术研发人员:刘华王福海
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1