一种用于虚拟交换机技术中数据传输的方法及装置制造方法及图纸

技术编号:13896565 阅读:150 留言:0更新日期:2016-10-25 03:23
本发明专利技术公开了一种用于虚拟交换机技术中数据传输的方法及装置,该方法包括:接收虚拟机VM访问文件或者磁盘的IO请求,确定是否通过用户态开放虚拟交换机OVS将所述IO请求发送到物理网卡;其中,所述用户态OVS实现同主机上的虚拟机以及跨主机的虚拟机之间的网络互通;如果确定通过用户态OVS将所述IO请求发送到所述物理网卡,则在用户态将所述IO请求转换为网络小型计算机系统接口ISCSI命令后发送到所述用户态OVS;所述用户态OVS将所述ISCSI命令发送到所述物理网卡。本发明专利技术公开的方法及装置解决现有技术中用户态OVS的虚拟机处理IO请求的性能比较低的问题。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种虚拟交换机技术中数据传输方法及装置。
技术介绍
虚拟交换机主要应用于服务器虚拟化场景,主要实现两个功能:功能1,传递虚拟机(Virtual Machine,VM)之间的网络流量;功能2,实现VM与外界网络的通信。Linux实现中把运行空间分成两部分:用户态和内核态。其中,用户态开放虚拟交换机(Open vSwitch,OVS)是指该交换机的数据面转发功能在Linux的用户态完成,并且该用户态OVS采用数据平面开发套件(Data Plane Development Kit,DPDK)作为数据通道与物理网卡连接;另外,该用户态OVS的管理平台与内核态OVS共用,该用户态OVS设置有限速功能能够实现对网卡限速,从而为虚拟化场景提供高性能的虚拟交换机方案。DPDK是一组快速包处理的库和驱动程序的集合。运行在Linux用户空间的Linux内核中断机制无法满足大吞吐量网卡(例如40GE)性能要求,Intel提出DPDK就是为了解决该问题,采用DPDK后可以达到网卡限速。现有用户态OVS方案中,虚拟机处理IO请求的路径如图1所示,虚拟磁盘服务进程接收虚拟机发送的IO请求,并将该IO请求放到存储栈;存储栈将该IO请求转换为IO报文后提交给IO协议栈;然后IO协议栈再通过socket机制将该IO报文传递给用户态OVS,最后由用户态OVS通过DPDK将报文
通过物理网卡发送出去。通过用户态OVS实现IO报文转发的过程中,IO报文需要从用户态OVS切换到内核态,再由内核态切换到用户态;所以需要经过上下文切换;同时将IO报文从用户态转发到内核态的存储栈时,需要对IO报文进行拷贝,所以现有技术中存在用户态OVS的虚拟机处理IO请求的性能比较低的问题。
技术实现思路
本专利技术实施例提供一种用于虚拟交换机技术中数据传输的方法及装置,本专利技术所提供的方法及装置解决现有技术中存在用户态OVS的虚拟机处理IO请求的性能比较低的问题。第一方面,提供一种用于虚拟交换机技术中数据传输的方法,该方法包括:接收虚拟机VM发送的IO请求,确定是否需要通过用户态开放虚拟交换机OVS将所述IO请求发送到物理网卡;其中,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;如果确定需要通过所述用户态OVS将所述IO请求发送到所述物理网卡,则在用户态将所述IO请求转换为网络小型计算机系统接口ISCSI命令后发送到所述用户态OVS,以通过所述用户态OVS将所述ISCSI命令发送到所述物理网卡。在该实施例中,虚拟机进行IO请求的处理时,通过判断IO请求是否为通过用户态OVS转发的,如果虚拟机则直接在用户态将IO请求转化为用户态OVS能够处理的格式,然后发送到用户态OVS进行处理。能够避免现有技术中IO请求转发时的上下文切换,从而能够有效的提高虚拟机处理IO请求的能力。结合第一方面,在一个可能的设计中,将所述IO请求转换为网络小型计
算机系统接口ISCSI命令包括:将所述IO请求转换成小型计算机系统接口SCSI命令;在所述SCSI命令中增加网络小型计算机系统接口ISCSI头以获得所述ISCSI命令。可选的,为了实现对IO请求的分类,将IO请求中需要通过用户态OVS发送的IO请求分离出来,则所述确定是否通过用户态OVS将所述IO请求发送到物理网卡包括:确定所述IO请求所访问的磁盘或访问的文件所在磁盘的磁盘信息,根据所述磁盘信息判断所述IO请求所访问的磁盘是否为远端设备的磁盘,如果是,则确定所述IO请求需要通过所述用户态OVS发送到所述物理网卡。第二方面,基于第一方面中IO请求的发送过程,在第二方面提供一种用于虚拟交换机技术中数据传输的方法,该方法实现IO请求的响应处理,该方法具体包括:接收物理网卡针对IO请求响应的网络小型计算机系统接口ISCSI报文;其中,所述ISCSI报文需要通过用户态开放虚拟交换机OVS发送到发起所述IO请求的虚拟机,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;在用户态将所述ISCSI报文转换为IO响应后发送到所述发起所述IO请求的虚拟机。结合第二方面,在一个可能的设计中,所述在用户态将所述ISCSI报文转换为IO响应后发送到所述发起所述IO请求的虚拟机包括:将所述ISCSI报文转换成SCSI响应;将所述SCSI响应转换为IO响应,并将所述IO响应发送到发起所述IO请求的虚拟机。第一方面提供的方法是IO请求的发起过程,第二方面所提供方法是IO请
求的响应处理过程,所以在具体实现时第二方面所提供方法的具体效果与第一方面方法相同。第三方面,提供一种电子设备,该电子设备包括:确认模块,用于接收虚拟机VM发送的IO请求,确定是否需要通过用户态开放虚拟交换机OVS将所述IO请求发送到物理网卡;其中,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;转换模块,用于如果确定需要通过所述用户态OVS将所述IO请求发送到所述物理网卡,则在用户态将所述IO请求转换为网络小型计算机系统接口ISCSI命令后发送到所述用户态OVS,以通过所述用户态OVS将所述ISCSI命令发送到所述物理网卡。结合第三方面,在一个可能的设计中,所述确认模块具体用于确定所述IO请求所访问的磁盘或访问的文件所在磁盘的磁盘信息,根据所述磁盘信息判断所述IO请求所访问的磁盘是否为远端设备的磁盘,如果是,则确定所述IO请求需要通过所述用户态OVS发送到所述物理网卡。结合第三方面,在一个可能的设计中,所述转换模块具体用于将所述IO请求转换成小型计算机系统接口SCSI命令;在所述SCSI命令中增加网络小型计算机系统接口ISCSI头以获得所述ISCSI命令。第四方面,提供一种电子设备,包括:接收模块,用于接收物理网卡针对IO请求响应的网络小型计算机系统接口ISCSI报文;其中,所述ISCSI报文需要通过用户态开放虚拟交换机OVS发送到发起所述IO请求的虚拟机,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;转换模块,用于在用户态将所述ISCSI报文转换为IO响应后发送到所述
发起所述IO请求的虚拟机。在一个可能的设计中,所述转换模块具体用于将所述ISCSI报文转换成SCSI响应;将所述SCSI响应转换为IO响应,并将所述IO响应发送到发起所述IO请求的虚拟机。第五方面,提供了一种计算机可读存储介质,所述可读存储介质上存储有实现第一方面描述的用于虚拟交换机技术中数据传输的方法的程序代码,该程序代码包含运行第一方面描述的用于虚拟交换机技术中数据传输的方法的执行指令。第六方面,提供了一种计算机可读存储介质,所述可读存储介质上存储有实现第二方面描述的用于虚拟交换机技术中数据传输的方法的程序代码,该程序代码包含运行第二方面描述的用于虚拟交换机技术中数据传输的方法的执行指令。第七方面,本专利技术实施例提供了一种计算机存储介质,用于储存为上述基站所用的计算机软件指令,其包含用于执行上述方面所设计的程序。第八方面,提供一种电子设备,该电子设备包括虚拟机、虚拟机监视器和硬件层,其中网络接口设备具体可以为物理网卡。该虚拟机监视器可以运行在两个状态:用户本文档来自技高网
...

【技术保护点】
一种用于虚拟交换机技术中数据传输的方法,其特征在于,所述该方法包括:接收虚拟机VM发送的IO请求,确定是否需要通过用户态开放虚拟交换机OVS将所述IO请求发送到物理网卡;其中,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;如果确定需要通过所述用户态OVS将所述IO请求发送到所述物理网卡,则在用户态将所述IO请求转换为网络小型计算机系统接口ISCSI命令后发送到所述用户态OVS,以通过所述用户态OVS将所述ISCSI命令发送到所述物理网卡。

【技术特征摘要】
1.一种用于虚拟交换机技术中数据传输的方法,其特征在于,所述该方法包括:接收虚拟机VM发送的IO请求,确定是否需要通过用户态开放虚拟交换机OVS将所述IO请求发送到物理网卡;其中,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;如果确定需要通过所述用户态OVS将所述IO请求发送到所述物理网卡,则在用户态将所述IO请求转换为网络小型计算机系统接口ISCSI命令后发送到所述用户态OVS,以通过所述用户态OVS将所述ISCSI命令发送到所述物理网卡。2.如权利要求1所述的方法,其特征在于,所述确定是否通过用户态OVS将所述IO请求发送到物理网卡包括:确定所述IO请求所访问的磁盘或访问的文件所在磁盘的磁盘信息,根据所述磁盘信息判断所述IO请求所访问的磁盘是否为远端设备的磁盘,如果是,则确定所述IO请求需要通过所述用户态OVS发送到所述物理网卡。3.如权利要求1或2所述的方法,其特征在于,所述将所述IO请求转换为网络小型计算机系统接口ISCSI命令包括:将所述IO请求转换成小型计算机系统接口SCSI命令;在所述SCSI命令中增加网络小型计算机系统接口ISCSI头以获得所述ISCSI命令。4.一种用于虚拟交换机技术中数据传输的方法,其特征在于,所述方法包括:接收物理网卡针对IO请求响应的网络小型计算机系统接口ISCSI报文;
\t其中,所述ISCSI报文需要通过用户态开放虚拟交换机OVS发送到发起所述IO请求的虚拟机,所述用户态OVS实现同主机上的虚拟机之间或跨主机的虚拟机之间的网络互通;在用户态将所述ISCSI报文转换为IO响应后发送到所述发起所述IO请求的虚拟机。5.如权利要求4所述的方法,其特征在于,所述在用户态将所述ISCSI报文转换为IO响应后发送到所述发起所述IO请求的虚拟机包括:将所述ISCSI报文转换成SCSI响应;将所述SC...

【专利技术属性】
技术研发人员:张明陆丽娜
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1