CN113300984B - 通信方法、设备、***及存储介质 - Google Patents

通信方法、设备、***及存储介质 Download PDF

Info

Publication number
CN113300984B
CN113300984B CN202010270565.7A CN202010270565A CN113300984B CN 113300984 B CN113300984 B CN 113300984B CN 202010270565 A CN202010270565 A CN 202010270565A CN 113300984 B CN113300984 B CN 113300984B
Authority
CN
China
Prior art keywords
switching
message
resource
equipment
target
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
CN202010270565.7A
Other languages
English (en)
Other versions
CN113300984A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010270565.7A priority Critical patent/CN113300984B/zh
Publication of CN113300984A publication Critical patent/CN113300984A/zh
Application granted granted Critical
Publication of CN113300984B publication Critical patent/CN113300984B/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
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供一种通信方法、设备、***及存储介质。在本申请实施例提供的网络***中,交换设备增设有下游虚拟端口。主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对其它交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。

Description

通信方法、设备、***及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种通信方法、设备、***及存储介质。
背景技术
高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIE)体系架构一般包括根组件(Root Complex)、交换器(Switch)和各种资源设备(Endpoint,EP)。
按照标准PCIE协议的规定,交换器的下游端口所连接的资源设备只能隶属于该交换器的上游端口连接的主机,不能被其它主机所访问,当然也就缺少相应的访问方法。
发明内容
本申请的多个方面提供一种通信方法、设备、***及存储介质,用以实现主机与隶属于其它主机的交换设备下挂载的资源设备之间的通信,从而实现资源池化。
本申请实施例提供一种网络***,包括:多个交换设备以及连接于所述多个交换设备的上游端口的多个主机节点;所述多个交换设备之间互联,每个交换设备包括:下游物理端口和下游虚拟端口;所述下游物理端口挂载有资源设备;
第一交换设备,用于:获取所述第一交换设备所隶属的第一主机节点提供的第一报文;所述第一报文遵循串行接口协议,且包含资源设备标识;根据主机节点与资源设备之间的使用权限关系以及所述资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;将所述第二报文提供给挂载所述资源设备标识对应的目标资源设备的第二交换设备,以供所述第二交换设备从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述第一主机节点对所述目标资源设备的使用权限是通过所述第一交换设备的下游虚拟端口实现的。
本申请实施例还提供一种通信方法,包括:
获取第一交换设备所隶属的第一主机节点提供的第一报文;所述第一报文遵循串行接口协议,且包含第一资源设备标识;
根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;
将所述第二报文提供给挂载所述第一资源设备标识对应的目标资源设备的第二交换设备,以供所述第二交换设备从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述第一主机节点对所述目标资源设备的使用权限是通过所述第一交换设备的下游虚拟端口实现的。
本申请实施例还提供一种交换设备,包括:存储器、处理器和通信组件;所述通信组件包括:网络接口、上游端口以及下游物理端口和下游虚拟端口;所述上游端口用于连接主机节点;所述下游物理端口用于连接资源设备;所述网络接口用于与其它交换设备通信连接;
所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:执行上述通信方法中的步骤。
本申请实施例还提供一种通信方法,包括:
接收其它交换设备转发的遵循网络协议的第二报文;所述第二报文是所述其它交换设备根据主机节点与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;
从所述第二报文中解析出所述第一报文;并将所述第一报文转发给所隶属的主机节点或下游物理端口挂载的资源设备进行响应。
本申请实施例还提供一种交换设备,包括:存储器、处理器和通信组件;所述通信组件包括:网络接口、上游端口以及下游物理端口;所述上游端口用于连接主机节点;所述下游物理端口用于连接资源设备;所述网络接口用于与其它交换设备通信连接;
所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:执行上述通信方法中的步骤。
本申请实施例还提供一种交换设备,包括:网络接口和多级PCI到PCI桥;
所述多级PCI到PCI桥的根节点被配置为所述交换设备的上游端口;所述多级PCI到PCI桥的多个叶节点被配置为所述交换设备的多个下游端口;所述多个下游端口包括至少一个下游物理端口和至少一个下游虚拟端口;
所述网络接口,用于与其它交换设备网络连接;
所述上游端口用于连接主机节点;所述至少一个下游物理端口用于挂载资源设备;所述至少一个下游虚拟端口用于供所述主机节点访问所述其它交换设备下挂载的目标资源设备。
本申请实施例还提供一种计算机设备,包括:交换模块以及与所述交换模块的上游端口连接的主机模块;所述交换模块还包括:网络接口、下游物理端口和下游虚拟端口;所述下游物理端口用于连接资源设备;所述网络接口用于与隶属于其它计算机设备的交换模块通信连接;
所述交换模块,用于:获取所述主机模块提供的第一报文;所述第一报文遵循串行接口协议,且包含资源设备标识;根据主机模块与资源设备之间的使用权限关系以及所述资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;通过所述网络接口将所述第二报文提供给挂载所述资源设备标识对应的目标资源设备的目标计算机设备的交换模块,以供所述目标计算机设备的交换模块从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述主机模块对所述目标资源设备的使用权限是通过所述下游虚拟端口实现的。
本申请实施例还提供一种计算机设备,包括:交换模块以及与所述交换模块的上游端口连接的主机模块;所述交换模块还包括:网络接口和下游物理端口;所述网络接口用于与隶属于其它计算机设备的交换模块通信连接;
所述交换模块,用于:通过所述网络接口接收其它计算机设备的交换模块转发的遵循网络协议的第二报文;所述第二报文是所述其它计算机设备的交换模块根据主机模块与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;从所述第二报文中解析出所述第一报文;并将所述第一报文通过所述上游端口转发给所述主机模块进行响应或通过所述下游物理端口转发给所述目标资源设备进行响应。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述通信方法中的步骤。
本申请实施例提供的网络***,交换设备增设有下游虚拟端口,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机的交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,从而实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种网络***的结构示意图;
图1b为本申请实施例提供的不同节点数量下的网络***的结构示意图;
图1c为本申请实施例提供的主机节点和交换设备的实现形态示意图;
图1d为本申请实施例提供的交换设备的内部结构示意图;
图1e为本申请实施例提供的通信过程示意图;
图1f为本申请实施例提供的网络协议报文的格式示意图;
图2和图3为本申请实施例提供的通信方法的流程示意图;
图4、图5和图6为本申请实施例提供的交换设备的结构示意图;
图7和图8为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有的无法实现主机与隶属于其它主机的交换设备下挂载的资源设备之间的通信的技术问题,本申请一些实施例中,交换设备增设有下游虚拟端口,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机的交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,从而实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
在实际应用中,服务端设备的根组件(RC)会通过PCIE交换设备向下连接资源设备(EP)。但是,按照PCIE标准协议的规定,PCIE交换设备的所挂载的资源设备只能隶属于根组件所连接的服务端设备,不能被其它服务端设备所使用,不仅造成资源的浪费,还可能影响服务端设备的服务性能。
为了解决上述问题,本申请实施例提供一种新的网络***,如图1a所示,该网络***包括:多个交换设备10以及连接于多个交换设备10的上游端口10a的多个主机节点11。在本申请实施例中,多个是指2个或2个以上。对于主机节点11和交换设备12的数量不做限定。图1a仅以主机节点11和交换设备12的数量均为4个进行图示,但不构成限定。在本实施例中,上游端口10a为物理端口。优选地,一个交换设备10隶属于1个主机节点11。在本申请实施例中,若一个交换设备10的上游端口(Upstream Port,us port)10a与1个主机节点11连接,则可理解为:该交换设备10隶属于与其上游端口10a连接的该主机节点11。
在本实施例中,多个交换设备10之间互联。其中,多个交换设备10可通过其网络接口10c进行互联。网络接口10c的数量可以为1个或多个。如图1b所示,互联控制(FabricController,FC)芯片可向外扩展至少一个网络接口,该网络接口可为自定义的高速互联总线(Fabric Interconnect,FI)接口。可选地,FI接口可为1个或多个。例如,可以为2个、3个、5个、8个等等。
在本实施例中,多个交换设备10之间进行互联,可实现不同交换设备之间的网络通信。在本申请实施例中,不限定交换设备10之间进行网络通信所采用的网络协议。可选地,交换设备10之间可基于以太网通信协议、蓝牙协议、WiFi协议或移动网络进行通信。相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。或者,交换设备10之间也可采用一些定制的非标准网络协议进行通信。对于定制的非标准网络协议,可根据本申请实施例提供的网络***的通信需求,定制一些包含必需字段的网络协议,减少无用字段的开销,这样无需按照现有标准网络协议(如以太网协议)的规定,有助于减少无用字段的开销,从而有助于降低后续通信时对通信带宽的占用,进而有助于提高通信效率。
其中,在交换设备10之间采用一些定制的非标准网络协议进行通信时,不限定通信带宽。例如,交换设备10上的网络接口可采用100G的高速定制网络接口等。
在本实施例中,多个交换设备10之间可两两进行直接互联,也可通过其它交换设备进行间接互联。其中,其它交换设备的数量可以为1个或多个。例如,交换设备A和交换设备B可直接进行互联,也可通过另一交换设备C进行互联,设置可通过更多的其它交换设备进行互联。其中,主机节点11和交换设备10的数量不同,交换设备12之间的互联方式有所差别。下面以交换设备10和主机节点11的数量分别为2~64个进行示例。
如图1b所示,主机节点11和交换设备10的数量可以为2~64个。在图1b中,交换设备10以FC芯片进行示例,并以黑点表示。其中,主机节点11和交换设备10的数量相同。在图1b中,交换设备10又称为节点(Node)。基于每个节点中交换设备与交换设备之间的互联,可构建2~64个节点(Node)的网络互联***。如图1b所示,对于2个、4个和8个节点的网络***,节点与节点之间的交换设备可通过网络接口(FI)进行直接互联。相应地,在2个、4个和8个节点的网络***,任一主机节点访问其它节点中的交换设备的路径长度均为1跳步(Hop)。对于16个、32个和64个节点的网络***,网络***每8个节点可组成一个分区,该分区内任意节点之间的交换设备直接互联;每个节点的交换设备可各出一个网络接口用于连接另一分区内的对应节点的交换设备。例如,对于16个节点的网络***,分区A中的节点A1中的交换设备与分区B中的节点B1中的交换设备之间直接互联;分区A中的节点A2中的交换设备与分区B中的节点B1中的交换设备之间间接互联。这样,主机节点访问同一分区内的其他节点中的交换设备的路径均为1跳步;当任意一个主机节点需要访问其他分区内的非直联交换设备时,需要经由同一分区内与该主机节点的交换设备直联的交换设备进行中继转发,到达目标分区后,再由中继交换设备根据其隶属节点的互联情况决定是否进行最后一级转发。其中,对于16个节点的网络***,最长路径长度为2跳步;对于32个节点和64个节点的网络***,最长路径长度为3跳步。
在本实施例中,主机节点11可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,主机节点11也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
在本实施例中,每台交换设备10还包括:下游物理端口10b1和网络接口10c。其中,下游物理端口10b1挂载有资源设备12。在本申请实施例中,下游物理端口10b1挂载有资源设备12应理解为:下游物理端口10b1直接与资源设备12连接,即下游物理端口10b1和资源设备12在物理上连接。其中,对于一台交换设备10,其网络接口10c可以为1个或多个。多个指2个或2个以上。例如,网络接口10c可以为4个、6个或8个等等。对于一台交换设备10,其下游物理端口10b1可以为1个或多个。当一台交换设备10的下游物理端口10b为多个时,至少存在一个下游物理端口与资源设备12直接相连,即一台交换设备10的多个下游物理端口中至少存在一个下游物理端口挂载有资源设备12。
在本申请实施例中,不限定资源设备12的实现形式。资源设备12可提供计算资源和/或存储资源。在一些实施例中,资源设备12可提供计算资源。例如,资源设备12可包括:处理器及其***电路。其中,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(Programmable Array Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或***芯片(Systemon Chip SOC)等等,但不限于此。
在本实施例中,交换设备10可以为独立的物理机,也可为部署于主机节点11上的交换开关。交换设备10可由芯片实现,即在芯片内实现具有上游端口和下游端口的交换开关。例如,如图1c所示,交换设备10和主机节点11可部署于同一物理机中。交换设备10可实现为主机节点11中的互联控制(Fabric Controller,FC)芯片(图1c中黑色正方形所示)。如图1c所示,FC芯片可被虚拟为具有交换机功能的交换设备。
在本实施例中,交换设备10为PCIE交换机、PCI交换机、USB交换机、SATA交换机或SAS交换机等等。其中,交换设备10的上下游端口的类型与交换设备的类型相同,且上下游端口遵循相应的串行接口协议。例如,若交换设备10为PCIE交换机,则PCIE交换机的上下游端口均为PCIE端口,遵循PCIE协议;若交换设备10a为USB交换机,则USB交换机的上下游端口均为USB端口,遵循USB协议;等等。图1c中仅以交换设备10为FC芯片为例进行示例性说明。在图1c中,FC芯片具有交换机功能,且位于主机节点所在的物理机内部。其中,在图1c中,主机节点为物理服务器的处理器,RC(图1c中黑色就矩形所示)位于处理器内部,FC芯片可实现为PCIE交换机。即在图1c中,交换设备10为FC芯片,上下游端口均为PCIE端口,相应地,资源设备为PCIE设备(PCIE EP)。
对于多个主机节点11,可通过多个交换设备10的互联而实现互联。基于上述网络***架构,多个主机节点11通过多个交换设备10实现互联,在物理结构上,多个主机节点11与多个交换设备10的下游物理端口10b1挂载的资源设备12存在连接关系。但是,按照标准协议的规定,交换设备10所挂载的资源设备只能隶属于该交换设备的上游端口10a所连接的主机节点,不能被其它主机节点所访问。例如,按照PCIE标准协议的规定,主机节点只能访问与其根组件连接的交换设备下挂载的资源设备,而无法访问其它主机节点的根组件连接的交换设备下挂载的资源设备。
在本实施例中,为了解决上述问题,实现主机节点与其它主机节点的根组件连接的交换设备下挂载的资源设备之间的通信,引入端口虚拟化技术。即如图1d所示,对于交换设备10来说,可设置至少一个下游虚拟端口10b2。其中,下游虚拟端口的数量不做限定,可以为1个或多个。在本申请实施例中,不限定实现端口虚拟化的具体实施方式,下面以交换设备10为PCIE交换设备为例,进行示例性说明。
如图1d所示,可在交换设备10中设置多级PCI到PCI(PCI-to-PCI,P2P)桥,多级P2P桥构成树形拓扑结构。多级是指2级或2级以上。图1d仅以P2P桥为2级进行示出。在本申请实施例中,P2P桥的级数是指:PCIE数据总线下连接的P2P桥的级数。如图1d所示,多级P2P桥的根节点被配置为交换设备10的上游端口(us port),上游端口一端与主机的根组件(RC)连接,另一端与PCIE数据总线(bus1)连接。在图1d中,主机节点11以物理机的CPU和上层操作***(OS)以及上层应用(APP)进行图示,根组件(RC)位于物理机的CPU内。
在本实施例中,每一级均由若干P2P桥组成,且不限定每级P2P桥的数量,每个P2P桥向下最多拓展16个P2P桥。也就是说,根节点P2P桥下面的第一级P2P桥最多包含16个P2P桥,相应地,第二级P2P桥最多包含256个P2P桥。图1d中仅以第一级P2P桥包含8个P2P桥,第二级P2P桥包含128个P2P桥示出。
在本实施例中,多级P2P桥的多个叶节点被配置为交换设备的多个下游端口(Downstream Port,ds port),可用于连接PCIE资源设备。其中,多级P2P桥的叶节点是指多级P2P桥中的最后一级P2P桥。因此,对于图1d所示的交换设备,最多可连接128个资源设备。
图1d所示的P2P桥形成两级交换,其中,第一级交换包含1个根节点US-P2P桥(连接RC和处理器)和第一级P2P桥,其中第一级P2P桥为8个中间P2P(Mid-P2P)桥;第二级交换由前一级的Mid-P2P桥和其下挂载的16个DS-P2P桥(连接PCIe EP设备)构成,因此每个交换设备最大可构建128个PCIe EP设备的PCIe互联***。
进一步,考虑到交换设备10所在物理机的机框尺寸的限制,交换设备10上可设置的下游物理端口10b1的数量是有限的,进而交换设备10下挂载的资源设备的数量也是有限的。在本实施例中,为了增加交换设备10下连接的资源设备的数量,且不增加物理机框尺寸的前提下,对于交换设备10的多个下游端口,可配置为下游物理端口10b1和下游虚拟端口10b2。下游物理端口10b1和下游虚拟端口10b2的数量不做限定。下游物理端口10b1可以为1个或多个,其数量可由交换设备所在的物理机的机框尺寸所决定。下游虚拟端口10b2也可为1个或多个,其数量可由交换设备所隶属的主机节点对资源的需求来确定。在本实施例中,交换设备所隶属的主机节点可通过下游虚拟端口10b2,访问其它交换设备下挂载的资源设备。
下面对主机节点11如何对挂载于其它主机节点的交换设备下的资源设备进行访问进行具体说明。
在本实施例中,下游物理端口10b1可挂载资源设备12,即下游物理端口10b1直接与资源设备12连接。交换设备10的下游虚拟端口10b2可形成与其它交换设备的下游物理端口10b1的映射关系。这样,便可建立挂载于其它交换设备的下游物理端口10b1的资源设备12和本交换设备10的下游虚拟端口10b2的连接关系。对于本交换设备10所连接的主机节点11来说,通过隶属于该主机节点11的交换设备10的下游虚拟端口10b2,可获取隶属于其它主机节点的交换设备所挂载的资源设备的使用权限。主机节点11基于主机节点与资源设备之间的使用权限关系,可实现主机节点11与隶属于其它主机节点的交换设备所挂载的资源设备之间的通信。
在本实施例中,主机节点与隶属于其它主机节点的交换设备所挂载的资源设备之间的通信方式相同。下面以第一主机节点111为例,对通信过程进行示例性说明。其中,第一主机节点111为网络***中的任一主机节点,且第一主机节点111具有使用权限的资源设备,包括:隶属于其它主机节点的交换设备下挂载的资源设备。为了便于描述和区分,将隶属于第一主机节点111的交换设备101,定义为第一交换设备101。
在本实施例中,第一主机节点111和第一交换设备101之间通过第一交换设备101的上游端口10a连接,上游端口10a为串行接口,遵循串行接口协议。关于串行接口和串行接口协议的表述,可参见上述对交换设备10的类型的相关内容,在此不再赘述。
第一主机节点111与资源设备之间的通信通过报文(又可称为数据包)进行传输。如图1a和图1e所示,第一主机节点111向第一交换设备101提供的报文遵循串行接口协议。为了便于描述和区分,将第一主机节点111向第一交换设备101提供的报文,定义为第一报文。第一报文用于访问资源设备,包含有资源设备标识。其中,第一报文的格式遵循串行接口协议的规定。可选地,若串行接口为PCIE接口,则遵循PCIE协议的第一报文为TLP报文。
在本实施例中,若资源设备标识对应的目标资源设备为第一交换设备10的下游物理端口10b1挂载的资源设备,第一主机节点11可直接访问资源设备。即第一交换设备10将第一报文转发给下游物理端口10b1下挂载的资源设备。
若资源设备标识对应的目标资源设备为其它交换设备的下游物理端口10b1挂载的资源设备,则由于第一报文为遵循串口协议的报文,无法直接进行网络传输。为了解决该问题,在本实施例中,第一交换设备101可对第一报文进行协议转换。具体实施方式为:第一交换设备101根据主机节点与资源设备之间的使用权限关系以及第一报文包含的资源设备标识,将第一报文转换成遵循网络协议的第二报文。其中,关于网络协议的描述,可参见上述实施例交换设备10之间进行网络通信的相关内容。
进一步,第一交换设备101通过与其它交换设备之间互联的网络,将第二报文提供给挂载资源设备标识对应的目标资源设备的其它交换设备。为了便于描述和区分,将挂载目标资源设备的其它交换设备,定义为第二交换设备102。
如图1a和图1e所示,对于第二交换设备102,可接收第二报文,并从第二报文中协议出第一报文。之后,第二交换设备102可将第一报文转发给其下游物理端口挂载的目标资源设备。目标资源设备可对第一报文进行响应,进而实现了第一主机节点111对第二交换设备102下挂载的资源设备的访问。
对于目标资源设备,可对第一报文进行响应,并向第一主机节点返回状态响应报文。该状态响应报文同样遵从串行接口协议。为了便于描述和区分,将状态响应报文,定义为第三报文。第二交换设备102接收第三报文,并将第三报文转换成遵循网络协议的第四报文。进一步,第二交换设备102通过与第一交换设备101互联的网络,将第四报文发送给第一交换设备101。相应地,第一交换设备101从第四报文中解析出第三报文,并将第三报文转发给第一主机节点111,从而实现了第二交换设备102下挂载的资源设备与第一主机节点111之间的通信。
在上述实施例中,第一交换设备101和第二交换设备102对报文进行协议转换的过程,以及第一交换设备101和第二交换设备102之间进行网络报文的传输过程,对于主机节点和目标资源设备是透明的。即主机节点和目标资源设备对第一交换设备101和第二交换设备102对报文进行协议转换的过程,以及第一交换设备101和第二交换设备102之间进行网络报文的传输过程是无感知的。
本实施例提供的网络***,交换设备增设有下游虚拟端口,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机的交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,从而实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。
在本申请实施例中,不限定第一交换设备101将第一报文转换成遵循网络协议的第二报文的具体实施方式。在一些实施例中,第一交换设备101可将第一报文封装成第二报文。在本实施例中,第一交换设备101可根据主机节点与资源设备之间的使用权限关系以及第一报文包含的资源设备标识,确定第二交换设备102的标识和目标资源设备的端口标识;根据资源设备标识和网络***的拓扑结构,确定第一交换设备101到第二交换设备102的路由信息。之后,第一交换设备101将第一交换设备101和第二交换设备102的标识、目标资源设备的端口标识以及路由信息作为报文头字段,并将第一报文作为数据字段进行封装,进而得到第二报文。
可选地,第一交换设备101可将第一交换设备101和第二交换设备102的标识,分别作为源节点标识字段和目标节点标识字段;将目标资源设备的端口标识作为目标端口标识字段,并将路由信息作为路由字段;以及将第一报文作为数据字段进行封装,进而得到第二报文。
其中,网络协议不同,第二报文和第四报文的格式也不同。下面以图1f所示的报文格式为例,进行示例性说明。如图1f所示,假设网络***为PCIE网络***架构,串行接口协议为PCIE协议,相应地,遵循PCIE协议的报文可为TLP报文。如图1f所示,TLP报文包括:TLP头部字段以及TLP数据字段。TLP数据字段包括:数据负荷(Data Payload)字段和ECRC字段。ECRC字段是指由事务层产生的循环冗余校验(Cyclic Redundancy Check,CRC)校验位。进一步,如图1f所示,可在TLP报文格式的基础上增加网络协议报文的报文头字段。其中,网络协议报文的报文头字段可包括以下几部分:
(1)源节点字段SRC[15:0]:由两部分组成,即{SNID[11:0],HSID[3:0]}。其中,NID[11:0]:指报文源节点标识(Source Node ID,NID),在本申请实施例中,源节点可为源交换设备的标识,HSID[3:0]是指主机ID(Host ID)/插槽ID(Slot ID),用作Slot ID时指示资源设备所在交换设备的插槽位置,即资源设备的端口标识;用作Host ID时为0。其中,若报文是主机节点访问资源设备而发出的报文,HSID[3:0]用作Host ID,设置为0;若报文是资源设备发出的报文,HSID[3:0]用作Slot ID,指示资源设备所在的插槽位置,也可称为资源设备的端口标识。例如,本申请实施例中,对于第二报文来说,第二报文是第一主机节点111访问目标资源设备的报文,则第二报文的NID[11:0]可为第一交换设备101的标识,HSID[3:0]用作Host ID,设置为0。对于第四报文来说,第四报文是目标资源设备向第一主机节点111返回的报文,则NID[11:0]可为第二交换设备101的标识,HSID[3:0]用作Slot ID,可设置为目标资源设备在第二交换设备101的插槽位置,也可称为目标资源设备的端口标识。
(2)目标节点字段DST[15:0]:由两部分组成,即{DNID[11:0],HSID[3:0]}。DNID[11:0]是指报文目标节点标识(Destination Node ID,DNID)。在本实施例中,目标节点标识可为目标交换设备的标识。HSID[3:0]是指主机ID(Host ID)/插槽ID(Slot ID),用作Slot ID时指示资源设备所在交换设备的插槽位置,即资源设备的端口标识;用作Host ID时为0。其中,若交换设备接收到的报文是其它主机节点访问本交换设备下挂载的资源设备而发出的报文,HSID[3:0]用作Slot ID,指示资源设备所在的插槽位置,也可称为资源设备的端口标识;若交换设备接收到的报文是资源设备向主机节点发出的报文,HSID[3:0]用作Host ID,设置为0。例如,对于第二报文来说,第二报文是第一主机节点111访问目标资源设备的报文,则第二报文的DNID[11:0]可为第二交换设备101的标识,HSID[3:0]用作SlotID,设置为目标资源设备在第二交换设备101上的插槽位置,即目标资源设备的端口标识。对于第四报文来说,第四报文是目标资源设备向第一主机节点111返回的报文,则NID[11:0]可为第一交换设备101的标识,HSID[3:0]用作Host ID,可设置为0。
(3)路由字段ROUTE[31:0]:由三部分组成,即{FH[7:0],LH[7:0],RFR[15:0]}。其中,FH[7:0]:第一跳(First Hop)端口号,可采用位向量(bit vector)格式表示;LH[7:0]:最后一跳(Last Hop,)端口号,可采用位向量格式表示;RFR[15:0]:Rest Field ofRouting,是指第2~3跳端口号,也可采用位向量格式进行表示。
值得说明的是,上述网络协议报文格式各字段所占的位数均为示例性说明,并不构成限定。另外,路由字段所占的位数可根据网络***最长路由路径的跳步进行确定。例如,图1b所示,本申请实施例提供的网络***可包括32个节点,路由路径最长为3跳步,所以在图1f中将路由字段定义为32位,但不限于于此。
基于上述网络***架构和网络工作原理可知,对于主机节点11来说,其具有使用权限的资源设备不一定全部挂载于隶属于该主机节点11的交换设备的下游物理端口;当然,对于主机节点11来说,隶属于该主机节点11的交换设备10的下游物理端口10a挂载的资源设备12,也不一定归该主机节点11所使用,即主机节点11不一定对隶属于自己的交换设备10的下游物理端口10a挂载的资源设备12具有使用权限。为了为多个主机节点11配置其具有使用权限的资源设备,如图1e所示,本申请实施例提供的网络***还可包括:管理设备13。相应地,管理设备13可为多个主机节点11配置其具有使用权限的资源设备12。图1e中仅以主机节点11为第一主机节点111和第二主机节点112进行示出。第二主机节点112为第二交换设备102的上游端口10a直接连接的主机节点。
可选地,管理设备13可提供人机交互界面,由用户为多个主机节点11配置具有使用权限的资源设备12。或者,管理设备13也可自动为多个主机节点11配置具有使用权限的资源设备12。可选地,管理设备13可根据多个主机节点11对资源的需求以及多个主机节点11对当前具有使用权限的资源设备的使用情况,为多个主机节点11动态配置具有使用权限的资源设备12。
可选地,管理设备13可监测多个主机节点11对当前分配到的资源设备12的使用情况以及对资源的需求情况,并在监测到需要重新对多个主机节点11需要重新进行资源设备配置的情况下,为多个主机节点11按需配置具有使用权限的资源设备12。例如,若管理设备13监测到多个主机节点11至少存在一个主机节点A对资源需求增加,且主机节点A当前分配到的资源设备12不能满足主机节点A对资源的需求;而多个主机节点11中除主机节点A之外存在至少一个主机节点B对当前分配到的资源设备12并未完全占用,则管理设备13可重新对多个主机节点11重新进行资源设备的配置,例如,管理设备13可将主机节点B具有使用权限但未使用的资源设备12分配给主机节点A使用。
对于一个主机节点11来说,其分配到的具有使用权限的资源设备12可能全部挂载于隶属于自己的交换设备10的下游物理端口,也可能全部挂载于隶属于其它主机节点的交换设备的下游物理端口;或者部分挂载于隶属于自己的交换设备10的下游物理端口,其余部分挂载于隶属于其它主机节点的交换设备的下游物理端口。在本申请实施例中,为了便于描述和区分,将具有使用权限的资源设备包含隶属于其它主机节点的交换设备的下游物理端口挂载的资源设备的主机节点,定义为目标主机节点,并将隶属于目标主机节点的交换设备,定义为目标交换设备。即对于任一目标主机节点来说,其具有使用权限的资源设备包括:除目标交换设备之外的其它交换设备的下游物理端口挂载的资源设备。
进一步,若管理设备13为主机节点11分配到的具有使用权限的资源设备包括隶属于其它主机节点的交换设备下挂载的资源设备,即多个主机节点11中至少存在一个目标主机节点,则管理设备13还可记录隶属于目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系。进一步,管理设备13还可将该映射关系提供给多个交换设备10。在本申请实施例中,不限定交换设备10存储交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系的存储形式。可选地,交换设备10可以表项、文档或键值对等形式存储目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系。
进一步,管理设备13为多个主机节点11配置资源设备的过程中,还可记录主机节点与资源设备的使用权限关系,并将该使用权限关系提供给多个交换设备10。在这种应用场景下,主机节点与资源设备的使用权限关系可包括:目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系。进一步,该映射关系可表示为:目标交换设备的标识和其它交换设备的标识之间的对应关系,以及目标交换设备的下游虚拟端口的标识和其它交换设备的下游物理端口的标识之间的对应关系。
可选地,在网络***启动时,管理设备13可为网络***中的多个交换设备10配置交换设备标识,并为多个交换设备的下游物理端口和下游虚拟端口配置端口标识。管理设备13可获取网络***的拓扑结构,并将网络***的拓扑结构提供给多个交换设备10。对于管理设备13来说,交换设备10的下游物理端口下是否挂载有资源设备是已知的,这样管理设备13才可对多个主机节点11进行资源配置。
进一步,管理设备13为多个主机节点11配置资源设备完成后,可指示多个主机节点11进行设备枚举。或者,在另外一些设备枚举触发事件下,交换设备10自动对其所隶属的主机节点11具有使用权限的资源设备进行枚举。下面对本申请实施例提供的设备枚举过程进行示例性说明。
在本申请实施例中,多个主机节点11进行设备枚举的目的是为了发现其具有使用权限的资源设备。设备枚举过程包括:确定主机节点11具有使用权限的资源设备以及为主机节点11具有使用权限的资源设备进行资源配置。
在本申请实施例中,主机节点11在进行设备枚举之前并不知道其具有使用权限的资源设备12有哪些,也不知道其具有使用权限的资源设备连接于隶属于该主机节点11的哪个下游端口。基于此,主机节点11在设备枚举过程中,可遍历隶属于该主机节点11的交换设备10的下游端口10b。对于交换设备10来说,可响应于设备枚举触发事件,根据上述目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,确定该交换设备10所隶属的主机节点具有使用权限的资源设备;并根据该交换设备10所隶属的主机节点对应的应用需求,对主机节点11具有使用权限的资源设备进行资源配置。
可选地,基于上述管理设备13为多个主机节点11动态配置具有使用权限的资源设备的过程,可知交换设备10中维护有目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系。基于此,交换设备10可根据目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,确定交换设备所隶属的主机节点11具有使用权限的资源设备。进一步,交换设备10所隶属的主机节点可为其具有使用权限的资源设备配置标识信息。
其中,在不同的枚举场景下,设备枚举触发事件不同。下面结合几种枚举场景对设备枚举触发事件进行示例性说明。
枚举场景1:交换设备10可设置枚举周期,并启动定时器或计数器对枚举周期进行计时,并在枚举周期到达时,确定该交换设备10所隶属的主机节点具有使用权限的目标资源设备。相应地,设备枚举触发事件为到达枚举周期。
枚举场景2:交换设备10可监测存储的主机节点与资源设备之间的使用权限关系,当监测到主机节点与资源设备之间的使用权限关系发生变化时,确定该交换设备10所隶属的主机节点具有使用权限的目标资源设备。相应地,设备枚举触发事件为监测到主机节点与资源设备之间的使用权限关系发生变化。
枚举场景3:管理设备13可在每次为多个主机节点11配置具有使用权限的资源设备之后,指示多个主机节点11进行设备枚举。相应地,主机节点11可向隶属于该主机节点11的交换设备10发送枚举配置命令。交换设备10接收该枚举配置命令,并响应于该枚举配置命令,确定该交换设备10所隶属的主机节点具有使用权限的目标资源设备。相应地,设备枚举触发事件为接收到该交换设备10所隶属的主机节点发送的枚举配置命令。进一步,主机节点11进行设备枚举的过程可理解为对隶属于该主机节点11的交换设备10的下游端口10b进行遍历的过程。可选地,主机节点11在进行设备枚举时,可向隶属于该主机节点11的交换设备10发送枚举配置命令,依次遍历主机节点11的下游端口10b。可选地,主机节点11可每次遍历交换设备10的一个下游端口10b,即主机节点11每发出一个枚举配置命令,对应遍历交换设备10的一个下游端口10b。枚举配置命令可包括待枚举的目标下游端口的标识。其中,下游端口的标识为唯一标识一个下游端口的信息。
无论上述哪种枚举场景,第一主机节点111均可根据每个目标交换设备的下游虚拟端口与除该目标交换设备之外的其它交换设备的下游物理端口之间的映射关系,扫描第一主机节点111具有使用权限的资源设备;并为第一主机节点111具有使用权限的资源设备配置资源设备标识。
每个交换设备进行枚举的过程相同。下面以仍第一交换设备101为例,对设备枚举过程进行示例性说明。其中,第一交换设备为多个交换设备10中的任一交换设备。
对于第一交换设备101,第一交换设备101可对接收到的枚举配置命令进行解析,获取枚举配置命令包含的待枚举的目标下游端口的标识;并目标下游端口的标识,确定目标下游端口为下游物理端口还是下游虚拟端口;若目标下游端口为下游物理端口,则根据每个目标交换设备的下游虚拟端口与除该目标交换设备之外的其它交换设备的下游物理端口之间的映射关系,确定目标下游端口是否对应有其它交换设备的下游虚拟端口;若判断结果为是,则确定第一主机节点111对目标下游端口下挂载的资源设备无使用权限;相应地,若判断结果为否,则确定第一主机节点111对目标下游端口下挂载的资源设备有使用权限。进一步,若目标下游端口为下游虚拟端口,则根据每个目标交换设备的下游虚拟端口与除该目标交换设备之外的其它交换设备的下游物理端口之间的映射关系,确定目标下游端口是否对应有其它交换设备的下游物理端口,若判断结果为是,则确定第一主机节点111对目标下游端口所对应的其它交换设备的下游物理端口下挂载的资源设备具有使用权限;相应地,若判断结果为否,则确定第一主机节点111对目标下游端口所对应的其它交换设备的下游物理端口下挂载的资源设备无使用权限。
进一步,在第一主机节点111对目标下游端口连接的资源设备具有使用权限的情况下,第一主机节点111可为目标下游端口连接的资源设备配置身份标识,便可标注资源设备的身份标识与目标下游端口的端口标识之间的对应关系。其中,第一主机节点111为资源设备配置的身份标识可为:总线-设备-功能(Bus、Device and Fuction,BDF)信息。第一主机节点111在为目标下游端口连接的资源设备配置完BDF信息之后,便可基于资源设备的BDF信息,对资源设备进行配置空间访问。相应地,第一主机节点111向第一交换设备101提供的第一报文可为配置空间(Configuration)访问报文。例如,交换设备10为PCIE交换设备,则配置报文可为配置空间(Configuration)TLP报文。主机节点11访问资源设备的配置空间,只需指定目标资源设备的BDF信息,不需要内存地址。基于此,配置报文包含的资源设备标识为目标资源设备的BDF信息。
对于第一交换设备101可根据第一报文包含的目标资源设备的BDF信息,确定目标资源设备在第一交换设备101上对应的目标下游虚拟端口的端口标识;进一步,第一交换设备101根据上述目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,确定目标下游虚拟端口对应的目标下游物理端口,并将目标下游物理端口的标识作为目标资源设备的端口标识,以及将目标下游物理端口所在的交换设备的标识作为第二交换设备103的标识。
确切地说,由于第一主机节点111在为目标下游端口连接的资源设备配置完BDF信息之后,可标注资源设备的BDF信息与目标下游端口的端口标识之间的对应关系,并把该对应关系提供给第一交换设备101。这样,第一交换设备101可将第一报文包含的资源设备的BDF信息,在资源设备的BDF信息与目标下游端口的端口标识之间的对应关系中进行匹配,确定目标资源设备在第一交换设备101上对应的目标下游虚拟端口的标识。进一步,第一交换设备101可根据上述目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,确定目标下游虚拟端口对应的目标下游物理端口,以及目标下游物理端口所在的第二交换设备102。
进一步,第一交换设备101可根据第一交换设备101和第二交换设备102的标识以及网络***的拓扑结构,确定第一交换设备101到第二交换设备102的路由信息。其中,网络***的拓扑结构包括:该网络***中的各设备的标识、名称、位置以及设备之间的连接关系等。其中,第一交换设备101到第二交换设备102的路由信息可包括从第一交换设备101到第二交换设备102的每一跳的端口标识。网络***的***架构不同,第一交换设备101到第二交换设备102的路由信息包含的跳数不同。例如,如图1b所示,在跨节点访问时,相邻直联节点路由信息可为1跳步(Hop),非直接相连节点之间的路由信息可为2跳步或3跳步。
在确定了第二交换设备的标识、目标资源设备所在的端口标识以及第一交换设备101到第二交换设备102的路由信息之后,第一交换设备101可将第一交换设备101和第二交换设备102的标识,分别作为源节点标识字段和目标节点标识字段;将目标资源设备的端口标识作为目标端口标识字段,并将路由信息作为路由字段;以及将第一报文作为数据字段进行封装,进而得到第二报文。
进一步,第一交换设备101可根据路由信息,将第二报文转发给第二交换设备102。第二报文的转发过程所经过的中继交换设备以及中继交换设备的数量,可由路由信息进行确定。
如图1a和图1e所示,第二交换设备102可接收第二报文,并从第二报文中解析出第一报文,之后将第一报文转发给资源设备标识对应的目标资源设备。根据上述实施例,第一报文为配置报文的情况下,目标资源设备可根据第一报文,配置地址空间,并返回第三报文。在该应用场景下,第三报文包含第一交换设备101的标识。相应地,第二交换设备102将第二交换设备102和第一交换设备101的标识,分别作为源节点标识字段和目标节点标识字段;将第一主机节点111的端口标识(第一交换设备101的上游端口的标识)作为目标端口标识字段,并将第二交换设备102到第一交换设备101的路由信息作为路由字段;以及将第三报文作为数据字段进行封装,进而得到第四报文。进一步,第二交换设备102根据第二交换设备102到第一交换设备101的路由信息,将第四报文转发给第一交换设备101。
对于第一交换设备101,可接收第四报文,并从第四报文中解析出第三报文。之后将第三报文通过上游端口10a转发至第一主机节点111。相应地,第一主机节点111接收第三报文,并为目标资源设备配置内存地址,并记录目标资源设备的地址空间和内存地址之间的映射关系。之后,第一主机节点111便可通过该内存地址映射关系,对第二交换设备102下挂载的目标资源设备进行内存访问。
基于上述分析,对于第一主机节点111具有使用权限的资源设备,第一主机节点111可为其具有使用权限的资源设备配置内存地址,并记录资源设备的空间地址与主机节点之间的内存地址之间的映射关系。由于第一主机节点111具有使用权限的资源设备,是第一主机节点111根据隶属于目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,进行设备扫描确定的。进一步,第一主机节点111为具有使用权限的资源设备配置内存地址,因此,资源设备的空间地址与主机节点之间的内存地址之间的映射关系,也可认为是第一主机节点111根据隶属于目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,为第一主机节点111具有使用权限的资源设备进行内存地址配置形成的。具体过程为:第一主机节点111根据隶属于目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系,进行设备扫描,确定第一主机节点111具有使用权限的资源设备,并为具有使用权限的资源设备配置内存地址,进而形成第一主机节点111具有使用权限的资源设备的空间地址与第一主机节点111的内存地址之间的映射关系。
在第一主机节点111对目标资源设备进行内存访问阶段,第一报文可为内存(Memory)访问报文。例如,交换设备10为PCIE交换设备,则第一报文为内存(Memory)TLP报文。主机节点与资源设备之间的使用权限关系可包括:资源设备的地址空间与主机节点的内存地址之间的映射关系。对于第一主机节点111来说,第一主机节点111与资源设备之间的使用权限关系,包括:第一主机节点111具有使用权限的资源设备的地址空间与第一主机节点111的内存地址之间的映射关系。
相应地,第一报文包含的资源设备标识可为目标资源设备在第一主机节点111的目标内存地址。基于资源设备的地址空间与主机节点的内存地址之间的映射关系,第一交换设备101可根据该映射关系,确定目标资源设备在第一主机节点111的目标内存地址对应的目标地址空间,并确定目标地址空间所属的资源设备,作为目标资源设备。进一步,第一交换设备101可确定目标资源设备所挂载的第二交换设备102以及所挂载于第二交换设备102上的端口,进而可确定第二交换设备102的标识和目标资源设备的端口标识。
进一步,第一交换设备101可根据第一交换设备101和第二交换设备102的标识以及网络***的拓扑结构,确定第一交换设备101到第二交换设备102的路由信息。路由信息的具体确定过程,可参见上述实施例的相关内容,在此不再赘述。
在确定了第二交换设备的标识、目标资源设备所在的端口标识以及第一交换设备101到第二交换设备102的路由信息之后,可将第一报文转换为遵循网络协议的第二报文,具体协议转换过程可参见上述实施例的相关内容,在此不再赘述。
进一步,第一交换设备101可根据路由信息,将第二报文转发给第二交换设备102。第二报文的转发过程所经过的中继交换设备以及中继交换设备的数量,可由路由信息进行确定。
第二交换设备102可接收第二报文,并从第二报文中解析出第一报文,之后将第一报文转发给资源设备标识对应的目标资源设备。根据上述实施例,第一报文为内存(Memory)访问报文的情况下,目标资源设备可根据第一报文反应的访问需求进行响应。
可选地,若第一报文为内存写(Memory Write)请求,内存写请求中包含待写入数据和待写入地址。对于目标资源设备可从第一报文中解析出待写入数据和待写入地址,并将待写入数据写入待写入地址对应的内存空间。可选地,对于内存写请求,目标资源设备可对第一主机节点111不进行回复,也可在将待写入数据写入内存空间后,向第一主机节点111返回状态响应报文。关于目标资源设备向第一主机节点111返回状态响应报文的描述,可参见上述实施例的相关内容,在此不再赘述。
可选地,若第一报文为内存读(Memory Read)请求,则目标资源设备根据内存读(Memory Read)请求所请求的数据标识,获取相关数据,并将获取的数据写入第三报文。
在该应用场景下,第三报文包含第一交换设备101的标识和请求的数据。相应地,第二交换设备102将第二交换设备102和第一交换设备101的标识,分别作为源节点标识字段和目标节点标识字段;将第一主机节点111的端口标识(第一交换设备101的上游端口的标识)作为目标端口标识字段,并将第二交换设备102到第一交换设备101的路由信息作为路由字段;以及将第三报文作为数据字段进行封装,进而得到第四报文。进一步,第二交换设备102根据第二交换设备102到第一交换设备101的路由信息,将第四报文转发给第一交换设备101。
对于第一交换设备101,可接收第四报文,并从第四报文中解析出第三报文。之后将第三报文通过上游端口10a转发至第一主机节点111。相应地,第一主机节点111接收第三报文,并为从第三报文中解析出所请求的数据。
在一些实施例中,交换设备10为PCIE交换设备,第一报文为TLP报文。对于TLP报文,可以有3种路由方式,分别是ID路由(ID Routing,即BDF Routing)、地址路由(AddressRouting,包括Memory和IO)以及模糊路由(Implicitly Routing)。对于上述配置空间访问报文,可采用ID路由方式;对于上述内存访问报文,可采用地址路由方式。对于模糊路由来说,第一报文为消息(Message)报文,主机节点11可以广播消息报文到其具有使用权限的每一个资源设备。
进一步,若第一报文为广播消息报文,则可主机节点与资源设备之间的使用权限关系包括:隶属于每个主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的映射关系。根据该映射关系,第一交换设备101可确定第一主机节点111具有使用权限的目标资源设备所在的第二交换设备102的标识、以及目标资源设备在第二交换设备102的下游物理端口的标识。在该应用场景下,第二交换设备102的数量可以为1个或多个,具体由管理设备11分配给第一主机节点111具有使用权限的资源设备的分布情况而定。例如,若管理设备11分配给第一主机节点111具有使用权限的资源设备包括:挂载于除第一交换设备101之外的其它交换设备的资源设备,且这些资源设备分布在N个其它交换设备上,则第二交换设备102的数量为N个。其中,N≥1,且N为整数。
之后,第一交换设备101可对第一报文进行协议转换,并将协议转换后形成的第二报文转发给N个第二交换设备102。关于第一交换设备101对第一报文进行协议转换和转发的过程,以及第二交换设备102对第二报文进行解析以及将第一报文转发给目标资源设备进行响应的过程均可参见上述实施例的相关内容,在此不再赘述。
除了上述***实施例之外,本申请实施例还提供通信方法,下面从交换设备的角度,对本申请实施例提供的通信方法进行说明。
图2为本申请实施例提供的一种通信方法的流程示意图。如图2所示,该方法包括:
201、获取第一交换设备所隶属的第一主机节点提供的第一报文;第一报文遵循串行接口协议,且包含资源设备标识。
202、根据主机节点与资源设备之间的使用权限关系以及资源设备标识,将第一报文转换成遵循网络协议的第二报文。
203、将第二报文提供给挂载资源设备标识对应的目标资源设备的第二交换设备,以供第二交换设备从第二报文中解析出第一报文并提供给目标资源设备进行响应。
在本实施例中,交换设备还与隶属于其它节点设备的交换设备互联。交换设备包括上游端口和下游端口。下游端口包括至少一个下游物理端口和至少一个下游虚拟端口。上游端口连接有交换设备所隶属的主机节点;下游物理端口挂载有资源设备。在本实施例中,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机节点的交换设备下挂载的资源设备的使用权限。其中,关于交换设备和其它交换设备所在的网络***的具体结构,可参见上述***实施例的相关内容,在此不再赘述。
在本实施例中,交换设备可为独立的物理机,也可为部署于该交换设备所隶属的主机节点的交换开关。交换设备可由芯片实现,即在芯片内实现具有上游端口和下游端口的交换开关。
对于多个主机节点,可通过多个交换设备的互联而实现互联。基于上述网络***架构,多个主机节点通过多个交换设备实现互联,在物理结构上,多个主机节点与多个交换设备的下游物理端口挂载的资源设备存在连接关系。但是,按照标准协议的规定,交换设备所挂载的资源设备只能隶属于该交换设备的上游端口所连接的主机节点,不能被其它主机节点所访问。例如,按照PCIE标准协议的规定,主机节点只能访问与其根组件连接的交换设备下挂载的资源设备,而无法访问其它主机节点的根组件连接的交换设备下挂载的资源设备。
在本实施例中,为了解决上述问题,实现主机节点与其它主机节点的根组件连接的交换设备下挂载的资源设备之间的通信,引入端口虚拟化技术。即对于交换设备来说,可设置至少一个下游虚拟端口。其中,下游虚拟端口的数量不做限定,可以为1个或多个。在本申请实施例中,不限定实现端口虚拟化的具体实施方式,具体可参见上述图1d及相关内容,在此不再赘述。
在本实施例中,下游物理端口可挂载资源设备,即下游物理端口直接与资源设备连接。交换设备的下游虚拟端口可形成与其它交换设备的下游物理端口的映射关系。这样,便可建立挂载于其它交换设备的下游物理端口的资源设备和本交换设备的下游虚拟端口的连接关系。因此,对于本交换设备所连接的主机节点来说,通过隶属于该主机节点的交换设备的下游虚拟端口,可获取隶属于其它主机节点的交换设备所挂载的资源设备的使用权限。主机节点基于主机节点与资源设备之间的使用权限关系,可实现主机节点与隶属于其它主机节点的交换设备所挂载的资源设备之间的通信。
在本实施例中,主机节点与隶属于其它主机节点的交换设备所挂载的资源设备之间的通信方式相同。下面以第一主机节点为例,对通信过程进行示例性说明。其中,第一主机节点为网络***中的任一主机节点,且第一主机节点具有使用权限的资源设备,包括:隶属于其它主机节点的交换设备下挂载的资源设备。为了便于描述和区分,将隶属于第一主机节点的交换设备,定义为第一交换设备。
在本实施例中,第一主机节点和第一交换设备之间通过第一交换设备的上游端口连接,上游端口为串行接口,遵循串行接口协议。关于串行接口和串行接口协议的表述,可参见上述对交换设备的类型的相关内容,在此不再赘述。
第一主机节点与资源设备之间的通信通过报文进行传输。第一主机节点向第一交换设备提供的报文遵循串行接口协议。为了便于描述和区分,将第一主机节点向第一交换设备提供的报文,定义为第一报文。第一报文用于访问资源设备,包含有资源设备标识。其中,第一报文的格式遵循串行接口协议的规定。可选地,若串行接口为PCIE接口,则遵循PCIE协议的第一报文为TLP报文。
在本实施例中,若资源设备标识对应的目标资源设备为第一交换设备的下游物理端口挂载的资源设备,第一主机节点可直接访问资源设备。即第一交换设备将第一报文转发给下游物理端口下挂载的资源设备。
若资源设备标识对应的目标资源设备为其它交换设备的下游物理端口挂载的资源设备,则由于第一报文为遵循串口协议的报文,无法直接进行网络传输。为了解决该问题,在本实施例中,第一交换设备可对第一报文进行协议转换。具体实施方式为:第一交换设备根据主机节点与资源设备之间的使用权限关系以及第一报文包含的资源设备标识,将第一报文转换成遵循网络协议的第二报文。其中,关于网络协议的描述,可参见上述实施例交换设备之间进行网络通信的相关内容。
进一步,第一交换设备通过与其它交换设备之间互联的网络,将第二报文提供给挂载资源设备标识对应的目标资源设备的其它交换设备。为了便于描述和区分,将挂载目标资源设备的其它交换设备,定义为第二交换设备。
对于第二交换设备,可接收第二报文,并从第二报文中协议出第一报文。之后,第二交换设备可将第一报文转发给其下游物理端口挂载的目标资源设备。目标资源设备可对第一报文进行响应,进而实现了第一主机节点对第二交换设备下挂载的资源设备的访问。
对于目标资源设备,可对第一报文进行响应,并向第一主机节点返回状态响应报文。该状态响应报文同样遵从串行接口协议。为了便于描述和区分,将状态响应报文,定义为第三报文。第二交换设备接收第三报文,并将第三报文转换成遵循网络协议的第四报文。进一步,第二交换设备通过与第一交换设备互联的网络,将第四报文发送给第一交换设备。相应地,第一交换设备从第四报文中解析出第三报文,并将第三报文转发给第一主机节点,从而实现了第二交换设备下挂载的资源设备与第一主机节点之间的通信。
在上述实施例中,第一交换设备和第二交换设备对报文进行协议转换的过程,以及第一交换设备和第二交换设备之间进行网络报文的传输过程,对于主机节点和目标资源设备是透明的。即主机节点和目标资源设备对第一交换设备和第二交换设备对报文进行协议转换的过程,以及第一交换设备和第二交换设备之间进行网络报文的传输过程是无感知的。
在本实施例中,交换设备增设有下游虚拟端口,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机的交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,从而实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。
在本申请实施例中,不限定第一交换设备将第一报文转换成遵循网络协议的第二报文的具体实施方式。在一些实施例中,第一交换设备可将第一报文封装成第二报文。在本实施例中,第一交换设备可根据主机节点与资源设备之间的使用权限关系以及第一报文包含的资源设备标识,确定第二交换设备的标识和目标资源设备的端口标识;根据资源设备标识和网络***的拓扑结构,确定第一交换设备到第二交换设备的路由信息。之后,第一交换设备将第一交换设备和第二交换设备的标识、目标资源设备的端口标识以及路由信息作为报文头字段,并将第一报文作为数据字段进行封装,进而得到第二报文。
可选地,第一交换设备可将第一交换设备和第二交换设备的标识,分别作为源节点标识字段和目标节点标识字段;将目标资源设备的端口标识作为目标端口标识字段,并将路由信息作为路由字段;以及将第一报文作为数据字段进行封装,进而得到第二报文。
在本实施例中,第二报文和第四报文均为网络协议报文。关于网络协议报文的格式的描述,可参见上述图1f的相关内容,在此不再赘述。
在一些实施例中,第一报文为配置空间访问报文。第一资源设备标识为所述目标资源设备的总线-设备-功能信息;所述主机节点与资源设备之间的使用权限关系包括:隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系。其中,目标主机节点具有使用权限的资源设备包括:除所述目标交换设备之外的其它交换设备下挂载的资源设备。
其中,目标资源设备的总线-设备-功能信息是所述第一主机节点根据所述第一映射关系配置的。关于交换设备如何获取第一映射关系以及第一主机节点为具有使用权限的资源设备配置BDF信息的具体实施方式,可参见上述实施例的相关内容,在此不再赘述。
对于配置空间访问报文,第一交换设备可根据所述目标资源设备的总线-设备-功能信息,确定所述目标资源设备在所述第一交换设备对应的目标下游虚拟端口的端口标识;根据所述第一映射关系,确定所述目标下游虚拟端口对应的目标下游物理端口;将所述目标下游物理端口的标识作为所述目标资源设备的端口标识,并将所述目标下端物理端口所在的交换设备的标识作为所述第二交换设备的标识。
在另一些实施例中,第一报文为内存访问报文;所述第一资源设备标识为目标资源设备在所述第一主机节点的目标内存地址;主机节点与资源设备之间的使用权限关系包括:资源设备的地址空间与主机节点的内存地址之间的第二映射关系。其中,第二映射关系是所述第一主机节点根据隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系,为所述第一主机节点具有使用权限的资源设备进行内存地址配置形成的。
相应地,第一交换设备在确定所述第二交换设备的标识和所述目标资源设备的端口标识时,可根据所述第二映射关系,确定所述目标内存地址对应的目标地址空间所属的资源设备,作为所述目标资源设备;并确定所述目标资源设备所在的交换设备的标识和所述目标资源设备的端口标识。
在本申请实施例中,第一交换设备也可实现为第二交换设备,即第一交换设备可接收第三交换设备转发的遵循网络协议的第六报文;第六报文是对第三交换设备所隶属的第三主机节点提供的第五报文封装形成的;第五报文遵循串行接口协议;并从第六报文中解析出第五报文;第五报文包含资源设备标识;将第五报文转发给第五报文包含的资源设备标识对应的资源设备进行响应。
相应地,本申请实施例还提供另一种通信方法,适用于交换设备。如图3所示,该通信方法包括:
301、接收其它交换设备转发的遵循网络协议的第二报文;其中,第二报文是其它交换设备对遵循串行接口协议的第一报文封装形成的。
302、从第二报文中解析出第一报文;并将第一报文转发给所隶属的主机节点或下游物理端口挂载的资源设备进行响应。
在本实施例中,第一报文是其它交换设备的下游物理端口挂载的目标资源设备或其它交换所隶属的主机节点提供的。
若第一报文是其它交换设备所隶属的主机节点提供的,则第一报文为访问报文,是其它交换设备所隶属的主机节点用于访问本交换设备的下游物理端口挂载的资源设备,所发出的报文。相应地,第一报文包含资源设备标识,则在步骤302中,将第一报文转发给交换设备的下游物理端口挂载的资源设备,该资源设备为资源设备标识对应的资源设备。对于这种情况下,本实施例的方法的执行主体可为上述***实施例中的第二交换设备,其它交换设备可为上述***实施例的第一交换设备,因此,关于该情况下,步骤301和302的具体描述,可参见上述实施例对于第一交换设备和第二交换设备进行描述的相关内容,在此不再赘述。
若第一报文是其它交换设备的下游物理端口挂载的资源设备提供的,则第一报文为响应报文,相当于上述实施例中的第三报文。相应地,在步骤302中,将第一报文转发给本交换设备所隶属的主机节点。对于这种情况下,本实施例的方法的执行主体可为上述***实施例中的第一交换设备,其它交换设备可为上述***实施例的第二交换设备,因此,关于该情况下,步骤301和302的具体描述,可参见上述实施例对于第一交换设备和第二交换设备进行描述的相关内容,在此不再赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201和202的执行主体可以为设备A;又比如,步骤201的执行主体可以为设备A,步骤202的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述图2和/或图3所示方法中的步骤。
图4为本申请实施例提供的一种交换设备的结构示意图。如图4所示,该交换设备包括:存储器41、处理器42和通信组件43。通信组件43包括:网络接口43a、上游端口43b以及下游物理端口43c和下游虚拟端口43d;上游端口43b用于连接交换设备所隶属的节点设备;下游物理端口43c用于连接资源设备;网络接口43a用于与其它交换设备通信连接。
存储器41用于存储计算机程序。处理器42耦合至存储器41,用于执行计算机程序以用于:通过上游端口43a获取交换设备所隶属的主机节点提供的第一报文;第一报文遵循串行接口协议,且包含第一资源设备标识;根据主机节点与资源设备之间的使用权限关系以及第一资源设备标识,将第一报文转换成遵循网络协议的第二报文;并通过网络接口43a将第二报文提供给挂载第一资源设备标识对应的目标资源设备的目标交换设备,以供目标交换设备从第二报文中解析出第一报文并提供给目标资源设备进行响应;其中,交换设备所隶属的主机节点对目标资源设备的使用权限是通过交换设备的下游虚拟端口43d实现的。
可选地,处理器42还用于:通过网络接口43a接收第二交换设备转发的遵循网络协议的第四报文;第四报文为第二交换设备根据第一交换设备的标识对第三报文封装形成的;第三报文为目标资源设备对第一报文进行响应返回的;从第四报文中解析出第三报文;并通过上游端口43b将第三报文转发给交换设备所隶属的主机节点。
可选地,串行接口协议为PCIE协议,第一报文为TLP报文。第三报文也为TLP报文。
在一些实施例中,处理器42在将第一报文转换成遵循网络协议的第二报文时,具体用于:根据主机节点与资源设备之间的使用权限关系以及第一资源设备标识,确定目标交换设备的标识和目标资源设备的端口标识;根据交换设备和目标交换设备的标识以及网络***的拓扑结构,确定交换设备到目标交换设备的路由信息;将交换设备和目标交换设备的标识、目标资源设备的端口标识以及路由信息作为报文头字段,并将第一报文作为数据字段进行封装,以得到第二报文。
相应地,处理器42在将第二报文提供给目标交换设备时,具体用于:按照路由信息,由网络接口43a将第二报文转发至目标交换设备。
进一步,处理器42在对第一报文进行封装时,具体用于:将第一交换设备和第二交换设备的标识分别作为源节点标识字段和目标节点标识字段;将目标资源设备的端口标识作为目标端口标识字段,并将路由信息作为路由字段;以及将第一报文作为数据字段进行封装,以得到第二报文。
在一些实施例中,第一报文为配置报文;第一资源设备标识为目标资源设备的总线-设备-功能信息;主机节点与资源设备之间的使用权限关系包括:隶属于每个目标主机节点的交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系;其中,目标主机节点具有使用权限的资源设备包括:除隶属于该目标主机节点的交换设备之外的其它交换设备下挂载的资源设备。
相应地,处理器42在确定目标交换设备的标识和目标资源设备的端口标识时,具体用于:根据目标资源设备的总线-设备-功能信息,确定目标资源设备在交换设备对应的目标下游虚拟端口;根据第一映射关系,确定目标下游虚拟端口对应的目标下游物理端口;将目标下游物理端口的标识作为目标资源设备的端口标识,并将目标下端物理端口所在的交换设备的标识作为目标交换设备的标识。
可选地,目标资源设备的总线-设备-功能信息是交换设备所隶属的主机节点根据第一映射关系配置的。
在另一些实施例中,第一报文为内存访问报文;第一资源设备标识为目标资源设备在第一主机节点的目标内存地址;主机节点与资源设备之间的使用权限关系包括:资源设备的地址空间与主机节点的内存地址之间的第二映射关系。其中,第二映射关系是第一主机节点根据隶属于每个目标主机节点的交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系,为第一主机节点具有使用权限的资源设备进行内存地址配置形成的。
相应地,处理器42在确定第二交换设备的标识和目标资源设备的端口标识时,具体用于:根据第二映射关系,确定目标内存地址对应的目标地址空间所属的资源设备,作为目标资源设备;并确定目标资源设备所在的第二交换设备的标识和目标资源设备的端口标识。
在其它一些实施例中,处理器42还用于:通过网络接口43c接收其它交换设备转发的遵循网络协议的第六报文;第六报文是对其它交换设备所隶属的主机节点提供的第五报文封装形成的;第五报文遵循串行接口协议;从第六报文中解析出第五报文;第五报文包含第二资源设备标识;通过下游物理端口43c将第五报文转发给第二资源设备标识对应的资源设备进行响应。可选地,第五报文为TLP报文。
值得说明的是,交换设备还可包括多级PCI到PCI桥(图4未示出,可参见上述图1d中的相关内容);其中,多级PCI到PCI桥的根节点被配置为上游端口;多级PCI到PCI桥的多个叶节点被配置为下游物理端口和下游虚拟端口。
在一些可选实施方式中,如图4所示,该计算机设备还可以包括:电源组件44等组件。图4中仅示意性给出部分组件,并不意味着交换设备必须包含图4所示全部组件,也不意味着交换设备只能包括图4所示组件。
本实施例提供的交换设备,增设有下游虚拟端口,主机节点可通过隶属于其的交换设备的下游虚拟端口,获取对隶属于其它主机的交换设备下挂载的资源设备的使用权限。对于交换设备,可获取所隶属的主机节点提供的遵循串行接口协议的第一报文;根据主机节点与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它交换设备,由其它交换设备从第二报文中解析出第一报文,并将第一报文提供给该交换设备下挂载的资源设备,从而实现了主机与隶属于其它主机的交换设备所挂载的资源设备之间的通信,进而实现了网络***的资源池化。
图5为本申请实施例提供的另一种交换设备的结构示意图。如图5所示,该交换设备包括:存储器51、处理器52和通信组件53。通信组件53包括:网络接口53a、上游端口53b和下游物理端口53c;上游端口53b用于连接交换设备所隶属的节点设备;下游物理端口53c用于连接资源设备;网络接口53a用于与其它交换设备通信连接。
存储器51用于存储计算机程序。处理器52耦合至存储器51,用于执行计算机程序以用于:通过网络接口53a接收其它交换设备转发的遵循网络协议的第二报文;第二报文是其它交换设备根据主机节点与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;从第二报文中解析出第一报文;并通过下游物理端口53c将第一报文转发给所隶属的主机节点或下游物理端口53c挂载的资源设备进行响应。
可选地,交换设备还可包括:下游虚拟端口53d。其中,交换设备所隶属的主机节点通过下游虚拟端口53d可访问其它交换设备下挂载的资源设备。具体实施方式可参见上述实施例的相关内容,在此不再赘述。
可选地,交换设备还可包括多级PCI到PCI桥(图5未示出,可参见上述图1d中的相关内容);其中,多级PCI到PCI桥的根节点被配置为上游端口;多级PCI到PCI桥的多个叶节点被配置为下游物理端口和下游虚拟端口。
在一些可选实施方式中,如图5所示,该计算机设备还可以包括:电源组件54等组件。图5中仅示意性给出部分组件,并不意味着交换设备必须包含图5所示全部组件,也不意味着交换设备只能包括图5所示组件。
本实施例提供的交换设备,可接收网络协议报文,并将网络协议报文转换成串行接口协议报文。之后将串行接口协议报文转发给对应的目标设备,从而为其它交换设备所隶属的主机节点对本端资源设备进行访问提供了基础,有助于实现资源共享。
图6为本申请实施例提供的一种交换设备的结构示意图。如图6所示,该交换设备包括:网络接口(图6未示出)和多级PCI到PCI桥;多级PCI到PCI桥的根节点被配置为交换设备的上游端口60a;多级PCI到PCI桥的多个叶节点被配置为交换设备的多个下游端口;多个下游端口包括至少一个下游物理端口60b1和至少一个下游虚拟端口60b2;
网络接口,用于与其它交换设备网络连接;上游端口60a用于连接主机节点;至少一个下游物理端口60b1用于挂载资源设备;至少一个下游虚拟端口60b2用于供主机节点访问其它交换设备下挂载的目标资源设备。其中,关于主机节点如何通过下游虚拟端口60b2访问其它交换设备下挂载的目标资源设备的具体实施方式,可参见上述实施例的相关内容,在此不再赘述。
本实施例提供的交换设备,基于多级PCI到PCI桥,扩展出多个下游端口,并将多个下游端口配置为下游物理端口和下游虚拟端口。对于主机节点而言,下游虚拟端口可用于访问其它交换设备下挂载的资源设备,从而形成了交换设备与其它交换设备下挂载的资源设备的逻辑上的连接关系,有助于在不改变交换设备所在的物理机框尺寸的情况下,增加交换设备所连接的资源设备的数量。
图7为本申请实施例提供的一种计算机设备的结构示意图。如图7所示,计算机设备包括:交换模块71以及与交换模块71的上游端口71a连接的主机模块72;交换模块还包括:网络接口71b、下游物理端口71c和下游虚拟端口(图7中未示出);下游物理端口71c用于连接资源设备43;网络接口71a用于与隶属于其它计算机设备的交换模块通信连接;
在本实施例中,主机模块72可为计算机设备的主机***,包括:中央处理器(Central Processing Unit,CPU)和/或虚拟化的中央处理器(Virtual CentralProcessing Unit,vCPU)。交换模块71可为部署于计算机设备中的交换开关。
交换模块71,用于:通过上游端口71a获取主机模块提供的第一报文;第一报文遵循串行接口协议,且包含资源设备标识;根据主机模块与资源设备之间的使用权限关系以及资源设备标识,将第一报文转换成遵循网络协议的第二报文;通过网络接口71b将第二报文提供给挂载资源设备标识对应的目标资源设备的目标计算机设备的交换模块,以供目标计算机设备的交换模块从第二报文中解析出第一报文并提供给目标资源设备进行响应;其中,主机模块对目标资源设备的使用权限是通过下游虚拟端口实现的。
可选地,交换模块71,还用于:通过网络接口71b接收目标计算机设备的交换模块发送的第四报文;第四报文目标资源设备对第一报文进行响应所返回的第三报文进行转换形成的,且遵循网络协议;第三报文遵循串行接口协议;从第四报文中解析出第三报文,并通过上游端口71a将第四报文转发给主机模块72。
可选地,串行接口协议为PCIE协议,第一报文为TLP报文。第三报文也为TLP报文。
在一些实施例中,交换模块71在将第一报文转换成遵循网络协议的第二报文时,具体用于:根据主机模块与资源设备之间的使用权限关系以及第一资源设备标识,确定目标计算机设备的交换模块的标识和目标资源设备的端口标识;根据交换模块71的标识、目标计算机设备的交换模块的标识以及网络***的拓扑结构,确定交换模块71到目标计算机设备的交换模块的路由信息;将交换模块71的标识、目标计算机设备的交换模块的标识、目标资源设备的端口标识以及路由信息作为报文头字段,并将第一报文作为数据字段进行封装,以得到第二报文。
相应地,交换模块71在将第二报文提供给目标计算机设备的交换模块时,具体用于:按照路由信息,由网络接口43a将第二报文转发至目标计算机设备的交换模块。
进一步,交换模块71在对第一报文进行封装时,具体用于:将第一交换模块和第二交换模块的标识分别作为源节点标识字段和目标节点标识字段;将目标资源设备的端口标识作为目标端口标识字段,并将路由信息作为路由字段;以及将第一报文作为数据字段进行封装,以得到第二报文。
在一些实施例中,第一报文为配置报文;第一资源设备标识为目标资源设备的总线-设备-功能信息;主机模块与资源设备之间的使用权限关系包括:隶属于每个第一计算机设备的交换模块的下游虚拟端口与其它计算机设备的交换模块的下游物理端口之间的第一映射关系;其中,第一计算机设备具有使用权限的资源设备包括:除第一计算机设备的交换模块之外的其它交换模块下挂载的资源设备。
相应地,交换模块71在确定目标计算机设备的交换模块的标识和目标资源设备的端口标识时,具体用于:根据目标资源设备的总线-设备-功能信息,确定目标资源设备在交换模块71上对应的目标下游虚拟端口;根据第一映射关系,确定目标下游虚拟端口对应的目标下游物理端口;将目标下游物理端口的标识作为目标资源设备的端口标识,并将目标下端物理端口所在的交换模块的标识,作为目标计算机设备的交换模块的标识。
可选地,目标资源设备的总线-设备-功能信息是主机模块72根据第一映射关系配置的。
在另一些实施例中,第一报文为内存访问报文;第一资源设备标识为目标资源设备在第一主机模块的目标内存地址;主机模块与资源设备之间的使用权限关系包括:资源设备的地址空间与主机模块72的内存地址之间的第二映射关系。其中,第二映射关系是主机模块72根据上述第一映射关系,为主机模块72具有使用权限的资源设备进行内存地址配置形成的。
相应地,交换模块71在确定目标计算机设备的交换模块的标识和目标资源设备的端口标识时,具体用于:根据第二映射关系,确定目标内存地址对应的目标地址空间所属的资源设备,作为目标资源设备;并确定目标资源设备所在的目标计算机设备的交换模块的标识以及目标资源设备的端口标识。
在其它一些实施例中,交换模块71还用于:通过网络接口71b接收其它交换模块转发的遵循网络协议的第六报文;第六报文是对其它交换模块所隶属的主机模块提供的第五报文封装形成的;第五报文遵循串行接口协议;从第六报文中解析出第五报文;第五报文包含第二资源设备标识;通过下游物理端口71c将第五报文转发给第二资源设备标识对应的资源设备进行响应。可选地,第五报文为TLP报文。
值得说明的是,交换模块还可包括多级PCI到PCI桥(图7未示出,可参见上述图1d中的相关内容);其中,多级PCI到PCI桥的根节点被配置为上游端口71a;多级PCI到PCI桥的多个叶节点被配置为下游物理端口71b和下游虚拟端口。
在一些可选实施方式中,该计算机设备还可以包括:电源组件(图7中未示出)等组件。图7中仅示意性给出部分组件,并不意味着计算机设备必须包含图7所示全部组件,也不意味着交换设备只能包括图7所示组件。
本实施例提供的计算机设备,其交换模块增设有下游虚拟端口,主机模块可通过隶属于其的交换设备的下游虚拟端口,获取对其它计算机设备中的交换模块下挂载的资源设备的使用权限。对于交换模块,可获取所隶属的主机模块提供的遵循串行接口协议的第一报文;根据主机模块与资源设备之间的使用权限关系,将第一报文转换成遵循网络协议的第二报文;之后,可将第二报文提供给其它计算机设备的交换模块,由其它计算机设备的交换模块从第二报文中解析出第一报文,并将第一报文提供给该计算机设备中的资源设备,从而实现了计算机设备与其它计算机设备中的资源设备之间的通信,进而为实现网络***的资源池化提供了基础。
图8为本申请实施例提供的另一种计算机设备的结构示意图。如图8所示,计算机设备包括:交换模块81以及与交换模块81的上游端口81a连接的主机模块82;交换模块还包括:网络接口81b和下游物理端口81c;下游物理端口81c用于连接资源设备43;网络接口81a用于与隶属于其它计算机设备的交换模块通信连接;
在本实施例中,主机模块82可为计算机设备的主机***,包括:中央处理器(Central Processing Unit,CPU)和/或虚拟化的中央处理器(Virtual CentralProcessing Unit,vCPU)。交换模块81可为部署于计算机设备中的交换开关。
交换模块81,用于:通过网络接口81b接收其它计算机设备的交换模块转发的遵循网络协议的第二报文;第二报文是其它计算机设备的交换模块根据主机模块与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;从第二报文中解析出第一报文;并将第一报文通过上游端口81a转发给主机模块进行响应或通过下游物理端口81c转发给目标资源设备进行响应。
可选地,交换设备还可包括:下游虚拟端口(图8未示出)。其中,交换设备所隶属的主机节点通过下游虚拟端口可访问其它交换设备下挂载的资源设备。具体实施方式可参见上述实施例的相关内容,在此不再赘述。
可选地,交换设备还可包括多级PCI到PCI桥(图8未示出,可参见上述图1d中的相关内容);其中,多级PCI到PCI桥的根节点被配置为上游端口81a;多级PCI到PCI桥的多个叶节点被配置为下游物理端口81c和下游虚拟端口。
在一些可选实施方式中,该计算机设备还可以包括:电源组件(图8未示出)等组件。图8中仅示意性给出部分组件,并不意味着交换设备必须包含图8所示全部组件,也不意味着交换设备只能包括图8所示组件。
本实施例提供的计算机设备,可接收网络协议报文,并将网络协议报文转换成串行接口协议报文。之后将串行接口协议报文转发给对应的目标设备,从而为其它计算机设备对本端资源设备进行访问提供了基础,有助于实现资源共享。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、虚拟化的中央处理器(Virtual Central Processing Unit,vCPU)、图形处理器(Graphics Processing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(Programmable Array Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或***芯片(System on Chip SOC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在本申请实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (29)

1.一种网络***,包括:多个交换设备以及连接于所述多个交换设备的上游端口的多个主机节点;所述多个交换设备之间互联,每个交换设备包括:下游物理端口和下游虚拟端口;所述下游物理端口挂载有资源设备;
第一交换设备,用于:获取所述第一交换设备所隶属的第一主机节点提供的第一报文;所述第一报文遵循串行接口协议,且包含资源设备标识;根据主机节点与资源设备之间的使用权限关系以及所述资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;通过所述第一交换设备与第二交换设备之间的网络接口,将所述第二报文提供给挂载所述资源设备标识对应的目标资源设备的第二交换设备,以供所述第二交换设备从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述第一交换设备维护有所述第一交换设备的下游虚拟端口与所述第二交换设备的下游物理端口之间的映射关系;所述目标资源设备挂载于所述第二交换设备的下游物理端口;所述映射关系建立所述第一交换设备与所述目标资源设备之间的连接关系,以使所述第一主机节点获取对所述目标资源设备的使用权限。
2.根据权利要求1所述的***,所述第一报文为配置空间访问报文;所述资源设备标识为所述目标资源设备的总线-设备-功能信息;所述主机节点与资源设备之间的使用权限关系包括:隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系;
其中,所述目标主机节点具有使用权限的资源设备包括:除所述目标交换设备之外的其它交换设备下挂载的资源设备。
3.根据权利要求2所述的***,所述第一主机节点,用于:
根据所述第一映射关系,扫描所述第一主机节点具有使用权限的资源设备;并为所述第一主机节点具有使用权限的资源设备配置总线-设备-功能信息;
所述第一主机节点具有使用权限的资源设备包括所述目标资源设备。
4.根据权利要求1所述的***,所述第一报文为内存访问报文;所述资源设备标识为目标资源设备在所述第一主机节点的目标内存地址;
所述主机节点与资源设备之间的使用权限关系包括:资源设备的地址空间与主机节点的内存地址之间的第二映射关系;
所述第二映射关系是所述第一主机节点根据隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系,为所述第一主机节点具有使用权限的资源设备进行内存地址配置形成的。
5.根据权利要求2所述的***,所述网络***还包括:管理设备;所述管理设备,用于:为所述多个主机设备配置具有使用权限的资源设备;并记录所述第一映射关系;以及将所述第一映射关系提供给所述多个交换设备。
6.根据权利要求1所述的***,所述第二交换设备,还用于:
接收所述目标资源设备对所述第一报文进行响应所返回的第三报文;所述第三报文遵循所述串行接口协议,且包含所述第一交换设备的标识;
根据所述第一交换设备的标识,将所述第三报文转换成遵循所述网络协议的第四报文;
将所述第四报文发送至所述第一交换设备,以供所述第一交换设备从所述第四报文中解析出所述第三报文并转发给所述第一主机节点。
7.根据权利要求1-6任一项所述的***,所述串行接口协议为PCIE协议,所述第一报文为TLP报文。
8.根据权利要求7所述的***,所述交换设备包括:多级PCI到PCI桥;所述多级PCI到PCI桥中的根节点被配置为所述交换设备的上游端口;所述多级PCI到PCI桥的多个叶节点被配置为至少一个下游物理端口和至少一个下游虚拟端口。
9.根据权利要求1-6任一项所述的***,每个交换设备部署于所隶属的主机节点的内部。
10.一种通信方法,包括:
获取第一交换设备所隶属的第一主机节点提供的第一报文;所述第一报文遵循串行接口协议,且包含第一资源设备标识;
根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;
将所述第二报文提供给挂载所述第一资源设备标识对应的目标资源设备的第二交换设备,以供所述第二交换设备从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述第一交换设备维护有所述第一交换设备的下游虚拟端口与所述第二交换设备的下游物理端口之间的映射关系;所述目标资源设备挂载于所述第二交换设备的下游物理端口;所述映射关系建立所述第一交换设备与所述目标资源设备之间的连接关系,以使所述第一主机节点获取对所述目标资源设备的使用权限。
11.根据权利要求10所述的方法,所述根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,将所述第一报文转换成遵循网络协议的第二报文,包括:
根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,确定所述第二交换设备的标识和所述目标资源设备的端口标识;
根据所述第一交换设备和所述第二交换设备的标识以及所述网络***的拓扑结构,确定所述第一交换设备到所述第二交换设备的路由信息;
将所述第一交换设备和所述第二交换设备的标识、所述目标资源设备的端口标识以及所述路由信息作为报文头字段,并将所述第一报文作为数据字段进行封装,以得到所述第二报文。
12.根据权利要求11所述的方法,所述将所述第一交换设备和所述第二交换设备的标识、所述目标资源设备的端口标识以及所述路由信息作为报文头字段,并将所述第一报文作为数据字段进行封装,包括:
将所述第一交换设备和所述第二交换设备的标识分别作为源节点标识字段和目标节点标识字段;
将所述目标资源设备的端口标识作为目标端口标识字段,并将所述路由信息作为路由字段;
以及将所述第一报文作为数据字段进行封装,以得到所述第二报文。
13.根据权利要求11所述的方法,所述第一报文为配置报文;所述第一资源设备标识为所述目标资源设备的总线-设备-功能信息;所述主机节点与资源设备之间的使用权限关系包括:隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系;
所述目标主机节点具有使用权限的资源设备包括:除所述目标交换设备之外的其它交换设备下挂载的资源设备。
14.根据权利要求13所述的方法,所述根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,确定所述第二交换设备的标识和所述目标资源设备的端口标识,包括:
根据所述目标资源设备的总线-设备-功能信息,确定所述目标资源设备在所述第一交换设备对应的目标下游虚拟端口;
根据所述第一映射关系,确定所述目标下游虚拟端口对应的目标下游物理端口;
将所述目标下游物理端口的标识作为所述目标资源设备的端口标识,并将所述目标下端物理端口所在的交换设备的标识作为所述第二交换设备的标识。
15.根据权利要求13所述的方法,所述目标资源设备的总线-设备-功能信息是所述第一主机节点根据所述第一映射关系配置的。
16.根据权利要求11所述的方法,所述第一报文为内存访问报文;所述第一资源设备标识为目标资源设备在所述第一主机节点的目标内存地址;
所述主机节点与资源设备之间的使用权限关系包括:资源设备的地址空间与主机节点的内存地址之间的第二映射关系;
所述第二映射关系是所述第一主机节点根据隶属于每个目标主机节点的目标交换设备的下游虚拟端口与其它交换设备的下游物理端口之间的第一映射关系,为所述第一主机节点具有使用权限的资源设备进行内存地址配置形成的。
17.根据权利要求16所述的方法,所述根据主机节点与资源设备之间的使用权限关系以及所述第一资源设备标识,确定所述第二交换设备的标识和所述目标资源设备的端口标识,包括:
根据所述第二映射关系,确定所述目标内存地址对应的目标地址空间所属的资源设备,作为所述目标资源设备;并确定所述目标资源设备所在的第二交换设备的标识和所述目标资源设备的端口标识。
18.根据权利要求11所述的方法,所述将所述第二报文提供给所述第二交换设备,包括:
按照所述路由信息,将所述第二报文转发至所述第二交换设备。
19.根据权利要求10所述的方法,还包括:
接收所述第二交换设备转发的遵循所述网络协议的第四报文;所述第四报文为所述第二交换设备根据所述第一交换设备的标识对第三报文封装形成的;所述第三报文为所述目标资源设备对所述第一报文进行响应返回的;
从所述第四报文中解析出所述第三报文;并将所述第三报文转发给所述第一主机节点。
20.根据权利要求10所述的方法,还包括:
接收第三交换设备转发的遵循所述网络协议的第六报文;所述第六报文是对所述第三交换设备所隶属的第三主机节点提供的第五报文封装形成的;所述第五报文遵循所述串行接口协议;
从所述第六报文中解析出所述第五报文;所述第五报文包含第二资源设备标识;
将所述第五报文转发给所述第二资源设备标识对应的资源设备进行响应。
21.根据权利要求10-20任一项所述的方法,所述串行接口协议为PCIE协议,所述第一报文为TLP报文。
22.一种通信方法,适用于交换设备,包括:
接收其它交换设备转发的遵循网络协议的第二报文;所述第二报文是所述其它交换设备根据主机节点与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;
从所述第二报文中解析出所述第一报文;并将所述第一报文转发给所述交换设备所隶属的主机节点或所述交换设备的下游物理端口挂载的资源设备进行响应;
其中,所述其它交换设备维护有所述其它交换设备的下游虚拟端口与所述交换设备的下游物理端口之间的映射关系;所述映射关系建立所述其它交换设备与所述交换设备的下游物理端口挂载的资源设备之间的连接关系,以使所述其它交换设备所隶属的主机节点获取对所述交换设备的下游物理端口挂载的资源设备的使用权限。
23.一种交换设备,包括:存储器、处理器和通信组件;所述通信组件包括:网络接口、上游端口以及下游物理端口和下游虚拟端口;所述上游端口用于连接主机节点;所述下游物理端口用于连接资源设备;所述网络接口用于与其它交换设备通信连接;所述存储器存储有所述下游虚拟端口与其它交换设备的下游物理端口之间的映射关系;目标资源设备挂载于所述其它交换设备的下游物理端口;所述映射关系建立所述交换设备与所述目标资源设备之间的连接关系,以使所述交换设备的上游端口连接的主机节点通过所述下游虚拟端口获取所述目标资源设备的使用权限;
所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:执行权利要求10-21任一项所述方法中的步骤。
24.一种交换设备,包括:存储器、处理器和通信组件;所述通信组件包括:网络接口、上游端口以及下游物理端口;所述上游端口用于连接主机节点;所述下游物理端口用于连接资源设备;所述网络接口用于与其它交换设备通信连接;
所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:执行权利要求22所述方法中的步骤。
25.一种交换设备,包括:网络接口和多级PCI到PCI桥;
所述多级PCI到PCI桥的根节点被配置为所述交换设备的上游端口;所述多级PCI到PCI桥的多个叶节点被配置为所述交换设备的多个下游端口;所述多个下游端口包括至少一个下游物理端口和至少一个下游虚拟端口;
所述网络接口,用于与其它交换设备网络连接;
所述上游端口用于连接主机节点;所述至少一个下游物理端口用于挂载资源设备;所述至少一个下游虚拟端口用于供所述主机节点访问所述其它交换设备的下游物理端口挂载的目标资源设备;
所述交换设备维护有所述交换设备的下游虚拟端口与所述其它交换设备的下游物理端口之间的映射关系;所述映射关系建立所述交换设备与所述目标资源设备之间的连接关系,以使所述主机节点获取对所述目标资源设备的使用权限。
26.一种计算机设备,包括:交换模块以及与所述交换模块的上游端口连接的主机模块;所述交换模块还包括:网络接口、下游物理端口和下游虚拟端口;所述下游物理端口用于连接资源设备;所述网络接口用于与隶属于其它计算机设备的交换模块通信连接;
所述交换模块,用于:获取所述主机模块提供的第一报文;所述第一报文遵循串行接口协议,且包含资源设备标识;根据主机模块与资源设备之间的使用权限关系以及所述资源设备标识,将所述第一报文转换成遵循网络协议的第二报文;通过所述网络接口将所述第二报文提供给挂载所述资源设备标识对应的目标资源设备的目标计算机设备的交换模块,以供所述目标计算机设备的交换模块从所述第二报文中解析出所述第一报文并提供给所述目标资源设备进行响应;
其中,所述交换模块维护有所述交换模块的下游虚拟端口与所述目标计算设备的交换模块的下游物理端口之间的映射关系;所述目标资源设备挂载于所述目标计算设备的交换模块的下游物理端口;所述映射关系建立所述交换模块与所述目标资源设备之间的连接关系,以使所述主机模块获取对所述目标资源设备的使用权限。
27.根据权利要求26所述的计算机设备,所述交换模块,还用于:
通过所述网络接口接收所述目标计算机设备的交换模块发送的第四报文;所述第四报文所述目标资源设备对所述第一报文进行响应所返回的第三报文进行转换形成的,且遵循所述网络协议;所述第三报文遵循所述串行接口协议;
从所述第四报文中解析出所述第三报文,并通过所述上游端口将所述第四报文转发给所述主机模块。
28.一种计算机设备,包括:第一交换模块以及与所述第一交换模块的上游端口连接的第一主机模块;所述第一交换模块还包括:网络接口和下游物理端口;所述网络接口用于与隶属于其它计算机设备的第二交换模块通信连接;
所述交换模块,用于:通过所述网络接口接收所述第二交换模块转发的遵循网络协议的第二报文;所述第二报文是所述第二交换模块根据所述其它计算机设备的第二主机模块与资源设备之间的使用权限关系,对遵循串行接口协议的第一报文协议转换形成的;从所述第二报文中解析出所述第一报文;并将所述第一报文通过所述第一交换模块的上游端口转发给所述第一主机模块进行响应或通过所述第一交换模块的下游物理端口转发给所述第一交换模块的下游物理端口挂载的资源设备进行响应;
其中,所述第二交换模块维护有所述第二交换模块的下游虚拟端口与所述第一交换模块的下游物理端口之间的映射关系;所述映射关系建立所述第二交换模块与所述第一交换模块的下游物理端口挂载的资源设备之间的连接关系,以使所述第二主机模块获取对所述第一交换模块的下游物理端口挂载的资源设备的使用权限。
29.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求10-22任一项所述方法中的步骤。
CN202010270565.7A 2020-04-08 2020-04-08 通信方法、设备、***及存储介质 Active CN113300984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010270565.7A CN113300984B (zh) 2020-04-08 2020-04-08 通信方法、设备、***及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010270565.7A CN113300984B (zh) 2020-04-08 2020-04-08 通信方法、设备、***及存储介质

Publications (2)

Publication Number Publication Date
CN113300984A CN113300984A (zh) 2021-08-24
CN113300984B true CN113300984B (zh) 2022-09-13

Family

ID=77317879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010270565.7A Active CN113300984B (zh) 2020-04-08 2020-04-08 通信方法、设备、***及存储介质

Country Status (1)

Country Link
CN (1) CN113300984B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102780B (zh) * 2022-07-15 2022-12-06 飞腾信息技术有限公司 数据传输方法、相关装置、***及计算机可读存储介质
CN115514719B (zh) * 2022-10-20 2023-12-19 迈普通信技术股份有限公司 报文发送方法、装置、交换机及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101124541A (zh) * 2005-02-25 2008-02-13 国际商业机器公司 修改逻辑分区数据处理***中的虚拟适配器资源
CN102707991A (zh) * 2012-05-17 2012-10-03 中国科学院计算技术研究所 多根i/o 虚拟化共享方法和***
CN103534989A (zh) * 2011-05-14 2014-01-22 国际商业机器公司 在分布式结构协议(dfp)交换网络架构中的基于优先级的流控制
CN109450696A (zh) * 2018-11-29 2019-03-08 新华三云计算技术有限公司 网络配置方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395367B2 (en) * 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
CN110489365B (zh) * 2016-01-13 2023-09-12 华为技术有限公司 交换设备、***部件互连高速***及其初始化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101124541A (zh) * 2005-02-25 2008-02-13 国际商业机器公司 修改逻辑分区数据处理***中的虚拟适配器资源
CN103534989A (zh) * 2011-05-14 2014-01-22 国际商业机器公司 在分布式结构协议(dfp)交换网络架构中的基于优先级的流控制
CN102707991A (zh) * 2012-05-17 2012-10-03 中国科学院计算技术研究所 多根i/o 虚拟化共享方法和***
CN109450696A (zh) * 2018-11-29 2019-03-08 新华三云计算技术有限公司 网络配置方法及装置

Also Published As

Publication number Publication date
CN113300984A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
WO2020057469A1 (zh) 数据处理方法、相关设备及计算机存储介质
CN106648896B (zh) 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法
CN108984465B (zh) 一种消息传输方法及设备
CN110635933B (zh) 用于管理sdn的网络的装置、控制方法及记录介质
CN113300984B (zh) 通信方法、设备、***及存储介质
CN111435943B (zh) 数据处理方法、设备、***及存储介质
CN111711801B (zh) 视频数据传输方法、装置、服务器和计算机可读存储介质
CN113297124B (zh) 设备枚举方法、设备、***及存储介质
CN115913937B (zh) 一种容器多网卡网络配置方法、装置、设备及存储介质
CN113934674A (zh) 基于pcie总线的命令传输方法及片上***
CN110837488A (zh) 报文传输方法和装置
CN105786732B (zh) 数据访问方法及装置
CN114640726A (zh) 报文处理方法、设备、***及存储介质
JP7098711B2 (ja) 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム
CN112671936B (zh) 一种跨不同本国***的专用传输模块适配方法、装置
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
KR100967400B1 (ko) 복수의 무선 usb 호스트 장치와의 네트워킹을 위한 무선usb 디바이스 장치 및 그 네트워킹 방법
CN109358820B (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
EP3857826B1 (en) Flexible unnumbered destination tunnels for virtual networks
CN110109848B (zh) Dsp硬件抽象层以及dsp处理器
WO2018217370A1 (en) Communications for field programmable gate array device
US20120324139A1 (en) Wireless communication for point-to-point serial link protocol
CN109558107B (zh) 一种共享缓冲区的fc消息接收管理方法
CN113852546A (zh) 面向物联泛在接入网关的异构网络接入及转换方法、网关
CN107317773B (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
TR01 Transfer of patent right

Effective date of registration: 20230522

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right