数据发送的方法及设备技术

技术编号:21738191 阅读:21 留言:0更新日期:2019-07-31 20:08
本发明专利技术实施例提供了一种数据发送的方法及设备,涉及通信技术领域,方法包括当第一虚拟机与第二虚拟机建立数据连接时,第一虚拟机根据第一虚拟机的虚拟地址,确定第一虚拟机对应的RDMA网络的全局身份标识GID,第一虚拟机通过GID对应的第一端口,向主机发送队列对QP属性设置信息,QP属性设置信息包括第一指令和第二指令,主机删除第一指令,将第二指令修改为第三指令,主机根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡基于设置后的QP队列向第二虚拟机发送数据。采用本发明专利技术即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。

Method and equipment of data transmission

【技术实现步骤摘要】
数据发送的方法及设备
本申请涉及通信
,尤其涉及数据发送的方法及设备。
技术介绍
目前,基于融合以太网的远程直接数据存取(RemoteDirectMemoryAccessoverConvergedEthernet,RoCE)协议被广泛应用于云计算中,采用RoCE协议,一方面,可以解决传统的传输控制协议/因特网互联协议(TransmissionControlProtocol/InternetProtocol,TCP/IP)协议收发数据时,网络延迟大、中央处理器(CentralProcessingUnit,CPU)负载高的问题,另一方面,可以兼容以太网协议,满足低投入、低运营成本的要求。云计算中的服务器中通常设置有多个虚拟机,同时,安装有支持RoCE协议的主机通道适配器(HostChannelAdapter,HCA),该HCA卡包括多个物理端口,针对每个物理端口,该物理端口可以抽象为一个支持以太网协议的以太网接口和一个支持远程直接数据存取(RemoteDirectMemoryAccess,RDMA)协议的RDMA接口,管理员可以在该以太网接口上配置该虚拟机对应的物理IP地址。在现有技术中,当不同服务器中的虚拟机需要进行数据通信时,需要在HCA卡上开启硬件虚拟化功能,例如SR-IOV。这样,虚拟机可以根据管理员配置的物理IP地址与对方建立连接,在对应的RDMA接口上建立队列对(QueuePairs,QP)并设置该QP队列的源地址为该自身的物理IP地址,目的地址为对方的物理IP地址。在后续数据传输过程中,HCA卡直接读取应用程序对应的内存中的数据,根据QP队列中源地址和目的地址对该数据进行封装,得到数据报文,并通过物理网络对该数据报文进行传输。可见,现有技术中,无法通过软件实现RoCE协议的网络虚拟化,即现有技术无法提供一种即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议的数据发送方法。
技术实现思路
本专利技术实施例提供了一种数据发送的方法及设备,可以实现虚拟网络数据隔离,并降低虚拟机的安全风险。该技术方案如下:第一方面,提供了一种数据发送的方法,所述方法应用于设备,所述设备包括第一虚拟机、主机和主机通道适配器HCA卡,其中,所述第一虚拟机包括虚拟RDMA网卡的端口,所述方法包括:所述第一虚拟机根据所述第一虚拟机的虚拟地址,确定所述第一虚拟机对应的RDMA网络的全局身份标识GID;所述第一虚拟机通过所述GID对应的第一端口,向所述主机发送队列对QP属性设置信息,所述第一端口为所述第一虚拟机的所述虚拟RDMA网卡的端口,所述QP属性设置信息包括第一指令和第二指令,所述第一指令用于指示所述主机将QP队列中的源地址设置为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述主机将所述QP队列中的目的地址设置为所述第二虚拟机的虚拟地址,所述QP队列为所述HCA卡对应的QP队列中,所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述主机将QP队列中的目的地址设置为所述第二虚拟机的物理地址;所述主机根据修改后的QP属性设置信息设置所述QP队列的属性,以使所述HCA卡基于设置后的所述QP队列向所述第二虚拟机发送数据。本专利技术实施例,当主机接收到第一虚拟机发送的QP属性设置信息,该QP属性设置信息包括第一指令和第二指令,第一指令用于指示所述主机将QP队列中的源地址设置为第一虚拟机的虚拟地址,第二指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡基于设置后的QP队列向第二虚拟机发送数据。基于本专利技术,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。在一种可能的实现方式中,所述将所述第二指令修改为第三指令,包括:所述主机根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;所述主机将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。在一种可能的实现方式中,所述第一虚拟机还包括虚拟以太网网卡的端口,所述方法还包括:所述第一虚拟机获取预设的所述虚拟RDMA网卡的标识和所述第一端口的标识;所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者对应关系,所述第二端口为所述第一虚拟机的所述虚拟以太网网卡的端口;所述第一虚拟机根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;所述第一虚拟机将所述第一端口的地址设置为所述第一GID。在一种可能的实现方式中,所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,包括:所述第一虚拟机向所述主机发送查询请求信息,所述查询请求中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;所述主机根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;所述主机向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。在一种可能的实现方式中,所述方法还包括:当所述第一虚拟机检测到携带有所述第二端口的标识的以太网地址变更信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新。在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡启动时,所述第一虚拟机获取所述第二端口标识对应的虚拟地址;所述第一虚拟机根据所述虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡关闭时,所述第一虚拟机删除所述第一端口的地址。第二方面,提供了一种设备,所述设备包括第一虚拟机、主机和主机通道适配器HCA卡,所述第一虚拟机包括虚拟以太网网卡和虚拟RDMA网卡,所述虚拟以太网网卡包括虚拟以太网端口,所述虚拟RDMA网卡包括虚拟RDMA端口虚拟RDMA网卡的端口;其中:所述第一虚拟机,用于当需要与第二虚拟机建立数据连接时,根据所述第一虚拟机的虚拟地址,确定所述第一虚拟机对应的RDMA网络的全局身份标识GID;所述第一虚拟机,还用于通过所述GID本文档来自技高网
...

【技术保护点】
1.一种数据发送的方法,其特征在于,所述方法应用于设备,所述设备包括第一虚拟机、主机和主机通道适配器HCA卡,其中,所述第一虚拟机包括虚拟远程直接数据存取RDMA网卡的端口,所述方法包括:所述第一虚拟机根据所述第一虚拟机的虚拟地址,确定所述第一虚拟机对应的RDMA网络的全局身份标识GID;所述第一虚拟机通过所述GID对应的第一端口,向所述主机发送队列对QP属性设置信息,所述第一端口为所述第一虚拟机的所述虚拟RDMA网卡的端口,所述QP属性设置信息包括第一指令和第二指令,所述第一指令用于指示所述主机将QP队列中的源地址设置为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述主机将所述QP队列中的目的地址设置为所述第二虚拟机的虚拟地址,所述QP队列为所述HCA卡对应的QP队列中,所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述主机将QP队列中的目的地址设置为所述第二虚拟机的物理地址;所述主机根据修改后的QP属性设置信息设置所述QP队列的属性,以使所述HCA卡基于设置后的所述QP队列向所述第二虚拟机发送数据。

【技术特征摘要】
1.一种数据发送的方法,其特征在于,所述方法应用于设备,所述设备包括第一虚拟机、主机和主机通道适配器HCA卡,其中,所述第一虚拟机包括虚拟远程直接数据存取RDMA网卡的端口,所述方法包括:所述第一虚拟机根据所述第一虚拟机的虚拟地址,确定所述第一虚拟机对应的RDMA网络的全局身份标识GID;所述第一虚拟机通过所述GID对应的第一端口,向所述主机发送队列对QP属性设置信息,所述第一端口为所述第一虚拟机的所述虚拟RDMA网卡的端口,所述QP属性设置信息包括第一指令和第二指令,所述第一指令用于指示所述主机将QP队列中的源地址设置为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述主机将所述QP队列中的目的地址设置为所述第二虚拟机的虚拟地址,所述QP队列为所述HCA卡对应的QP队列中,所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述主机将QP队列中的目的地址设置为所述第二虚拟机的物理地址;所述主机根据修改后的QP属性设置信息设置所述QP队列的属性,以使所述HCA卡基于设置后的所述QP队列向所述第二虚拟机发送数据。2.根据权利要求1所述的方法,其特征在于,所述将所述第二指令修改为第三指令,包括:所述主机根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;所述主机将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。3.根据权利要求1所述的方法,其特征在于,所述第一虚拟机还包括虚拟以太网网卡的端口,所述方法还包括:所述第一虚拟机获取预设的所述虚拟RDMA网卡的标识和所述第一端口的标识;所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者对应关系,所述第二端口为所述第一虚拟机的所述虚拟以太网网卡的端口;所述第一虚拟机根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;所述第一虚拟机将所述第一端口的地址设置为所述第一GID。4.根据权利要求3所述的方法,其特征在于,所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,包括:所述第一虚拟机向所述主机发送查询请求信息,所述查询请求中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;所述主机根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;所述主机向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述第一虚拟机检测到携带有所述第二端口的标识的以太网地址变更信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新。6.根据权利要求5所述的方法,其特征在于,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡启动时,所述第一虚拟机获取所述第二端口标识对应的虚拟地址;所述第一虚拟机根据所述虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。7.根据权利要求5所述的方法,其特征在于,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡关闭时,所述第一虚拟机删除所述第一端口的地址。8.一种设备,其特征在于,所述设备包括第一虚拟机、主机和主机通道适配...

【专利技术属性】
技术研发人员:付斌章苏金钊谭焜
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1