CN112398817B - 数据发送的方法及设备 - Google Patents

数据发送的方法及设备 Download PDF

Info

Publication number
CN112398817B
CN112398817B CN202011203280.8A CN202011203280A CN112398817B CN 112398817 B CN112398817 B CN 112398817B CN 202011203280 A CN202011203280 A CN 202011203280A CN 112398817 B CN112398817 B CN 112398817B
Authority
CN
China
Prior art keywords
virtual
port
virtual machine
address
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011203280.8A
Other languages
English (en)
Other versions
CN112398817A (zh
Inventor
付斌章
苏金钊
谭焜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011203280.8A priority Critical patent/CN112398817B/zh
Publication of CN112398817A publication Critical patent/CN112398817A/zh
Application granted granted Critical
Publication of CN112398817B publication Critical patent/CN112398817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

数据发送的方法及设备
技术领域
本申请涉及通信技术领域,尤其涉及数据发送的方法及设备。
背景技术
目前,基于融合以太网的远程直接数据存取(Remote Direct Memory Accessover Converged Ethernet,RoCE)协议被广泛应用于云计算中,采用RoCE协议,一方面,可以解决传统的传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议收发数据时,网络延迟大、中央处理器(CentralProcessing Unit,CPU)负载高的问题,另一方面,可以兼容以太网协议,满足低投入、低运营成本的要求。云计算中的服务器中通常设置有多个虚拟机,同时,安装有支持RoCE协议的主机通道适配器(Host Channel Adapter,HCA),该HCA卡包括多个物理端口,针对每个物理端口,该物理端口可以抽象为一个支持以太网协议的以太网接口和一个支持远程直接数据存取(Remote Direct Memory Access,RDMA)协议的RDMA接口,管理员可以在该以太网接口上配置该虚拟机对应的物理IP地址。
在现有技术中,当不同服务器中的虚拟机需要进行数据通信时,需要在HCA卡上开启硬件虚拟化功能,例如SR-IOV。这样,虚拟机可以根据管理员配置的物理IP地址与对方建立连接,在对应的RDMA接口上建立队列对(Queue Pairs,QP)并设置该QP队列的源地址为该自身的物理IP地址,目的地址为对方的物理IP地址。在后续数据传输过程中,HCA卡直接读取应用程序对应的内存中的数据,根据QP队列中源地址和目的地址对该数据进行封装,得到数据报文,并通过物理网络对该数据报文进行传输。
可见,现有技术中,无法通过软件实现RoCE协议的网络虚拟化,即现有技术无法提供一种即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议的数据发送方法。
发明内容
本发明实施例提供了一种数据发送的方法及设备,可以实现虚拟网络数据隔离,并降低虚拟机的安全风险。该技术方案如下:
第一方面,提供了一种数据发送的方法,所述方法应用的设备包括第一虚拟机和主机,所述方法包括:所述主机得到来自所述第一虚拟机的第一指令和第二指令,其中所述第一指令用于指示队列对QP队列的源地址为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述QP队列的目的地址为第二虚拟机的虚拟地址,所述QP队列为所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述QP队列中的目的地址为所述第二虚拟机的物理地址;所述主机根据所述第三指令设置所述QP队列,以便通过设置后的所述QP队列向所述第二虚拟机发送数据。
本发明实施例,当主机接收到第一虚拟机发送的第一指令和第二指令,第一指令用于指示所述主机将QP队列中的源地址设置为第一虚拟机的虚拟地址,第二指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后的指令设置QP队列的属性,以基于设置后的QP队列向第二虚拟机发送数据。基于本发明,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。
在一种可能的实现方式中,第一虚拟机通过第一端口向所述主机发送所述第一指令和第二指令,所述第一端口为所述第一虚拟机的虚拟远程直接存取RDMA网卡的端口,所述第一端口与所述第一虚拟机在RDMA网络中的全局身份标识GID对应。这个全局的GID可以唯一地标识第一虚拟机,从而能够使主机查到相关信息。
在一种可能的实现方式中,所述将所述第二指令修改为第三指令,包括:所述主机根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;所述主机将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。
在一种可能的实现方式中,所述第一虚拟机还包括虚拟以太网网卡的端口,所述方法还包括:所述第一虚拟机获取所述虚拟RDMA网卡的标识和所述第一端口的标识;所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识三者的对应关系,所述第二端口为所述第一虚拟机的虚拟以太网网卡的端口;所述第一虚拟机根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;所述第一虚拟机将所述第一端口的地址设置为所述第一GID。
在一种可能的实现方式中,所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,包括:所述第一虚拟机向所述主机发送查询请求信息,所述查询请求信息中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;所述主机根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;所述主机向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。
在一种可能的实现方式中,所述方法还包括:当所述第一虚拟机检测到携带有所述第二端口的标识的用于变更以太网地址的信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;所述第一虚拟机根据所述用于变更以太网地址的信息中携带的事件类型,对所述第一端口的地址进行更新。
在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡启动时,所述第一虚拟机获取所述第二端口标识对应的虚拟地址;所述第一虚拟机根据所述第二端口标识对应的虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。
在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:当所述事件类型为网卡关闭时,所述第一虚拟机删除所述第一端口的地址。
第二方面,提供了一种设备,所述设备包括包括主机,所述主机用于得到来自第一虚拟机的第一指令和第二指令,其中所述第一指令用于指示队列对QP队列的源地址为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述QP队列的目的地址为第二虚拟机的虚拟地址,所述QP队列为所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述QP队列中的目的地址为所述第二虚拟机的物理地址;所述主机根据所述第三指令设置所述QP队列,以便通过设置后的所述QP队列向所述第二虚拟机发送数据。
本发明实施例,当主机接收到第一虚拟机发送第一指令和第二指令,第一指令用于指示所述主机将QP队列中的源地址设置为第一虚拟机的虚拟地址,第二指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后第三指令设置QP队列的属性,以基于设置后的QP队列向第二虚拟机发送数据。基于本发明,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。
在一种可能的实现方式中,所述设备还包括第一虚拟机,所述第一虚拟机用于通过第一端口向所述主机发送所述第一指令和第二指令,所述第一端口为所述第一虚拟机的虚拟远程直接存取RDMA网卡的端口,所述第一端口与所述第一虚拟机在RDMA网络中的全局身份标识GID对应。
在一种可能的实现方式中,所述主机,具体用于:根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。
在一种可能的实现方式中,所述第一虚拟机还包括虚拟以太网网卡的端口,所述第一虚拟机,还用于:获取所述虚拟RDMA网卡的标识和所述第一端口的标识;根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识三者的对应关系,所述第二端口为所述第一虚拟机的虚拟以太网网卡的端口;根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;将所述第一端口的地址设置为所述第一GID。
在一种可能的实现方式中,所述第一虚拟机,所述第一虚拟机,具体用于:向所述主机发送查询请求信息,所述查询请求信息中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;所述主机,具体用于:根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。
在一种可能的实现方式中,所述第一虚拟机,还用于:所述第一虚拟机,还用于:当所述第一虚拟机检测到携带有所述第二端口的标识的用于变更以太网地址的信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;所述第一虚拟机根据所述用于变更以太网地址的信息中携带的事件类型,对所述第一端口的地址进行更新。
在一种可能的实现方式中,所述第一虚拟机,具体用于:当所述事件类型为网卡启动时,获取所述第二端口标识对应的虚拟地址;根据所述虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。
在一种可能的实现方式中,所述第一虚拟机,具体用于:当所述事件类型为网卡关闭时,删除所述第一端口的地址。
第三方面,提供了一种设备,所述设备包括:所述设备包括:存储器、处理电路和主机通道适配器HCA卡;其中,所述存储器,用于存储代码;所述处理电路,用于根据所述存储器中存储代码运行第一虚拟机和主机;所述处理电路,还用于通过所述第一虚拟机和主机实现第一方面所述的方法;所述HCA卡,用于向所述第二虚拟机发送数据。
第四方面,提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行第一方面所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
本发明实施例,当主机接收到第一虚拟机发送第一指令和第二指令,第一指令用于指示所述主机将QP队列中的源地址设置为第一虚拟机的虚拟地址,第二指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后的第三指令设置QP队列的属性,以使HCA卡基于设置后的QP队列向第二虚拟机发送数据。基于本发明,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。
附图说明
图1为本发明实施例提供的TCP/IP网络中数据传输的流程图;
图2为本发明实施例提供的RDMA网络中数据传输的流程图;
图3为本发明实施例提供的RoCE协议的架构图;
图4为本发明实施例提供的一种设备的结构示意图;
图5为本发明实施例提供的一种设备的结构示意图;
图6为本发明实施例提供的一种虚拟以太网网卡的端口和虚拟RDMA网卡的端口的关联方法的流程图;
图7为本发明提供的一种虚拟以太网网卡的端口和虚拟RDMA网卡的端口的关联方法的示例的流程图;
图8为本发明实施例提供的一种QP属性设置信息管理方法的流程图;
图9为本发明实施例提供的一种设备的结构示意图。
具体实施方式
图1为本发明实施例提供的TCP/IP网络中数据传输的流程图,如图1所示,在传统的TCP/IP网络中,首先,第一服务器需要将数据从应用程序的缓冲区拷贝到TCP/IP协议栈的缓冲区;然后,将数据按照TCP/IP协议封装成数据包,并将数据包拷贝到网卡驱动的缓冲区;最后,通过网卡将数据包传输至第二服务器。相应的,在传统的TCP/IP网络中,首先,第二服务器将网卡驱动的缓冲区中的数据包拷贝到TCP/IP协议栈的缓冲区,然后,将数据包按照TCP/IP协议进行解封装,得到数据,最后,将数据从TCP/IP协议栈的缓冲区拷贝到应用程序的缓冲区。
这样,将导致两方面的问题,一方面,数据拷贝的次数较多,导致通信延迟较大。另一方面,协议栈对数据进行封装和解封装处理均需要中央处理器(Central ProcessingUnit,CPU)来进行操作,导致CPU的负载较高。例如,在搜索应用程序中,每一次查询均会产生若干个对后端服务器的查询请求,并且这些查询请求都有截止时间要求。所以只有在截止时间之前返回给搜索应用程序的查询响应,其结果才会被考虑,而超过截止时间的查询响应,均会被搜索应用程序丢弃。因此,当TCP/IP网络中的延迟较大时,被丢弃的查询响应的比例将显著增加。一方面,将导致搜索应用程序的搜索质量下降;另一方面,大量的无效查询响应在TCP/IP网络中传输进一步增加网络延迟。又例如,CPU负载较高将会导致服务器可以提供的计算能力降低。在云计算中,CPU是核心调度资源,CPU负载较高将直接导致可以服务的租户数量的下降,从而降低整体***的盈利能力。
为了解决TCP/IP网络中延迟较大,CPU负载较高的问题,RDMA协议应用而生,RDMA协议相对于TCP/IP协议,具有延迟低和CPU负载小的优势。图2为本发明实施例提供的RDMA网络中数据传输的流程图,如图2所示,在RDMA网络中,首先,应用程序在进行数据传输前在服务器的操作***中注册内存,并将注册内存的地址发送给服务器的HCA卡,然后,服务器的HCA卡可以直接读写应用程序的注册内存。这样,数据的发送和接收不再需要在缓冲区之间进行多次拷贝,延迟可以大幅缩减。同时,HCA卡还实现了RDMA协议栈的功能,即由HCA卡来完成数据包的封装和解封装处理。这样,释放了CPU资源,降低了CPU的负载,服务器可以有更多的CPU资源分配给租户使用。
RDMA协议是基于无限带宽(Infiniband,IB)网络架构实现的。然而,在云计算场景下,TCP/IP协议仍然是最主要的网络协议。因此,为了兼容TCP/IP协议,业界提出了RoCE协议。目前,RoCE技术主要包括两个版本RoCEv1和RoCEv2。图3为本发明实施例提供的RoCE协议的架构图,如图3所示,RoCEv1版本中TCP/IP协议的链路层协议替换了IB协议的链路层协议。RoCEv2版本中,TCP/IP协议的网络层协议和传输层协议中用户数据报协议(UserDatagram Protocol,UDP)的替换了IB协议的网络层协议。具体的,TCP/IP协议的网络层协议用于路由学习和传输,TCP/IP协议的UDP协议则可以用于等价路由(Equal-CostMultipathRouting,ECMP)。目前,云计算网络中通常采用RoCEv2版本。
现有技术中,当不同服务器中的虚拟机需要进行数据通信时,需要在HCA卡上开启硬件虚拟化功能,例如SR-IOV。这样,虚拟机可以根据管理员配置的物理IP地址与对方建立连接,在对应的RDMA接口上建立队列对(Queue Pairs,QP)并设置该QP队列的源地址为该自身的物理IP地址,目的地址为对方的物理IP地址。在后续数据传输过程中,HCA卡直接读取应用程序对应的注册内存中的数据,根据QP队列中源地址和目的地址对该数据进行封装,得到数据报文,并通过物理网络对该数据报文进行传输。
在传统TCP/IP协议中,管理员为了实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,通常会在虚拟机中设置虚拟IP地址。然而,基于现有技术,虚拟机设置虚拟IP地址后,该虚拟机在与对端虚拟机建立连接时,该虚拟机会将QP队列中的源地址设置为该虚拟机的虚拟IP地址,目的地址设置为对端虚拟机的虚拟IP地址,后续HCA卡根据该QP队列对该虚拟机的数据进行封装时,该数据报文的源地址为该虚拟机的虚拟IP地址,目的地址为对端虚拟机的虚拟IP地址。由于,在物理网络的网络设备中没有虚拟IP地址的相关路由表项,所以无法对该数据报文进行传输。
本发明实施例提供了一种在云计算场景中数据发送的方法,该方法应用于设备。在该场景中,如图4所示,该设备中可以设置有虚拟机410、主机420以及支持RoCE或其他类似协议的HCA卡430,其中,虚拟机410与主机420和HCA卡430相连,主机420与HCA卡430相连,主机420可以是具有管理功能虚拟机或者虚拟机监控器(Virtual Machine Monitor,VMM)或Hypervisor等多种实现方式,本发明不做限定。具体的,如图5所示,虚拟机410包括虚拟以太网网卡411、虚拟RDMA网卡412、虚拟以太网管理模块413和虚拟RDMA管理模块414。该主机420包括虚拟RDMA控制模块421,还可以包括虚拟以太网控制模块422和控制器423。
其中,HCA卡430包括多个物理端口,管理员可以对HCA卡430进行虚拟化,针对HCA卡430上的每个物理端口,管理员可以将该物理端口虚拟化为一组或多组虚拟RoCE网卡,每组虚拟RoCE网卡可以包括一个虚拟以太网网卡411和一个虚拟RDMA网卡412。本发明以一个端口虚拟化为一组虚拟RoCE网卡为例进行介绍,其他情况与之类似。其中,虚拟以太网网卡411包括多个虚拟以太网网卡的端口,虚拟RDMA网卡412包括多个虚拟RDMA网卡的端口。
虚拟机410分别与虚拟以太网网卡411和虚拟RDMA网卡412相连,虚拟以太网网卡411通过虚拟以太网控制模块422与对应的HCA卡430的端口相连,虚拟RDMA网卡412通过虚拟RDMA控制模块421与对应的HCA卡430的端口相连,同时,虚拟RDMA控制模块421与控制器423相连。
虚拟RDMA管理模块414,用于注册和管理虚拟RDMA网卡412,虚拟以太网管理模块413用于注册和管理虚拟以太网网卡411,虚拟以太网控制模块422,用于对虚拟机410发送的以太网协议报文进行控制,虚拟RDMA控制模块421,用于对虚拟机410发送的QP属性设置信息进行控制,控制器423,用于存储虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者的对应关系,以及对端虚拟机的虚拟地址和物理地址的对应关系。虚拟机的虚拟地址可以是虚拟IP地址,也可以是虚拟媒体访问控制(MediaAccess Control,MAC)地址,同理,物理地址可以是物理IP地址,也可以是物理MAC地址,本发明虚拟IP地址和物理IP地址为例进行介绍,其他情况与之类似。
现有技术中,从操作***的角度来看,一个HCA网卡为一个HCA设备,一个HCA设备包括一个以太网设备和一个RDMA设备。对于一个HCA设备,HCA驱动程序首先在操作***中创建一个基础设备。并在该基础设备上抽象出一个以太网设备和一个RDMA设备。在RDMA通信过程中,以太网设备上设置有IP地址,用于建立连接,RDMA设备用于数据的读写操作。由于应用程序在进行RDMA操作时只指定了IP地址,所以操作***必须提供一种通过IP地址确定RDMA设备的方法。
在HCA卡中,由于以太网设备和RDMA设备均挂载在相同的基础设备下,所以HCA驱动可以根据以太网设备的IP地址和预先存储的GID生成算法,自动确定出RDMA设备对应的GID,并将RDMA设备的地址设置为该GID。同时,当以太网设备的IP地址发生变化时,HCA驱动可以根据以太网设备的IP地址自动更新RDMA设备的GID。这样,应用程序可以根据自身的IP地址和预先存储的GID生成算法,确定对应的RDMA设备,从而实现数据的传输。然而,对于虚拟以太网网卡和虚拟RDMA网卡,二者在操作***中均为独立的设备,没有任何关联。因此,为了便于说明,本发明实施例首先对虚拟机对应的提供了一种虚拟以太网网卡的端口和虚拟RDMA网卡的端口的关联方法进行介绍,如图5、图6所示,具体步骤可以如下:
步骤601,第一虚拟机410获取预设的虚拟RDMA网卡412的标识和第一端口的标识。
在实施中,管理员可以将虚拟RDMA网卡412的标识预先存储在虚拟机的虚拟RDMA管理模块414中,以便通过虚拟RDMA管理模块414对虚拟RDMA网卡412进行管理。当虚拟RDMA管理模块414检测到某虚拟RDMA网卡412启动后,虚拟RDMA管理模块414可以获取预先存储的该虚拟RDMA网卡412的标识,然后向RDMA网卡驱动模块(比如ib-core模块)发送注册报文,该注册报文中携带有该虚拟RDMA网卡412的标识,从而对该虚拟RDMA网卡412进行注册。同时,该注册报文中还可以携带有链路层类型,该链路层类型可以为RDMA,RDMA网卡驱动模块接收到该注册报文后,会停止对该虚拟RDMA网卡412上各虚拟RDMA网卡的端口的GID的管理。例如,虚拟RDMA管理模块414调用ib_register_device()接口,向ib_core模块注册该虚拟RDMA网卡412。其中,虚拟RDMA管理模块414将ib_register_device()接口中的参数link layer type指定为“IB”的方式使得ib_core停止对该虚拟RDMA网卡412的第一端口的gib_cache的管理。
虚拟RDMA管理模块414在完成该虚拟RDMA网卡412的注册后,虚拟RDMA管理模块414可以在总线中进行扫描,查询该虚拟RDMA网卡412上的第一端口的标识,其中,第一端口的标识可以为第一端口的端口号。
步骤602,第一虚拟机410根据虚拟RDMA网卡412的标识、第一端口的标识和主机420中预先存储的第二映射表,确定对应的第二端口的标识。
其中,第二映射表包括虚拟RDMA网卡412的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者对应关系,所述第二端口为所述第一虚拟机的所述虚拟以太网网卡的端口。
在实施中,主机420中可以设置有虚拟RDMA控制模块421,该虚拟RDMA控制模块421中可以预先存储有第二映射表。该第二映射表可以由管理员预先设置,当管理员将HCA的物理端口虚拟化为虚拟以太网网卡411和虚拟RDMA网卡412时,管理员可以将该虚拟RDMA网卡412的标识、该虚拟RDMA网卡412上各虚拟RDMA网卡的端口的标识、以及对应的各虚拟以太网网卡的端口的标识的三者对应关系存储在该第二映射表中。其中,该虚拟以太网网卡的端口的标识可以为虚拟以太网网卡的端口的媒体访问控制(Media Access Control,MAC)地址。
虚拟RDMA管理模块414在获取虚拟RDMA网卡412的标识和第一端口的标识后,可以通过虚拟RDMA控制模块421查询该第一端口对应的第二端口的标识。具体步骤可以如下:
步骤一,第一虚拟机410向主机420发送查询请求信息。
其中,查询请求中可以携带有虚拟RDMA网卡412的标识和第一端口的标识。
步骤二,主机420根据查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识。
在实施中,虚拟RDMA控制模块421接收到该查询请求信息后,对该查询请求信息进行解析,得到该查询请求信息中携带的虚拟RDMA网卡412的标识和第一端口的标识,然后根据虚拟RDMA网卡412的标识和第一端口的标识,在第二映射表中查询对应的第二端口的标识(即第一端口对应的第二端口的标识)。
步骤三,主机420向第一虚拟机410发送查询响应信息。
在实施中,虚拟RDMA控制模块421在查询到该第一端口对应的第二端口的标识后,可以将向虚拟RDMA管理模块414发送查询响应信息,该查询响应信息中携带有该第二端口的标识。
需要说明的是,为了提高查询效率,管理员可以只在虚拟RDMA控制模块421中缓存已经查询过的第二映射表的表项,将完整的第二映射表存储在主机420的控制器423中。虚拟RDMA控制模块421接收到虚拟RDMA管理模块414发送的查询请求信息(为了便于区分,以下称为第一查询请求信息),得到虚拟RDMA网卡412的标识和第一端口的标识,然后先在本地查询是否存在该第一端口对应的第二端口的标识。如果是,则向该虚拟RDMA管理模块414发送查询响应信息,该查询响应信息中携带有该第二端口的标识的(为了便于区分,以下称为第一查询响应信息);否则,虚拟RDMA控制模块421向控制器423发送查询请求信息(为了便于区分,以下称为第二查询请求信息)。控制器423接收到该虚拟RDMA控制模块421发送的第二查询请求信息,得到虚拟RDMA网卡412的标识和第一端口的标识,然后查询预先存储的第二映射表中是否存在该第一端口对应的第二端口的标识,如果是,则将向虚拟RDMA控制模块421发送查询响应信息,该查询响应信息中携带有该第二端口的标识(为了便于区分,以下称为第二查询响应信息);否则,向虚拟RDMA控制模块421返回查询失败信息。当虚拟RDMA控制模块421接收到该第二查询响应信息时,得到该第二端口的标识,并向虚拟RDMA管理模块414发送第一查询响应信息。同时,虚拟RDMA管理模块414将该虚拟RDMA网卡412的标识、该第一端口的标识和第二端口的标识的三者对应关系存储在本地,以便后续提供快速查询。当虚拟RDMA控制模块421接收到查询失败信息时,向虚拟RDMA管理模块414返回查询失败信息,该虚拟RDMA管理模块414接收到该查询失败信息后,可以通过显示器或者短信等方式通知管理员,以便管理员及时对错误进行修改。
步骤603,第一虚拟机410根据预设的GID生成算法和第二端口的标识对应的虚拟IP地址,确定第一端口的第一GID。
在实施中,虚拟RDMA管理模块414中预先存储有GID生成算法。该GID生成算法可以采用行业标准的GID转换方法。例如,GID的地址长度为128位,如果将IPv4地址转换为GID,由于IPv4的地址长度为32位,因此,可以将IPv4地址作为GID的低32位,GID的高96位全部补0;如果将IPv6地址转换为GID,由于IPv6的地址长度为128位,因此,可以直接将IPv6地址作为GID。
虚拟RDMA管理模块414接收到查询响应信息后,对该查询响应信息进行解析,得到该第一端口对应的第二端口的标识。虚拟RDMA管理模块414可以根据该第二端口的标识在总线中进行扫描,查询对应的虚拟以太网网卡的端口以及该虚拟以太网网卡的端口上预先配置的虚拟IP地址,并基于该虚拟IP地址和预先存储的GID生成算法,得到该第一端口对应的第一GID。
步骤604,第一虚拟机410将第一端口的地址设置为第一GID。
在实施中,虚拟RDMA管理模块414确定该第一端口的第一GID后,可以将该第一端口的地址设置为该第一GID。
本发明实施例中,当管理员修改第二端口的虚拟IP地址时,虚拟RDMA管理模块414还可以对该第一端口的GID进行相应的配置,具体步骤可以如下:
步骤一,当第一虚拟机410检测到携带有第二端口的标识的以太网地址变更信息时,根据第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡412的标识和第一端口的标识。
其中,第三映射表包括虚拟以太网网卡411的端口的标识、虚拟RDMA网卡412的标识和虚拟RDMA网卡412的端口的标识的三者对应关系。
在实施中,虚拟RDMA管理模块414中可以存储有第三映射表,该第三映射表由虚拟RDMA管理模块414进行设置。虚拟RDMA管理模块414接收到虚拟RDMA控制模块421发送的查询响应信息,对该查询响应信息进行解析,得到第二端口的标识,该虚拟RDMA管理模块414可以将该虚拟RDMA网卡412的标识、该第一端口的标识和第二端口的标识的三者对应关系存储在第三映射表中。
为了对第二端口的IP地址变更进行实时的监控,虚拟RDMA管理模块414可以向虚拟机的操作***注册以太网地址变更事件,以使管理员在修改该第二端口上的虚拟IP地址时,虚拟RDMA管理模块414可以对该第一端口的GID进行相应的配置。例如,虚拟RDMA管理模块414调用register_inetaddr_notifier()接口在操作***中注册对以太网地址变更事件的回调函数。
当虚拟机的操作***检测到对应某虚拟IP地址的管理指令时,会触发该以太网地址变更事件,其中,管理指令可以为删除指令或者配置指令等。
当操作***检测到管理员删除第二端口的虚拟IP地址的删除指令时,操作***可以确定该以太网地址变更事件的类型为网卡关闭。当操作***检测到管理员配置虚拟以太网网卡的端口的虚拟IP地址的配置指令时,操作***可以确定该以太网地址变更事件的类型为网卡启动。操作***可以向虚拟RDMA管理模块414发送以太网地址变更事件信息,以太网地址变更事件信息中携带有确定出的以太网地址变更事件的类型的标识。
操作***会向虚拟RDMA管理模块414发送以太网地址变更信息,该以太网地址变更信息中携带有该虚拟以太网网卡的端口的标识以及以太网地址变更事件的类型。
虚拟RDMA管理模块414接收到以太网地址变更信息,对该以太网地址变更信息进行解析,得到该虚拟以太网网卡的端口的标识,然后在第三映射表中查询是否存在该虚拟以太网网卡的端口的标识对应的虚拟RDMA网卡412的标识和虚拟RDMA网卡的端口的标识。如果是,则执行步骤二,否则,不执行其他处理。
步骤二,第一虚拟机410根据以太网地址变更信息中携带的事件类型,对第一端口的GID进行配置。
在实施中,虚拟RDMA管理模块414得到该以太网地址变更信息中携带的事件类型后,可以根据该事件类型对第一端口的GID进行相应的更新。
可选的,虚拟RDMA管理模块414根据以太网地址变更事件的类型,对第一端口的GID进行配置更新的具体分为如下两种情况处理过程为:
第一种情况:当事件类型为网卡关闭时,第一虚拟机410删除第一端口的地址。
第二种情况:当事件类型为网卡启动时,第一虚拟机410获取第二端口标识对应的虚拟IP地址,第一虚拟机410根据虚拟IP地址和预设的GID生成算法,确定第一端口的第二GID,并将第一端口地址设置为第二GID。
在实施中,虚拟RDMA管理模块414接收到以太网地址变更事件信息后,得到事件类型的标识,如果该标识用于指示网卡关闭,则删除该虚拟以太网网卡的端口对应的第一端口的地址。
如果该标识用于指示网卡启动,虚拟RDMA管理模块414可以根据该第二端口的标识在总线中,查询该第二端口上配置的虚拟IP地址,然后根据该虚拟IP地址和预先存储的GID生成算法,确定该虚拟以太网网卡的端口对应的该第一端口的第二GID。虚拟RDMA管理模块414确定该第一端口的第二GID后,可以将该第一端口的地址设置为第二GID。
本发明还提供了一种虚拟以太网网卡的端口和虚拟RDMA网卡的端口的关联方法的示例,如图5、图7所示,具体处理过程如下:
步骤701,当虚拟RDMA网卡412启动后,虚拟RDMA管理模块414向RDMA网卡驱动模块发送注册报文,对该虚拟RDMA网卡412进行注册,该注册报文中携带有该虚拟RDMA网卡412的标识。
步骤702,RDMA网卡驱动模块对该虚拟RDMA网卡412进行注册,并停止对该虚拟RDMA网卡412上各虚拟RDMA网卡的端口的GID的管理。
步骤703,虚拟RDMA管理模块414获取该虚拟RDMA网卡412的标识和第一端口的标识。
步骤704,虚拟RDMA管理模块414向虚拟RDMA控制模块421发送查询请求信息,该查询请求信息中携带有虚拟RDMA网卡412的标识和第一端口的标识。
步骤705,虚拟RDMA控制模块421向虚拟RDMA管理模块414返回查询响应信息,该查询响应信息中携带有该第二端口的标识。
步骤706,虚拟RDMA管理模块414查询第二端口是否配置有虚拟IP地址,如果是,则执行步骤707-708,否则,执行步骤709。
步骤707,虚拟RDMA管理模块414根据预设的GID生成算法和第二端口的标识对应的虚拟IP地址,确定第一端口的第一GID。
步骤708,虚拟RDMA管理模块414将第一端口的地址设置为第一GID。
步骤709,虚拟RDMA管理模块414向操作***注册以太网地址变更事件。
步骤710,当虚拟RDMA管理模块414检测到以太网地址变更信息时,根据第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡412的标识和第一端口的标识。
步骤711,虚拟RDMA管理模块414获取该以太网地址变更信息中携带的事件类型,如果该事件类型为网卡启动,则执行步骤712-713,如果该事件类型为网卡关闭,则执行步骤714。
步骤712,虚拟RDMA管理模块414获取第二端口标识对应的虚拟IP地址,根据虚拟IP地址和预设的GID生成算法,确定第一端口的第二GID。
步骤713,虚拟RDMA管理模块414将第一端口地址设置为第二GID。
步骤714,虚拟RDMA管理模块414删除第一端口的地址。
步骤701至步骤714的具体处理过程可参考步骤601至步骤604,本发明不再赘述。
本发明实施例中,当虚拟RDMA管理模块414确定虚拟RDMA网卡412的第一端口的GID后,虚拟RDMA控制模块421可以对虚拟机发送的QP属性设置信息进行管理,如图5、图8所示,步骤可以如下:
步骤801,第一虚拟机410根据第一虚拟机410的虚拟地址,确定第一虚拟机410对应的RDMA网络的全局身份标识GID。
在实施中,当第一虚拟机410中的某应用程序需要与第二虚拟机中的某应用程序进行数据传输时,第一虚拟机410中的该应用程序可以根据本地的虚拟IP地址和预先存储的GID生成算法,确定对应的第一端口的GID。
步骤802,第一虚拟机410通过GID对应的第一端口,向主机420发送QP属性设置信息,所述第一端口为所述第一虚拟机的所述虚拟RDMA网卡的端口,QP属性设置信息包括第一指令和第二指令,第一指令用于指示主机420将QP队列中的源地址设置为第一虚拟机410的虚拟地址,第二指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的虚拟地址,该QP队列为HCA卡对应的QP队列中,第一虚拟机与第二虚拟机通信所使用的QP队列。
在实施中,第一虚拟机410中的该应用程序可以通过该GID对应的第一端口,向虚拟RDMA控制模块421发送QP属性设置信息。其中,QP属性设置信息包括第一指令和第二指令,其中,第一指令可以用于指示将源地址设置为第一虚拟机410的虚拟IP地址,第二指令可以用于指示将目的地址设置为第二虚拟机的虚拟IP地址。该第二虚拟机的虚拟IP地址可以由管理员预先在第一虚拟机410的应用程序中设置。例如,第一虚拟机410通过ib_modify_qp(qp_attr)接口向主机420发送QP属性设置信息,其中qp_attr指定源地址为第一虚拟机410的虚拟IP地址,目的地址为第二虚拟机的虚拟IP地址。
步骤803,主机420删除第一指令,将第二指令修改为第三指令,第三指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的物理地址。
在实施中,如果QP队列的属性中,源地址为第一虚拟机410的虚拟IP地址、目的地址为第二虚拟机的虚拟IP地址,则后续HCA卡430对第一虚拟机410的应用程序向第二虚拟机的应用程序发送的数据进行协议封装时,均以第一虚拟机410的虚拟IP地址为源地址、以第二虚拟机的虚拟IP地址为目的地址,然后通过第一虚拟机410和第二虚拟机之间的物理网络进行传输。由于该物理网络中没有第一虚拟机410和第二虚拟机对应的虚拟IP地址的路由条目,只有第一虚拟机410和第二虚拟机对应的物理IP地址的路由条目,因此,虚拟RDMA控制模块421在接收到QP属性设置信息后,需要删除第一指令,同时,将第二指令中的第二虚拟机对应的虚拟IP地址修改为第二虚拟机对应的物理IP地址,得到第三指令。该第三指令用于指示将目的地址设置为第二虚拟机的物理IP地址。
可选的,将第二指令修改为第三指令,步骤可以如下:
步骤一,主机420根据预先存储的第一映射表和第二指令中的第二虚拟机的虚拟IP地址,确定第二虚拟机的物理IP地址。
其中,第一映射表包括虚拟IP地址和物理IP地址的对应关系。
在实施中,虚拟RDMA控制模块421中可以预先存储有第一映射表,该第一映射表可以由管理员预先设置。
虚拟RDMA控制模块421接收到QP属性设置信息后,对该QP属性设置信息进行解析,得到该第二指令中的第二虚拟机的虚拟IP地址,然后在第一映射表中查询该第二虚拟机的虚拟IP地址对应的物理IP地址。
需要说明的是,为了提高查询效率,管理员可以只在虚拟RDMA控制模块421中缓存已经查询过的第一映射表的表项,将完整的第一映射表存储在主机420的控制器423中。虚拟RDMA控制模块421接收到QP属性设置信息,得到该第二指令中的第二虚拟机的虚拟IP地址,然后先在本地查询是否存在该第二虚拟机的虚拟IP地址对应的物理IP地址。如果是,则执行步骤二;否则,虚拟RDMA控制模块421向控制器423发送地址查询请求信息,该地址查询请求信息中携带有该第二虚拟机的虚拟IP地址。控制器423接收到虚拟RDMA控制模块421发送的地址查询请求信息,得到该第二虚拟机的虚拟IP地址,然后控制器423查询预先存储的第一映射表中是否存在该第二虚拟机的虚拟IP地址对应的物理IP地址,如果是,则向虚拟RDMA控制模块421发送地址查询响应信息,该地址查询响应信息中携带有该物理IP地址;否则,向虚拟RDMA控制模块421返回地址查询失败信息。当虚拟RDMA控制模块421接收到该地址查询响应信息时,得到该物理IP地址,然后执行步骤二,同时将该第二虚拟机的虚拟IP地址和该物理IP地址的对应关系存储在本地,以便后续提供快速查询。当虚拟RDMA控制模块421接收到该地址查询失败信息时,可以通过显示器或者短信等方式通知管理员,以便管理员及时对错误进行修改。
步骤二,主机420将第二指令中的第二虚拟机的虚拟IP地址修改为第二虚拟机的物理IP地址,得到第三指令。
在实施中,虚拟RDMA控制模块421确定该第二虚拟机的虚拟IP地址对应的物理IP地址后,可以将第二指令中的第二虚拟机的虚拟IP地址删除,然后将该第二指令中的目的地址设置为第二虚拟机的物理IP地址,得到第三指令。
步骤804,主机420根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡430基于设置后的QP队列向第二虚拟机发送数据。
在实施中,虚拟RDMA控制模块421根据修改后的QP属性设置信息,将QP队列中的目的地址设置为第二虚拟机的物理IP地址。同时,虚拟RDMA控制模块421在总线中进行扫描,查询对应的以太网接口上配置的物理IP地址,然后将源地址设置为该以太网接口的物理IP地址。后续,当第一虚拟机410中该应用程序向第二虚拟机中该应用程序发送数据时,该RDMA接口可以从该第一虚拟机410的应用程序对应的内存中读取数据,以以太网接口的物理IP地址作为源地址、第二虚拟机的物理IP地址作为目的地址对该数据进行封装,得到数据报文,然后将该数据报文通过第一虚拟机410和第二虚拟机之间的物理网络发送至第二虚拟机的对应的HCA卡430的端口上。
本发明实施例,当主机420接收到第一虚拟机410发送的QP属性设置信息,该QP属性设置信息包括第一指令和第二指令,第一指令用于指示主机420将QP队列中的源地址设置为第一虚拟机410的虚拟地址,第二指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机420删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡430基于设置后的QP队列向第二虚拟机发送数据。基于本发明,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。
基于相同的技术构思,本发明实施例还提供了一种设备,如图5所示,设备包括第一虚拟机410、主机420和主机通道适配器HCA卡430,第一虚拟机410包括虚拟以太网网卡411和虚拟RDMA网卡412,虚拟以太网网卡411包括虚拟以太网网卡的端口,虚拟RDMA网卡412包括虚拟RDMA网卡的端口;其中:第一虚拟机410,用于当需要与第二虚拟机建立数据连接时,根据第一虚拟机410的虚拟因特网互联协议地址,确定第一虚拟机410对应的RDMA网络的全局身份标识GID;第一虚拟机410,还用于通过GID对应的第一端口,向主机420发送QP属性设置信息,QP属性设置信息包括第一指令和第二指令,第一指令用于指示主机420将QP队列中的源地址设置为第一虚拟机410的虚拟地址,第二指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的虚拟地址;主机420,用于删除第一指令,将第二指令修改为第三指令,第三指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的物理地址;主机420,用于根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡430基于设置后的QP队列向第二虚拟机发送数据。
在一种可能的实现方式中,主机420,具体用于:根据预先存储的第一映射表和第二指令中的第二虚拟机的虚拟地址,确定第二虚拟机的物理地址,第一映射表包括虚拟地址和物理地址的对应关系;将第二指令中的第二虚拟机的虚拟地址修改为第二虚拟机的物理地址,以得到第三指令。
在一种可能的实现方式中,第一虚拟机410,还用于:获取预设的虚拟RDMA网卡412的标识和第一端口的标识;根据虚拟RDMA网卡412的标识、第一端口的标识和主机420中预先存储的第二映射表,确定对应的第二端口的标识,第二映射表包括虚拟RDMA网卡412的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者对应关系;根据预设的GID生成算法和第二端口的标识对应的虚拟地址,确定第一端口的第一GID;
将第一端口的地址设置为第一GID。
在一种可能的实现方式中,第一虚拟机410,具体用于:向主机420发送查询请求信息,查询请求中携带有虚拟RDMA网卡412的标识和第一端口的标识;主机420,具体用于:根据查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;向第一虚拟机410发送查询响应信息,查询响应信息中携带有第二端口的标识。
在一种可能的实现方式中,第一虚拟机410,还用于:当检测到携带有第二端口的标识的以太网地址变更信息时,根据第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡412的标识和第一端口的标识,第三映射表包括虚拟以太网网卡411的端口的标识、虚拟RDMA网卡412的标识和虚拟RDMA网卡412的端口的标识的三者对应关系;根据以太网地址变更信息中携带的事件类型,对第一端口的地址进行更新。
在一种可能的实现方式中,第一虚拟机410,具体用于:当事件类型为网卡启动时,获取第二端口标识对应的虚拟地址;根据虚拟地址和预设的GID生成算法,确定第一端口的第二GID,并将第一端口的地址设置为第二GID。
在一种可能的实现方式中,第一虚拟机410,具体用于:当事件类型为网卡关闭时,删除第一端口的地址。
本发明实施例,当主机420接收到第一虚拟机410发送的QP属性设置信息,该QP属性设置信息包括第一指令和第二指令,第一指令用于指示主机420将QP队列中的源地址设置为第一虚拟机410的虚拟地址,第二指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的虚拟地址,主机420删除第一指令,将第二指令修改为第三指令,该第三指令用于指示主机420将QP队列中的目的地址设置为第二虚拟机的物理地址;然后根据修改后的QP属性设置信息设置QP队列的属性,以使HCA卡430基于设置后的QP队列向第二虚拟机发送数据。基于本发明,即可以实现虚拟机的虚拟网络与物理网络隔离,保证虚拟机的安全,又可以兼容RoCE协议。
基于相同的技术构思,本发明实施例还提供了一种设备,如图9所示,所述设备900包括:存储器910、处理电路920和主机通道适配器HCA卡930。该设备900可以执行本申请记载的上述任一种方法,以及,上述的任一种方法中涉及的***架构,名词解释,有益效果等,请参见相关段落,此处不再赘述。
其中,所述存储器910,用于存储代码。
所述处理电路920,用于根据所述存储器910中存储代码运行第一虚拟机和主机。
所述HCA卡930,用于向所述第二虚拟机发送数据。
所述处理电路920,还用于通过所述第一虚拟机和主机实现以下方法:
所述第一虚拟机包括虚拟远程直接数据存取RDMA网卡的端口,所述方法包括:
所述第一虚拟机根据所述第一虚拟机的虚拟地址,确定所述第一虚拟机对应的RDMA网络的全局身份标识GID;
所述第一虚拟机通过所述GID对应的第一端口,向所述主机发送队列对QP属性设置信息,所述第一端口为所述第一虚拟机的所述虚拟RDMA网卡的端口,所述QP属性设置信息包括第一指令和第二指令,所述第一指令用于指示所述主机将QP队列中的源地址设置为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述主机将所述QP队列中的目的地址设置为所述第二虚拟机的虚拟地址,所述QP队列为所述HCA卡对应的QP队列中,所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;
所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述主机将QP队列中的目的地址设置为所述第二虚拟机的物理地址;
所述主机根据修改后的QP属性设置信息设置所述QP队列的属性,以使所述HCA卡基于设置后的所述QP队列向所述第二虚拟机发送数据。
在一种可能的实现方式中,所述将所述第二指令修改为第三指令,包括:
所述主机根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;
所述主机将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。
在一种可能的实现方式中,所述第一虚拟机还包括虚拟以太网网卡的端口,所述方法还包括:
所述第一虚拟机获取预设的所述虚拟RDMA网卡的标识和所述第一端口的标识;
所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识的三者对应关系,所述第二端口为所述第一虚拟机的所述虚拟以太网网卡的端口;
所述第一虚拟机根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;
所述第一虚拟机将所述第一端口的地址设置为所述第一GID。
在一种可能的实现方式中,所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,包括:
所述第一虚拟机向所述主机发送查询请求信息,所述查询请求中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;
所述主机根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;
所述主机向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。
在一种可能的实现方式中,所述方法还包括:
当所述第一虚拟机检测到携带有所述第二端口的标识的以太网地址变更信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;
所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新。
在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:
当所述事件类型为网卡启动时,所述第一虚拟机获取所述第二端口标识对应的虚拟地址;
所述第一虚拟机根据所述虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。
在一种可能的实现方式中,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:
当所述事件类型为网卡关闭时,所述第一虚拟机删除所述第一端口的地址。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种数据发送的方法,其特征在于,所述方法应用的设备包括第一虚拟机和主机,所述方法包括:
所述主机得到来自所述第一虚拟机的第一指令和第二指令,其中所述第一指令用于指示队列对QP队列的源地址为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述QP队列的目的地址为第二虚拟机的虚拟地址,所述QP队列为所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;
所述主机删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述QP队列中的目的地址为所述第二虚拟机的物理地址;
所述主机根据所述第三指令设置所述QP队列,以便通过设置后的所述QP队列向所述第二虚拟机发送数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一虚拟机通过第一端口向所述主机发送所述第一指令和第二指令,所述第一端口为所述第一虚拟机的虚拟远程直接存取RDMA网卡的端口,所述第一端口与所述第一虚拟机在RDMA网络中的全局身份标识GID对应。
3.根据权利要求1所述的方法,其特征在于,所述将所述第二指令修改为第三指令,包括:
所述主机根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;
所述主机将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。
4.根据权利要求2所述的方法,其特征在于,所述第一虚拟机还包括虚拟以太网网卡的端口,所述方法还包括:
所述第一虚拟机获取所述虚拟RDMA网卡的标识和所述第一端口的标识;
所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识三者的对应关系,所述第二端口为所述第一虚拟机的虚拟以太网网卡的端口;
所述第一虚拟机根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;
所述第一虚拟机将所述第一端口的地址设置为所述第一GID。
5.根据权利要求4所述的方法,其特征在于,所述第一虚拟机根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,包括:
所述第一虚拟机向所述主机发送查询请求信息,所述查询请求信息中携带有所述虚拟RDMA网卡的标识和所述第一端口的标识;
所述主机根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;
所述主机向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述第一虚拟机检测到携带有所述第二端口的标识的用于变更以太网地址的信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和所述第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;
所述第一虚拟机根据所述用于变更以太网地址的信息中携带的事件类型,对所述第一端口的地址进行更新。
7.根据权利要求6所述的方法,其特征在于,所述第一虚拟机根据所述用于变更以太网地址的信息中携带的事件类型,对所述第一端口的地址进行更新,包括:
当所述事件类型为网卡启动时,所述第一虚拟机获取所述第二端口标识对应的虚拟地址;
所述第一虚拟机根据所述第二端口标识对应的虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。
8.根据权利要求6所述的方法,其特征在于,所述第一虚拟机根据所述以太网地址变更信息中携带的事件类型,对所述第一端口的地址进行更新,包括:
当所述事件类型为网卡关闭时,所述第一虚拟机删除所述第一端口的地址。
9.一种数据发送设备,其特征在于,所述设备包括主机,所述主机用于得到来自第一虚拟机的第一指令和第二指令,其中所述第一指令用于指示队列对QP队列的源地址为所述第一虚拟机的虚拟地址,所述第二指令用于指示所述QP队列的目的地址为第二虚拟机的虚拟地址,所述QP队列为所述第一虚拟机与所述第二虚拟机通信所使用的QP队列;删除所述第一指令,将所述第二指令修改为第三指令,所述第三指令用于指示所述QP队列中的目的地址为所述第二虚拟机的物理地址;所述主机根据所述第三指令设置所述QP队列,以便通过设置后的所述QP队列向所述第二虚拟机发送数据。
10.根据权利要求9所述的设备,其特征在于,所述设备还包括第一虚拟机,
所述第一虚拟机用于通过第一端口向所述主机发送所述第一指令和第二指令,所述第一端口为所述第一虚拟机的虚拟远程直接存取RDMA网卡的端口,所述第一端口与所述第一虚拟机在RDMA网络中的全局身份标识GID对应。
11.根据权利要求9所述的数据发送设备,其特征在于,所述主机,具体用于:
根据预先存储的第一映射表和所述第二指令中的所述第二虚拟机的虚拟地址,确定所述第二虚拟机的物理地址,所述第一映射表包括虚拟地址和物理地址的对应关系;
将所述第二指令中的所述第二虚拟机的虚拟地址修改为所述第二虚拟机的物理地址,以得到第三指令。
12.根据权利要求9所述的数据发送设备,其特征在于,所述第一虚拟机还包括虚拟以太网网卡的端口,所述第一虚拟机,还用于:
获取所述虚拟RDMA网卡的标识和第一端口的标识;根据所述虚拟RDMA网卡的标识、所述第一端口的标识和所述主机中预先存储的第二映射表,确定对应的第二端口的标识,所述第二映射表包括虚拟RDMA网卡的标识、虚拟RDMA网卡的端口的标识和虚拟以太网网卡的端口的标识三者的对应关系,所述第二端口为所述第一虚拟机的虚拟以太网网卡的端口;根据预设的GID生成算法和所述第二端口的标识对应的虚拟地址,确定所述第一端口的第一GID;将所述第一端口的地址设置为所述第一GID。
13.根据权利要求9所述的数据发送设备,其特征在于,所述第一虚拟机,具体用于:
向所述主机发送查询请求信息,所述查询请求信息中携带有所述虚拟RDMA网卡的标识和第一端口的标识;
所述主机,具体用于:根据所述查询请求信息和预先存储的第二映射表,确定对应的第二端口的标识;向所述第一虚拟机发送查询响应信息,所述查询响应信息中携带有所述第二端口的标识。
14.根据权利要求11所述的数据发送设备,其特征在于,所述第一虚拟机,还用于:
当所述第一虚拟机检测到携带有第二端口的标识的用于变更以太网地址的信息时,根据所述第二端口的标识和预先存储的第三映射表,确定对应的虚拟RDMA网卡的标识和第一端口的标识,所述第三映射表包括虚拟以太网网卡的端口的标识、虚拟RDMA网卡的标识和虚拟RDMA网卡的端口的标识的三者对应关系;
所述第一虚拟机根据所述用于变更以太网地址的信息中携带的事件类型,对所述第一端口的地址进行更新。
15.根据权利要求14所述的数据发送设备,其特征在于,所述第一虚拟机,具体用于:
当所述事件类型为网卡启动时,获取所述第二端口标识对应的虚拟地址;
根据所述第二端口标识对应的虚拟地址和预设的GID生成算法,确定所述第一端口的第二GID,并将所述第一端口的地址设置为第二GID。
16.根据权利要求14所述的数据发送设备,其特征在于,所述第一虚拟机,具体用于:
当所述事件类型为网卡关闭时,删除所述第一端口的地址。
17.一种数据发送设备,其特征在于,所述设备包括:存储器、处理电路和主机通道适配器HCA卡;
其中,所述存储器,用于存储代码;
所述处理电路,用于根据所述存储器中存储代码运行第一虚拟机和主机;
所述处理电路,还用于通过所述第一虚拟机和所述主机实现权利要求1至8任意一项所述的方法;
所述HCA卡,用于向第二虚拟机发送数据。
18.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行根据权利要求1至8任一项所述的方法。
CN202011203280.8A 2018-01-23 2018-01-23 数据发送的方法及设备 Active CN112398817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011203280.8A CN112398817B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011203280.8A CN112398817B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备
CN201810064378.6A CN110071900B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810064378.6A Division CN110071900B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备

Publications (2)

Publication Number Publication Date
CN112398817A CN112398817A (zh) 2021-02-23
CN112398817B true CN112398817B (zh) 2022-02-25

Family

ID=67365132

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810064378.6A Active CN110071900B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备
CN202011203280.8A Active CN112398817B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810064378.6A Active CN110071900B (zh) 2018-01-23 2018-01-23 数据发送的方法及设备

Country Status (1)

Country Link
CN (2) CN110071900B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193653B (zh) * 2019-12-31 2021-08-06 腾讯科技(深圳)有限公司 数据传输方法、装置、设备及存储介质
CN113194045B (zh) * 2020-01-14 2023-11-17 阿里巴巴集团控股有限公司 数据流量分析方法、装置、存储介质及处理器
CN113535370A (zh) * 2020-04-09 2021-10-22 深圳致星科技有限公司 一种实现负载均衡的多rdma网卡虚拟化的方法、设备
CN112583655B (zh) * 2020-11-02 2023-04-14 北京迈格威科技有限公司 数据传输方法、装置、电子设备及可读存储介质
CN113448634B (zh) * 2021-05-31 2022-07-19 山东英信计算机技术有限公司 一种roce网卡资源管理的方法、装置、设备及可读介质
CN113312155B (zh) * 2021-07-29 2022-02-01 阿里云计算有限公司 虚拟机创建方法、装置、设备、***及计算机程序产品
CN113766005B (zh) * 2021-07-29 2023-04-28 苏州浪潮智能科技有限公司 一种基于rdma的批量创建云主机的方法、***
CN113395359B (zh) * 2021-08-17 2021-10-29 苏州浪潮智能科技有限公司 基于远程直接内存访问的文件币集群数据传输方法、***
CN114050998A (zh) * 2022-01-07 2022-02-15 阿里巴巴(中国)有限公司 实现远程直接内存访问的方法、装置、电子设备及介质
CN115314437B (zh) * 2022-06-16 2024-03-01 阿里巴巴(中国)有限公司 容器虚拟网络通信方法和容器虚拟网络
CN115277640B (zh) * 2022-07-29 2023-11-24 迈普通信技术股份有限公司 数据处理方法、装置、智能网卡及存储介质
CN115834296B (zh) * 2023-02-16 2023-04-18 北京融为科技有限公司 一种数据传输方法、装置、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886139B2 (en) * 2007-02-23 2011-02-08 International Business Machines Corporation Method to enable firmware to boot a system from an ISCSI device
CN103384551A (zh) * 2013-01-04 2013-11-06 华为技术有限公司 一种基于pcie网络的虚拟机通信方法、服务器及***
CN104636185A (zh) * 2015-01-27 2015-05-20 华为技术有限公司 业务上下文管理方法、物理主机、pcie设备及迁移管理设备
CN104753816A (zh) * 2015-03-27 2015-07-01 华为技术有限公司 一种rdma连接的报文处理方法及相关装置
CN105637822A (zh) * 2013-08-27 2016-06-01 甲骨文国际公司 在用于中间件和应用执行的工程***中提供数据服务的***和方法
WO2017091465A1 (en) * 2015-11-24 2017-06-01 Oracle International Corporation System and method for efficient virtualization in lossless networks
CN107113298A (zh) * 2014-12-29 2017-08-29 Nicira股份有限公司 为rdma提供多租赁支持的方法
CN107193699A (zh) * 2017-05-22 2017-09-22 郑州云海信息技术有限公司 一种通过rdma方式自动测试hca卡带宽延时方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832216B2 (en) * 2011-08-31 2014-09-09 Oracle International Corporation Method and system for conditional remote direct memory access write
US9723008B2 (en) * 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
US9928093B2 (en) * 2015-02-24 2018-03-27 Red Hat Israel, Ltd. Methods and systems for establishing connections associated with virtual machine migrations
US9813338B2 (en) * 2015-12-10 2017-11-07 Cisco Technology, Inc. Co-existence of routable and non-routable RDMA solutions on the same network interface

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886139B2 (en) * 2007-02-23 2011-02-08 International Business Machines Corporation Method to enable firmware to boot a system from an ISCSI device
CN103384551A (zh) * 2013-01-04 2013-11-06 华为技术有限公司 一种基于pcie网络的虚拟机通信方法、服务器及***
CN105637822A (zh) * 2013-08-27 2016-06-01 甲骨文国际公司 在用于中间件和应用执行的工程***中提供数据服务的***和方法
CN107113298A (zh) * 2014-12-29 2017-08-29 Nicira股份有限公司 为rdma提供多租赁支持的方法
CN104636185A (zh) * 2015-01-27 2015-05-20 华为技术有限公司 业务上下文管理方法、物理主机、pcie设备及迁移管理设备
CN104753816A (zh) * 2015-03-27 2015-07-01 华为技术有限公司 一种rdma连接的报文处理方法及相关装置
WO2017091465A1 (en) * 2015-11-24 2017-06-01 Oracle International Corporation System and method for efficient virtualization in lossless networks
CN107193699A (zh) * 2017-05-22 2017-09-22 郑州云海信息技术有限公司 一种通过rdma方式自动测试hca卡带宽延时方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于KVM虚拟机双机热备技术研究与实现;万仔仁;《中国优秀硕士学位论文全文数据库信息科技辑》;20170531;第1-50页 *
基于全局地址空间的高效 I/O 虚拟化方法研究;李波,孟丹,霍志刚;《小型微型计算机***》;20111130;第2274-2279页 *

Also Published As

Publication number Publication date
CN112398817A (zh) 2021-02-23
CN110071900A (zh) 2019-07-30
CN110071900B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN112398817B (zh) 数据发送的方法及设备
US11283650B2 (en) Method for sending virtual extensible local area network packet, computer device, and computer readable medium
US11372802B2 (en) Virtual RDMA switching for containerized applications
US12047287B2 (en) Data transmission method and apparatus, network adapter, and storage medium
US9462047B2 (en) Network interface controller supporting network virtualization
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
US9274825B2 (en) Virtualization gateway between virtualized and non-virtualized networks
US9588807B2 (en) Live logical partition migration with stateful offload connections using context extraction and insertion
KR101245213B1 (ko) 개방 가상화 형식 메타데이터 기반 네트워크 구성 및/또는 프로비저닝을 위한 방법 및 시스템
US8255475B2 (en) Network interface device with memory management capabilities
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
EP3828709A1 (en) Communication method and network card
EP4160424A2 (en) Zero-copy processing
US9973351B2 (en) Data processing method and apparatus, storage controller, and cabinet
CN109698845B (zh) 数据传输的方法、服务器、卸载卡及存储介质
WO2015024373A1 (zh) 一种虚拟机通信方法及装置
CN108063737B (zh) 一种FCoE存储区域网读请求处理方法及***
WO2014172869A1 (zh) 一种在虚拟局域网中通信的方法、设备和***
WO2020215455A1 (zh) 一种基于Virtio端口传输数据的方法和***
US20240056391A1 (en) Communication method, apparatus, device, and system, and computer-readable storage medium
WO2022089645A1 (zh) 通信方法、装置、设备、***及计算机可读存储介质
CN114928589A (zh) 数据传输方法、数据传输装置、计算机可读介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant