CN111988394B - 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 - Google Patents
一种虚拟化环境中优化p2p数据传输的方法、装置及设备 Download PDFInfo
- Publication number
- CN111988394B CN111988394B CN202010831501.XA CN202010831501A CN111988394B CN 111988394 B CN111988394 B CN 111988394B CN 202010831501 A CN202010831501 A CN 202010831501A CN 111988394 B CN111988394 B CN 111988394B
- Authority
- CN
- China
- Prior art keywords
- data transmission
- transmission request
- physical address
- data
- address
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种虚拟化环境中优化P2P数据传输的方法、装置及设备,涉及云计算领域。所述方法包括:第一设备首先根据预先存储的输入输出虚拟地址(IOVA)与物理地址(PA)的映射关系,确定出P2P数据传输请求所使用的IOVA对应的目标PA,然后再向上一级桥片(switch)发送该P2P数据传输请求和目标PA,以便switch根据预先存储的P2P数据转发控制矩阵,向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,其中,P2P数据转发控制矩阵记录有switch的下行端口之间的数据转发权限。这样,第一设备可以通过上一级switch直接向目标PA对应的第二设备发送P2P数据传输包,从而能够缩短虚拟化环境中P2P数据传输路径,提高传输的带宽,进而降低P2P数据传输的时延。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种虚拟化环境中优化P2P数据传输的方法、装置及设备。
背景技术
随着云计算技术的迅速发展,虚拟化技术也得到了更加广泛的应用,并且,虚拟机中透传设备之间点对点(peer-to-peer,简称P2P)的数据传输以及数据的存储和管理等也受到了越来越多的关注。
在虚拟化环境中,为了保证数据的安全性,需要保证虚拟机之间、虚拟机与物理机之间均是数据隔离的状态,为此,目前采用的方法通常是在计算机的中央处理器(centralprocessing unit,简称CPU)中集成具备直接存储器访问DMA(Direct memory access)remapping功能的硬件,用以解决透传设备执行DMA操作时的安全性问题。但这种方法只保证了虚拟机中DMA操作的数据安全,却并未很好的支持虚拟机中透传设备之间的P2P数据传输,这是因为,在目前的传输方式下,所有的P2P数据传输包在传输时,都需要经由桥片switch和高速串行计算机扩展总线根端口(PCIE ROOT PORT)传输至CPU的DMA remapping硬件进行数据转发,导致数据转发路径过长,以及导致P2P数据传输的时延变高。并且由于在转发过程中,所有的P2P数据传输包都需要经由PCIE root port和switch之间的总线(bus),从而导致P2P数据传输的带宽降低。
因此,如何优化虚拟化环境中P2P数据传输路径,降低P2P数据传输的时延,是目前亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提供一种虚拟化环境中优化P2P数据传输的方法、装置及设备,能够优化虚拟化环境中P2P数据传输路径,降低P2P数据传输的时延。
第一方面,本申请实施例提供了一种虚拟化环境中优化P2P数据传输的方法,包括:
第一设备根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址;
所述第一设备向上一级桥片发送所述P2P数据传输请求和所述目标物理地址,以便所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
一种可能的实现方式中,所述方法还包括:
所述第一设备向所述桥片发送地址翻译请求和所述P2P数据传输请求,以便所述桥片在将所述P2P数据传输请求和地址翻译请求发送至中央处理器中的根复合体后,通过所述根复合体获取所述P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
一种可能的实现方式中,所述第一设备的地址翻译高速缓存中预先存储了输入输出虚拟地址与物理地址的映射关系。
第二方面,本申请实施例提供了一种虚拟化环境中优化P2P数据传输的方法,包括:
桥片接收第一设备发送的P2P数据传输请求和目标物理地址;
所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
一种可能的实现方式中,在所述桥片获取第一设备发送的P2P数据传输请求和目标物理地址之后,所述方法还包括:
所述桥片判断所述目标物理地址是否合法;
若是,则执行根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包的步骤;
若否,则拦截所述P2P数据传输请求。
一种可能的实现方式中,所述方法还包括:
所述桥片接收所述第一设备发送的地址翻译请求和所述P2P数据传输请求;
所述桥片向中央处理器中的根复合体发送所述地址翻译请求和所述P2P数据传输请求,以便所述根复合体根据所述地址翻译请求,对所述P2P数据传输请求所使用的输入输出虚拟地址进行翻译,确定出所述输入输出虚拟地址对应的目标物理地址;
所述桥片接收所述根复合体发送的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
一种可能的实现方式中,所述P2P数据转发控制矩阵预先存储在所述桥片的访问控制服务器中。
第三方面,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的装置,包括:
确定单元,用于根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址;
第一发送单元,用于向上一级桥片发送所述P2P数据传输请求和所述目标物理地址,以便所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
一种可能的实现方式中,所述装置还包括:
第二发送单元,用于向所述桥片发送地址翻译请求和所述P2P数据传输请求,以便所述桥片在将所述P2P数据传输请求和地址翻译请求发送至中央处理器中的根复合体后,通过所述根复合体获取所述P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
一种可能的实现方式中,所述输入输出虚拟地址与物理地址的映射关系预先存储在第一设备的地址翻译高速缓存中。
第四方面,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的装置,包括:
第一接收单元,用于接收第一设备发送的P2P数据传输请求和目标物理地址;
第一发送单元,用于根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
一种可能的实现方式中,所述装置还包括:
判断单元,用于判断所述目标物理地址是否合法;
调用单元,用于若判断出所述目标物理地址是合法的,则调用并执行所述第一发送单元;
拦截单元,用于若判断出所述目标物理地址不是合法的,则拦截所述P2P数据传输请求。
一种可能的实现方式中,所述装置还包括:
第二接收单元,用于接收所述第一设备发送的地址翻译请求和所述P2P数据传输请求;
第二发送单元,用于向中央处理器中的根复合体发送所述地址翻译请求和所述P2P数据传输请求,以便所述根复合体根据所述地址翻译请求,对所述P2P数据传输请求所使用的输入输出虚拟地址进行翻译,确定出所述输入输出虚拟地址对应的目标物理地址;
第三接收单元,用于接收所述根复合体发送的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
一种可能的实现方式中,所述P2P数据转发控制矩阵预先存储在桥片的访问控制服务器中。
第五方面,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的设备,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述第一方面的任意一项虚拟化环境中优化P2P数据传输的方法。
第六方面,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的设备,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述第二方面的任意一项虚拟化环境中优化P2P数据传输的方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任意一项虚拟化环境中优化P2P数据传输的方法。
第八方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述任意一项虚拟化环境中优化P2P数据传输的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供的一种虚拟化环境中优化P2P数据传输的方法中,第一设备首先根据预先存储的输入输出虚拟地址(io virtual address,简称IOVA)与物理地址(physical address,简称PA)的映射关系,确定出P2P数据传输请求所使用的IOVA对应的目标PA,然后再向上一级桥片(switch)发送该P2P数据传输请求和目标PA,以便switch根据预先存储的P2P数据转发控制矩阵,向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,其中,P2P数据转发控制矩阵记录有switch的下行端口之间的数据转发权限。可见,本申请实施例中第一设备不再将所有的P2P数据传输包经由PCIE root port与switch之间的bus进行传输,也不再将所有的P2P数据传输包都经由CPU中的DMA remapping硬件来转发,而是根据预先存储的IOVA与PA的映射关系,通过上一级switch直接向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,从而能够缩短虚拟化环境中P2P数据传输路径,提高虚拟化环境中P2P数据传输的带宽,进而降低P2P数据传输的时延。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的现有的虚拟化环境中P2P数据传输路径的示意图;
图2为本申请实施例提供的一种虚拟化环境中优化P2P数据传输的方法的流程示意图;
图3为本申请实施例提供的虚拟化环境中P2P数据传输路径的示意图;
图4为本申请实施例提供的另一种虚拟化环境中优化P2P数据传输的方法的流程示意图;
图5为本申请实施例提供的switch的结构示例图;
图6为本申请实施例提供的switch中预先存储的P2P数据转发控制矩阵的示例图;
图7为本申请实施例提供的一种虚拟化环境中优化P2P数据传输的装置的组成示意图;
图8为本申请实施例提供的另一种虚拟化环境中优化P2P数据传输的装置的组成示意图。
具体实施方式
随着云计算技术的迅速发展,虚拟化技术也得到了更加广泛的应用,虚拟机中透传设备之间的P2P数据传输以及数据的存储和管理等也受到了越来越多的关注。其中,透传设备指的是在虚拟化环境中将物理设备(物理机上的设备)直接交付给虚拟机使用的设备(如磁盘、网卡等),且虚拟机独占该设备,即,虚拟机具有该设备的全部操作权限。
在虚拟化环境中,对于透传设备来说,如何安全的进行DMA操作是非常重要的。其中,DMA操作是由透传设备发起的,且透传设备发起DMA操作时会指定需要访问的内存空间的物理机地址。通常来讲,透传设备可以通过DMA操作,读/写计算机中的任何一段内存。但错误的DMA操作也可能会直接因为物理机数据丢失、数据损坏、甚至宕机。因此,在虚拟化环境中,需要保证虚拟机之间、虚拟机和物理机之间均是数据隔离的状态,进而才能保障数据安全的安全性。
目前,为了保证数据的安全性,采用的方法是在计算机的CPU中集成具备DMAremapping功能的硬件,用以解决透传设备执行DMA操作时的安全性问题。这样,透传设备在进行DMA请求时,不再直接指定需要访问的内存空间的PA,而是使用一个IOVA来传输DMA操作请求。并且,DMA remapping硬件预先维护了每一透传设备对应的一张页表,根据每张页表可以确定对应的透传设备有权访问的内存空间的PA,进一步的,DMA remapping硬件可以将DMA请求中的IOVA转化为对应的PA。从而实现对透传设备发起的DMA操作的访问和权限控制,进而解决了透传设备执行DMA操作时的安全性问题。
但这种方法只保证了虚拟机中DMA操作的数据安全,却并未很好的支持虚拟机中透传设备之间的P2P数据传输。具体来讲,如图1所示,现有的虚拟化环境中P2P数据传输过程可分为四个步骤:步骤①:,在现有虚拟化环境中,透传设备device1发出的P2P数据传输请求(数据请求中使用的是IOVA地址)被路由至上一级的桥片switch。步骤②:switch被预先设置为将下行端口(downstream port)接收的所有的P2P数据传输请求均直接路由至上行端口(upstream port),再通过CPU中根复合体(root complex,简称RC)的、与switch上行端口物理连接的RP(root port)端口,将其路由至RC。步骤③:RC中的DMA remapping硬件对P2P数据传输请求中的IOVA地址进行翻译,确定对应的PA,并根据该PA将P2P数据传输请求对应的TLP格式的数据包路由到对应的switch。步骤④:switch将该TLP格式的数据包包路由至PA对应的device2。
可见,在目前虚拟化环境的P2P数据传输过程中,所有的P2P数据传输包在传输时,都需要经由switch和PCIE ROOT PORT传输至CPU的DMA remappi ng硬件进行数据转发,导致数据转发路径过长,以及导致P2P数据传输的时延变高。并且由于在转发过程中,所有的P2P数据传输包都需要经由PCIE root port和switch之间的总线bus,从而导致P2P数据传输的带宽降低。
为解决上述缺陷,本申请实施例提供了一种虚拟化环境中优化P2P数据传输的方法,第一设备(指的是虚拟化环境中的一个透传设备,如图1中的device1)首先根据预先存储的IOVA与PA的映射关系,确定出P2P数据传输请求所使用的IOVA对应的目标PA,然后再向上一级switch发送该P2P数据传输请求和目标PA,以便switch向目标PA对应的第二设备发送P2P数据传输请求包含的数据包。可见,本申请实施例中第一设备不再将所有的P2P数据传输包经由PCIE root port与switch之间的bus进行传输,也不再将所有的P2P数据传输包都经由CPU中的DMA remapping硬件来转发,而是根据预先存储的IOVA与PA的映射关系,通过上一级switch直接向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,从而能够缩短虚拟化环境中P2P数据传输路径,提高虚拟化环境中P2P数据传输的带宽,进而降低P2P数据传输的时延。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一实施例
参见图2,为本实施例提供的一种虚拟化环境中优化P2P数据传输的方法的流程示意图,该方法包括以下步骤:
S201:第一设备根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址。
在本实施例中,将虚拟化环境中采用本实施例优化P2P数据传输的任一透传设备定义为第一设备,如磁盘、网卡等。在通过第一设备进行P2P数据透传时,为了保证数据的安全性,降低P2P数据传输的时延,首先需要在第一设备中预先配置第一设备能够路由到的PA与其传输P2P数据所使用的IOVA之间的映射关系,并将该映射关系进行存储,一种可选的实现方式是,可以将该映射关系预先存储在第一设备的地址翻译高速缓存(addresstranslation cache,简称ATC)中。如,可以将该映射关系以列表的形式预先存储在ATC中。
需要说明的是,为了保障虚拟化环境中P2P数据传输的效率,可以在虚拟机启动时,即可在第一设备中配置第一设备能够路由到的PA与其传输P2P数据所使用的IOVA之间的映射关系并存储。
这样,在第一设备使用IOVA发起P2P数据传输请求时,可以利用预先存储的其能够路由到的PA与其传输P2P数据所使用的IOVA之间的映射关系,确定出该P2P数据传输请求所使用的IOVA对应的目标PA,用以执行后续步骤S202。从而提高了第一设备在进行P2P数据传输时,确定目标PA的速度。
S202:第一设备向上一级桥片发送P2P数据传输请求和目标物理地址,以便桥片根据预先存储的P2P数据转发控制矩阵,向目标物理地址对应的第二设备发送P2P数据传输请求包含的数据包;其中,P2P数据转发控制矩阵记录有桥片的下行端口之间的数据转发权限。
在本实施例中,第一设备在确定出P2P数据传输请求所使用的IOVA对应的目标PA后,进一步可以向上一级switch发送P2P数据传输请求和目标PA,该传输路径如图3中标号①指示的虚线箭头所示,且图3中的device1表示第一设备。
进一步的,switch在接收到第一设备发送的P2P数据传输请求和目标PA后,可以根据预先存储的P2P数据转发控制矩阵,向目标PA指示的透传设备(此处将其定义为第二设备)发送该P2P数据传输请求所包括的TLP格式的数据包,其中,P2P数据转发控制矩阵记录有switch的下行端口之间的数据转发权限。该传输路径如图3中标号②指示的虚线箭头所示,且图3中的device2表示第二设备。从而实现了虚拟化环境中第一设备和第二设备之间P2P数据能够通过最短路径(如图3中标号①和②指示的虚线箭头)进行传输。
需要说明的是,switch向目标PA对应的第二设备发送P2P数据传输请求包含的数据包的具体实现过程将在后续第二实施例中介绍。
还需要说明的是,若第一设备根据预先存储的IOVA与PA的映射关系,未确定出P2P数据传输请求所使用的IOVA对应的目标PA,比如,若第一设备的ATC中预先存储的第一设备能够路由到的PA与其传输P2P数据所使用的IOVA之间的映射关系列表中,并未包含P2P数据传输请求所使用的IOVA与其对应的目标PA之间的映射关系,则第一设备无法直接执行步骤S202,而是需要先通过RC中DMA remapping硬件来确定P2P数据传输请求所使用的IOVA对应的目标PA,然后再根据该将P2P数据传输请求包括的TLP格式的数据包路由到对应的switch,以便该switch可以进一步将数据包路由到目标PA对应的第二设备中。
具体来讲,当第一设备根据预先存储的IOVA与PA的映射关系,未确定出P2P数据传输请求所使用的IOVA对应的目标PA时,第一设备可以通过与上一级switch之间的下行端口,向上一级switch发送地址翻译请求和P2P数据传输请求。其中,地址翻译请求指的是对第一设备发起的P2P数据传输请求所使用的IOVA进行翻译,以确定出对应的目标PA的请求信息。以便switch进一步通过其上行端口与RC中RP的物理连接链路,将P2P数据传输请求和地址翻译请求发送至RC,这样,RC在接收到P2P数据传输请求和地址翻译请求后,可以利用DMA remapping硬件预先维护的第一设备对应的有权访问的内存空间的PA页表,将P2P数据传输请求所使用的IOVA翻译为对应的目标PA,并将P2P数据传输请求封装为TLP格式的数据包和目标PA路由到对应的switch。进而该switch即可向目标PA对应的第二设备发送P2P数据传输请求对应的TLP格式的数据包。
综上,本申请实施例提供的一种虚拟化环境中优化P2P数据传输的方法中,第一设备首先根据预先存储的IOVA与PA的映射关系,确定出P2P数据传输请求所使用的IOVA对应的目标PA,然后再向上一级switch发送该P2P数据传输请求和目标PA,以便switch根据预先存储的P2P数据转发控制矩阵,向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,其中,P2P数据转发控制矩阵记录有switch的下行端口之间的数据转发权限。可见,本申请实施例中第一设备不再将所有的P2P数据传输包经由PCIE root port与switch之间的bus进行传输,也不再将所有的P2P数据传输包都经由CPU中的DMA remapping硬件来转发,而是根据预先存储的IOVA与PA的映射关系,通过上一级switch直接向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,从而能够缩短虚拟化环境中P2P数据传输路径,提高虚拟化环境中P2P数据传输的带宽,进而降低P2P数据传输的时延。
第二实施例
参见图4,为本实施例提供的另一种虚拟化环境中优化P2P数据传输的方法的流程示意图,该方法包括以下步骤:
S401:桥片接收第一设备发送的P2P数据传输请求和目标物理地址。
在本实施例中,为了在保证P2P数据传输性能的情况下,能够缩短虚拟化环境中P2P数据传输路径,以降低P2P数据传输的时延。首先需要更改现有的switch中的访问控制服务器(access control server,简称ACS)的配置,使其能够通过后续步骤S402正确转发P2P数据传输请求对应的TLP格式的数据包至对应的透传设备中,而不再如现有技术中将接收到的所有P2P数据传输请求均直接通过上行端口路由至CPU中的RC,再进行后续传输。从而能够实现P2P数据在PCIE链路上通过最短路径进行转发,进而提高了虚拟化环境中第一设备进行P2P数据传输的带宽,降低了P2P数据传输的时延。
接下来,本申请将结合图5和图6对ACS中配置的更改过程进行举例说明:
参见图5,其示出了本申请实施例提供的switch的结构示例图。图5中的switch包含有3个下行端口和1个上行端口,其中,设备device1和device2被透传到同一台虚拟机,并且支持P2P数据传输,但设备device3则归属于另一台云主机。
一种可选的实现方式是,为了实现通过switch直接转发P2P数据的目的,可在switch的ACS的配置行为进行优化,具体的,可以预先在switch的ACS中设置P2P数据转发控制矩阵并存储。举例说明,对于图5所示的switch,可以预先在该switch的ACS中配置如图6所示的P2P数据转发控制矩阵并存储,该表格中的“0”表示不可进行路由,“1”表示可以进行路由,“X”表示同一设备之间的操作(即不涉及到设备间的路由操作)。比如,图6所示网格中第2行第3列的“1”表示ACS能够控制将与最左侧下行端口连接device1发起的P2P数据请求转发至与中间下行端口连接的device2,即,表明device1具有通过该switch直接向device2转发P2P数据的权限;而网格的第2行第4列的“0”则表示通过ACS无法将与最左侧下行端口连接device1发起的P2P数据请求转发至与最右侧下行端口连接的device3,即,表明device1不具有通过该switch直接向device3转发P2P数据的权限。
S402:桥片根据预先存储的P2P数据转发控制矩阵,向目标物理地址对应的第二设备发送P2P数据传输请求包含的数据包;其中,P2P数据转发控制矩阵记录有桥片的下行端口之间的数据转发权限。
在本实施例中,switch在接收到第一设备发送的P2P数据传输请求和目标PA后,进一步可以根据预先存储的P2P数据转发控制矩阵,确定出第一设备是否具有向目标PA对应的第二设备转发P2P数据的权限,若是,则switch中的ACS可以控制将P2P数据传输请求包含的数据包通过相应的下行端口发送至目标PA对应的第二设备。
需要说明的是,switch在接收到第一设备发送的P2P数据传输请求和目标PA后,为了保证数据传输的安全性,一种可选的实现方式,switch可以通过ACS控制器先判断接收到的目标PA是否合法,若合法,则可以向目标PA对应的第二设备发送P2P数据传输请求包含的数据包,若不合法,如,出现硬件损坏或错误的地址格式等情况,则将接收到的P2P数据传输请求进行拦截,不对其进行后续的转发,以保证P2P数据的安全。
还需要说明的是,switch首先还可以通过与第一设备连接的下行端口,接收第一设备发送的地址翻译请求和P2P数据传输请求,其中,地址翻译请求指的是对第一设备发起的P2P数据传输请求所使用的IOVA进行翻译,以确定出对应的目标PA的请求信息。然后,switch可以通过其上行端口与RC中RP的物理连接链路,向RC发送该地址翻译请求和P2P数据传输请求,以便RC根据该地址翻译请求,利用DMAremapping硬件预先维护的第一设备对应的有权访问的内存空间的PA页表,对P2P数据传输请求所使用的IOVA翻译进行翻译,确定出该IOVA对应的目标PA,并根据该目标PA将P2P数据传输请求对应的TLP格式的数据包路由到对应的switch。进而,该switch在接收到RC发送的目标PA后,可以向目标PA对应的第二设备发送该P2P数据传输请求对应的TLP格式的数据包,实现虚拟化环境中第一设备和第二设备之间的P2P数据传输。
综上,本实施例通过预先更改switch中ACS的配置,使其能够控制正确转发P2P数据传输请求对应的TLP格式的数据包至对应的透传设备中,而不再将接收到的所有P2P数据传输请求均直接通过上行端口路由至CPU中的RC进行后续传输。从而能够实现P2P数据在PCIE链路上通过最短路径进行转发,进而提高了虚拟化环境中第一设备进行P2P数据传输的带宽,降低了P2P数据传输的时延。
第三实施例
参见图7,为本实施例提供的一种虚拟化环境中优化P2P数据传输的装置的组成示意图,该装置700包括:
确定单元701,用于根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址;
第一发送单元702,用于向上一级桥片发送所述P2P数据传输请求和所述目标物理地址,以便所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
在本实施例的一种实现方式中,所述装置还包括:
第二发送单元,用于向所述桥片发送地址翻译请求和所述P2P数据传输请求,以便所述桥片在将所述P2P数据传输请求和地址翻译请求发送至中央处理器中的根复合体后,通过所述根复合体获取所述P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
在本实施例的一种实现方式中,所述输入输出虚拟地址与物理地址的映射关系预先存储在第一设备的地址翻译高速缓存中。
第四实施例
参见图8,为本实施例提供的另一种虚拟化环境中优化P2P数据传输的装置的组成示意图,该装置800包括:
第一接收单元801,用于接收第一设备发送的P2P数据传输请求和目标物理地址;
第一发送单元802,用于根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限。
在本实施例的一种实现方式中,所述装置还包括:
判断单元,用于判断所述目标物理地址是否合法;
调用单元,用于若判断出所述目标物理地址是合法的,则调用并执行所述第一发送单元802;
拦截单元,用于若判断出所述目标物理地址不是合法的,则拦截所述P2P数据传输请求。
在本实施例的一种实现方式中,所述装置还包括:
第二接收单元,用于接收所述第一设备发送的地址翻译请求和所述P2P数据传输请求;
第二发送单元,用于向中央处理器中的根复合体发送所述地址翻译请求和所述P2P数据传输请求,以便所述根复合体根据所述地址翻译请求,对所述P2P数据传输请求所使用的输入输出虚拟地址进行翻译,确定出所述输入输出虚拟地址对应的目标物理地址;
第三接收单元,用于接收所述根复合体发送的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
在本实施例的一种实现方式中,所述P2P数据转发控制矩阵预先存储在桥片的访问控制服务器中。
进一步地,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的设备,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述第一实施例中的虚拟化环境中优化P2P数据传输的方法的任一种实现方法。
进一步地,本申请实施例还提供了一种虚拟化环境中优化P2P数据传输的设备,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述第二实施例中的虚拟化环境中优化P2P数据传输的方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述虚拟化环境中优化P2P数据传输的方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述虚拟化环境中优化P2P数据传输的方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (16)
1.一种虚拟化环境中优化P2P数据传输的方法,其特征在于,包括:
第一设备根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址;
所述第一设备向上一级桥片发送所述P2P数据传输请求和所述目标物理地址,以便所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限;
所述第一设备的地址翻译高速缓存中预先存储了输入输出虚拟地址与物理地址的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备向所述桥片发送地址翻译请求和所述P2P数据传输请求,以便所述桥片在将所述P2P数据传输请求和地址翻译请求发送至中央处理器中的根复合体后,通过所述根复合体获取所述P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
3.一种虚拟化环境中优化P2P数据传输的方法,其特征在于,包括:
桥片接收第一设备发送的P2P数据传输请求和目标物理地址;
所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限;
所述第一设备的地址翻译高速缓存中预先存储了输入输出虚拟地址与物理地址的映射关系;
所述第一设备根据所述输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址。
4.根据权利要求3 所述的方法,其特征在于,在所述桥片获取第一设备发送的P2P数据传输请求和目标物理地址之后,所述方法还包括:
所述桥片判断所述目标物理地址是否合法;
若是,则执行根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包的步骤;
若否,则拦截所述P2P数据传输请求。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述桥片接收所述第一设备发送的地址翻译请求和所述P2P数据传输请求;
所述桥片向中央处理器中的根复合体发送所述地址翻译请求和所述P2P数据传输请求,以便所述根复合体根据所述地址翻译请求,对所述P2P数据传输请求所使用的输入输出虚拟地址进行翻译,确定出所述输入输出虚拟地址对应的目标物理地址;
所述桥片接收所述根复合体发送的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述P2P数据转发控制矩阵预先存储在所述桥片的访问控制服务器中。
7.一种虚拟化环境中优化P2P数据传输的装置,其特征在于,包括:
确定单元,用于根据预先存储的输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址;
第一发送单元,用于向上一级桥片发送所述P2P数据传输请求和所述目标物理地址,以便所述桥片根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有所述桥片的下行端口之间的数据转发权限;
所述输入输出虚拟地址与物理地址的映射关系预先存储在第一设备的地址翻译高速缓存中。
8.根据权利要求7 所述的装置,其特征在于,所述装置还包括:
第二发送单元,用于向所述桥片发送地址翻译请求和所述P2P数据传输请求,以便所述桥片在将所述P2P数据传输请求和地址翻译请求发送至中央处理器中的根复合体后,通过所述根复合体获取所述P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
9.一种虚拟化环境中优化P2P数据传输的装置,其特征在于,包括:
第一接收单元,用于接收第一设备发送的P2P数据传输请求和目标物理地址;
第一发送单元,用于根据预先存储的P2P数据转发控制矩阵,向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包;所述P2P数据转发控制矩阵记录有桥片的下行端口之间的数据转发权限;
所述第一设备的地址翻译高速缓存中预先存储了输入输出虚拟地址与物理地址的映射关系;
所述第一设备根据所述输入输出虚拟地址与物理地址的映射关系,确定P2P数据传输请求所使用的输入输出虚拟地址对应的目标物理地址。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断所述目标物理地址是否合法;
调用单元,用于若判断出所述目标物理地址是合法的,则调用并执行所述第一发送单元;
拦截单元,用于若判断出所述目标物理地址不是合法的,则拦截所述P2P数据传输请求。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收所述第一设备发送的地址翻译请求和所述P2P数据传输请求;
第二发送单元,用于向中央处理器中的根复合体发送所述地址翻译请求和所述P2P数据传输请求,以便所述根复合体根据所述地址翻译请求,对所述P2P数据传输请求所使用的输入输出虚拟地址进行翻译,确定出所述输入输出虚拟地址对应的目标物理地址;
第三接收单元,用于接收所述根复合体发送的目标物理地址,并向所述目标物理地址对应的第二设备发送所述P2P数据传输请求包含的数据包。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述P2P数据转发控制矩阵预先存储在桥片的访问控制服务器中。
13.一种虚拟化环境中优化P2P数据传输的设备,其特征在于,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1-2任一项所述的方法。
14.一种虚拟化环境中优化P2P数据传输的设备,其特征在于,包括:处理器、存储器、***总线;
所述处理器以及所述存储器通过所述***总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求3-6任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-6任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010831501.XA CN111988394B (zh) | 2020-08-18 | 2020-08-18 | 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010831501.XA CN111988394B (zh) | 2020-08-18 | 2020-08-18 | 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111988394A CN111988394A (zh) | 2020-11-24 |
CN111988394B true CN111988394B (zh) | 2022-11-01 |
Family
ID=73434727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010831501.XA Active CN111988394B (zh) | 2020-08-18 | 2020-08-18 | 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111988394B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483431B2 (en) * | 2013-04-17 | 2016-11-01 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) |
US9152593B2 (en) * | 2013-09-06 | 2015-10-06 | Cisco Technology, Inc. | Universal PCI express port |
US9626300B2 (en) * | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
CN105404597B (zh) * | 2015-10-21 | 2018-10-12 | 华为技术有限公司 | 数据传输的方法、设备及*** |
CN109213702B (zh) * | 2017-06-30 | 2022-08-30 | 伊姆西Ip控股有限责任公司 | 虚拟机环境中的虚拟双控制模块之间的通信 |
LT3767495T (lt) * | 2017-08-28 | 2023-05-25 | Bright Data Ltd. | Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius |
CN109977037B (zh) * | 2017-12-28 | 2021-01-22 | 龙芯中科技术股份有限公司 | 一种dma数据传输方法及*** |
CN110011933B (zh) * | 2018-01-05 | 2021-05-18 | 华为技术有限公司 | 发送数据包的方法、装置及计算机可读存储介质 |
CN110597451B (zh) * | 2018-06-12 | 2021-02-23 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN109445905B (zh) * | 2018-06-22 | 2022-04-22 | 华为云计算技术有限公司 | 虚拟机数据通信方法和***以及虚拟机配置方法和装置 |
CN111405590B (zh) * | 2019-01-02 | 2023-01-13 | ***通信有限公司研究院 | 一种虚拟化网元数据流量导出方法、装置和存储介质 |
CN110708393B (zh) * | 2019-10-21 | 2023-11-21 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和*** |
-
2020
- 2020-08-18 CN CN202010831501.XA patent/CN111988394B/zh active Active
Non-Patent Citations (1)
Title |
---|
PC北桥端高速采集存储***研究;李京桓等;《世界电子元器件》;20110715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111988394A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9742671B2 (en) | Switching method | |
JP6871957B2 (ja) | エミュレートされたエンドポイントコンフィグレーション | |
CN108449282B (zh) | 一种负载均衡方法及其装置 | |
JP5490336B2 (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
US9154451B2 (en) | Systems and methods for sharing devices in a virtualization environment | |
CN108959127B (zh) | 地址转换方法、装置及*** | |
CN112463307B (zh) | 一种数据传输方法、装置、设备及可读存储介质 | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
WO2015070640A1 (zh) | 设备远程访问的方法、瘦客户端和虚拟机 | |
CN111654519A (zh) | 用于传输数据处理请求的方法和装置 | |
CN114265800B (zh) | 中断消息处理方法、装置、电子设备及可读存储介质 | |
US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
US20240205292A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
EP3796615B1 (en) | Fault tolerance processing method, device, and server | |
CN111988394B (zh) | 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 | |
CN106790162B (zh) | 虚拟网络优化方法与*** | |
CN112491794A (zh) | 一种端口转发方法、装置及相关设备 | |
CN113626139B (zh) | 一种高可用的虚拟机存储方法及装置 | |
US11604670B2 (en) | Virtual machine live migration method, apparatus, and system | |
CN114338809A (zh) | 访问控制方法、装置、电子设备和存储介质 | |
WO2020235055A1 (ja) | 仮想マシン監視装置、仮想マシン監視方法およびプログラム | |
US20190065418A1 (en) | Message routing in a main memory arrangement | |
CN111865794A (zh) | 一种逻辑端口的关联方法、***、设备及数据传输*** | |
CN113722110B (zh) | 计算机***、内存访问方法及设备 | |
US11849005B2 (en) | Method and apparatus for accelerating network transmission in memory-disaggregated environment |
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 |