首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 自组织映射 / PCIE设备和功能与主机阵列的动态连接

PCIE设备和功能与主机阵列的动态连接

阅读:1016发布:2020-07-26

专利汇可以提供PCIE设备和功能与主机阵列的动态连接专利检索,专利查询,专利分析的服务。并且用于将设备连接到多个处理主机之一的系统和方法。虚拟 接口 卡(VIC)适配器学习主机的数目和 位置 以及设备的标识;接收设备到所选主机的映射,其中主机是从多个主机中选择的;以及动态地构建将设备连接到 选定 主机的接口。,下面是PCIE设备和功能与主机阵列的动态连接专利的具体信息内容。

1.一种用于将设备连接到多个处理主机之一的方法,包括:
学习这些主机的位置和所述设备的标识;
接收所述设备与所选主机的对应关系,其中所述主机是从所述多个主机中选择的;以及
动态地构建将所述设备连接到所述所选主机的接口
其中所述学习、接收和构建由虚拟接口卡(VIC)适配器执行。
2.根据权利要求1所述的方法,其中所述学习包括开列所述设备和任何附加设备的清单,其中所述设备和任何附加设备物理连接到所述VIC适配器。
3.根据权利要求2所述的方法,其中所述清单被发送到与所述多个处理主机通信的计算系统管理器(CSM),其中所述清单是响应于来自所述CSM的查询而被发送的。
4.根据权利要求1所述的方法,其中所述接收包括通过一个或多个配置文件从所述CSM接收所述设备的所述标识和所述所选主机的位置。
5.根据权利要求4所述的方法,其中所述多个主机被组织在多个盒中,其中每个盒包括一个或多个主机,并且其中对所述所选主机的位置的学习包括接收对包括所述所选主机的盒的指示以及所述所选主机在所指示的盒内的位置。
6.根据权利要求1所述的方法,其中所述多个主机包括一个或多个虚拟主机。
7.根据权利要求1所述的方法,其中所述设备是连接到外围组件互连高速(PCIe)交换机的PCIe设备,其中所述PCIe交换机又连接到所述VIC适配器。
8.根据权利要求1所述的方法,其中所述设备是连接到PCIe交换机的具有单根输入输出虚拟化(SRIOV)能的PCIe设备,所述PCIe交换机又连接到所述VIC适配器。
9.根据权利要求8所述的方法,还包括为所述具有SRIOV能力的PCIe设备的虚拟功能准备虚拟功能空间。
10.根据权利要求8所述的方法,其中,所述接收包括:从所述CSM接收所述具有SRIOV能力的PCIe设备的所述标识、所述具有SRIOV能力的PCIe设备中的虚拟功能的标识、以及要映射到所述虚拟功能的所述所选主机的位置。
11.根据权利要求10所述的方法,其中所述接口的构建包括构建所述接口以连接所述虚拟功能和所述所选主机。
12.根据权利要求10所述的方法,其中所述接口的构建包括启用SRIOV转换过程,其中所述SRIOV转换过程将所述虚拟功能的配置空间事务转换为相关物理功能的配置空间。
13.根据权利要求1所述的方法,其中所述设备是与外围组件互连快速(PCIe)交换机通信的PCIe设备,其中所述PCIe交换机与所述VIC适配器通信,所述方法还包括:
向所述CSM标识所述PCIe交换机的能够热插拔的插槽。
14.根据权利要求13所述的方法,其中所述接口的构建包括从所述CSM接收针对所述设备的热插拔插入请求
15.根据权利要求13所述的方法,还包括向所述所选主机的操作系统(OS)发送热插拔中断,所述热插拔中断使得所述OS执行对所述设备的发现、枚举和加载驱动。
16.根据权利要求15所述的方法,还包括向所述OS发送热插拔移除中断,其中所述热插拔中断使得所述OS释放对所述设备的控制。
17.一种用于将外围设备连接到多个处理主机之一的虚拟接口卡(VIC)适配器,包括:
存储器,包括固件;以及
处理器,耦接到所述存储器并被配置为执行存储在所述存储器中的指令,所述处理器被配置为:
学习这些主机的位置和所述设备的标识;
接收所述设备与所选主机的对应关系,其中所述主机是从所述多个主机中选择的;以及
动态地构建将所述设备连接到所述所选主机的接口。
18.根据权利要求17所述的VIC适配器,其中所述处理器被配置为开列所述设备和任何附加设备的清单,其中所述设备和任何附加设备物理连接到所述VIC适配器。
19.根据权利要求18所述的VIC适配器,其中所述处理器还被配置为将所述清单发送到与所述多个处理主机通信的计算系统管理器(CSM),其中所述清单是响应于来自所述CSM的查询而发送的。
20.根据权利要求17所述的VIC适配器,其中所述处理器被配置为通过一个或多个配置文件从所述CSM接收所述设备的所述标识和所述所选主机的位置。
21.根据权利要求20所述的VIC适配器,其中所述多个主机被组织在多个盒中,其中每个盒包括一个或多个主机,并且其中所述处理器被配置为接收对包括所述所选主机的盒的指示以及所述所选主机在所指示的盒内的位置。
22.根据权利要求17所述的VIC适配器,其中所述多个主机包括一个或多个虚拟主机。
23.根据权利要求17所述的VIC适配器,其中所述设备是连接到外围组件互连高速(PCIe)交换机的PCIe设备,所述PCIe交换机又连接到所述装置。
24.根据权利要求17所述的VIC适配器,其中所述设备是连接到PCIe交换机的具有单根输入输出虚拟化(SRIOV)能力的PCIe设备,所述PCIe交换机又连接到所述装置。
25.根据权利要求24所述的VIC适配器,其中所述处理器还被配置为为所述具有SRIOV能力的PCIe设备的虚拟功能准备虚拟功能空间。
26.根据权利要求24所述的VIC适配器,其中所述处理器被配置为从所述CSM接收所述具有SRIOV能力的PCIe设备的所述标识、所述具有SRIOV能力的PCIe设备中的虚拟功能的标识、以及要被映射到所述虚拟功能的所述所选主机的位置。
27.根据权利要求26所述的VIC适配器,其中所述处理器被配置为构建所述接口以连接所述虚拟功能和所述所选主机。
28.根据权利要求26所述的VIC适配器,其中所述处理器被配置为启用SRIOV转换过程,其中所述SRIOV转换过程将所述虚拟功能的配置空间事务转换为相关物理功能的配置空间。
29.根据权利要求17所述的VIC适配器,其中所述设备是与外围组件互连高速(PCIe)交换机通信的PCIe设备,其中所述PCIe交换机与所述装置通信,并且其中所述处理器还被配置为:向所述CSM标识所述PCIe交换机的能够热插拔的插槽。
30.根据权利要求29所述的VIC适配器,其中所述处理器被配置为从所述CSM接收针对所述设备的热插拔插入请求。
31.根据权利要求29所述的VIC适配器,其中所述处理器还被配置为向所述所选主机的操作系统(OS)发送热插拔中断,所述热插拔中断使得所述OS执行对所述设备的发现、枚举和加载驱动。
32.根据权利要求31所述的VIC适配器,其中所述处理器还被配置为向所述OS发送热插拔移除中断,所述热插拔中断使得所述OS释放对所述设备的控制。
33.用计算机可读指令编码的一种或多种计算机可读非暂态存储介质,所述指令在被处理器执行时使得虚拟接口卡(VIC)适配器进行下述操作:
学习这些主机的位置和所述设备的标识;
接收所述设备与所选主机的对应关系,其中所述主机是从所述多个主机中选择的;以及
动态地构建将所述设备连接到所述所选主机的接口。
34.根据权利要求33所述的计算机可读存储介质,其中使得所述VIC适配器学习所述主机的位置和所述设备的所述标识的所述指令包括由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
开列所述设备和任何附加设备的清单,其中所述设备和任何附加设备物理连接到所述VIC适配器。
35.根据权利要求34所述的计算机可读存储介质,其中,所述指令在由所述处理器执行时还使得所述VIC适配器进行下述操作:
将所述清单发送到与所述多个处理主机通信的计算系统管理器(CSM),其中所述清单是响应于来自所述CSM的查询而发送的。
36.根据权利要求33所述的计算机可读存储介质,其中使得所述VIC适配器接收所述设备与所选主机的对应关系的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
通过一个或多个配置文件从所述CSM接收所述设备的所述标识和所述所选主机的位置。
37.根据权利要求36所述的计算机可读存储介质,其中所述多个主机被组织在多个盒中,其中每个盒包括一个或多个主机,并且其中使得所述VIC适配器接收所述所选主机的位置的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
接收对包括所述所选主机的盒的指示以及所述所选主机在所指示的盒内的位置。
38.根据权利要求33所述的计算机可读存储介质,其中所述多个主机包括一个或多个虚拟主机。
39.根据权利要求33所述的计算机可读存储介质,其中所述设备是连接到外围组件互连高速(PCIe)交换机的PCIe设备,所述PCIe交换机又连接到所述VIC适配器。
40.根据权利要求33所述的计算机可读存储介质,其中所述设备是连接到PCIe交换机的具有单根输入输出虚拟化(SRIOV)能力的PCIe设备,所述PCIe交换机又连接到所述VIC适配器。
41.根据权利要求40所述的计算机可读存储介质,还包括当由处理器执行时使得所述处理器进行下述操作的计算机可读指令:
为所述具有SRIOV能力的PCIe设备的虚拟功能准备虚拟功能空间。
42.根据权利要求40所述的计算机可读存储介质,其中使得所述VIC适配器学习所述主机的位置和所述设备的标识的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
从所述CSM接收所述具有SRIOV能力的PCIe设备的所述标识、所述具有SRIOV能力的PCIe设备中的虚拟功能的标识、以及将被要映射到所述虚拟功能的所述所选主机的位置。
43.根据权利要求42所述的计算机可读存储介质,其中使得所述VIC适配器动态地构建所述接口的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
构建所述接口以连接所述虚拟功能和所述所选主机。
44.根据权利要求42所述的计算机可读存储介质,其中使得所述VIC适配器动态地构建所述接口的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
启用SRIOV转换过程,其中所述SRIOV转换过程将所述虚拟功能的配置空间事务转换为相关物理功能的配置空间。
45.根据权利要求33所述的计算机可读存储介质,其中所述设备是与PCIe交换机通信的PCIe设备,所述PCIe交换机与所述VIC适配器通信,并且其中所述指令在由所述处理器执行时还使得所述VIC适配器进行下述操作:
向所述CSM标识所述PCIe交换机的能够热插拔的插槽。
46.根据权利要求45所述的计算机可读存储介质,其中使得所述VIC适配器动态地构建所述接口的所述指令包括当由所述处理器执行时使得所述VIC适配器进行下述操作的指令:
从所述CSM接收针对所述设备的热插拔插入请求。
47.根据权利要求45所述的计算机可读存储介质,其中,所述指令在由所述处理器执行时还使得所述VIC适配器进行下述操作:
向所述所选主机的操作系统(OS)发送热插拔中断,其中所述热插拔中断使得所述OS执行对所述设备的发现、枚举和加载驱动。
48.根据权利要求47所述的计算机可读存储介质,其中所述指令在由所述处理器执行时还使得所述VIC适配器进行下述操作:
向所述OS发送热插拔移除中断,所述热插拔移除中断使得所述OS释放对所述设备的控制。

说明书全文

PCIE设备和功能与主机阵列的动态连接

技术领域

[0001] 本公开涉及设备到特定主机处理器的连接。

背景技术

[0002] 处理主机通常与一个或多个外围设备协同工作。这种设备可以允许例如与通信网络、存储系统或图形处理器进行接口(interface)。在某些情况下,管理员可能想要添加自定义的外围设备。在正在管理相连接的主机组的系统中,管理员确定将与设备工作的适当主机,并且手动插入物理设备。如果设备通过使用与外围组件互连高速(PCIe)标准一致的协议与其他组件通信,则管理员必须找到与此类设备兼容的额外插槽。在一些情况下,管理员可能想要部署他自己的设备选择,以利用盒(cartridge)中主机所使用的自定义应用。这可能是不可行的(如果设备必须由特定制造商认证,以便可以使用特定发现和关联协议)。附接外围设备的困难也可能发生在其他情境中。在一些情况下,PCIe设备可以是与单根输入输出虚拟化(SRIOV)规范兼容的设备。在主机不能使用SRIOV能的情况下,由虚拟功能表示的资源未被使用,使得设备实际上未被充分利用。此外,由于需要重启主机的OS,所以PCIe设备的添加可能会变得复杂。某些用户需要具有专用PCIe设备,该设备可以用于部署在运行机箱中这一具体目的。用户通常偏好在添加新的PCIe设备时避免重启主机或服务器。作为响应,已开发出用于将PCIe设备“热插拔”到盒中的协议。如果管理员想要将设备移动到不同主机或服务器,则可能会出现问题。目前,在行业中没有可用机制来支持把设备即时映射到同一机箱中的不同物理主机或服务器而无需手动干预。
附图说明
[0003] 图1是示出示例实施例中的本文所描述的系统的总体操作的流程图
[0004] 图2是示例实施例中的用于外围组件互连高速(PCIe)设备到一组主机的动态连接的系统的框图
[0005] 图3是示例实施例中的用于PCIe设备的动态放置的系统的另一框图。
[0006] 图4是示出示例实施例中的对用于PCIe设备动态到一组主机的动态连接的组件进行标识的流程图。
[0007] 图5是示出示例实施例中的在PCIe设备到一组主机的动态连接中主机和物理设备的映射的流程图。
[0008] 图6是示出示例实施例中的从虚拟接口卡(VIC)适配器的度的在PCIe设备到一组主机的动态连接中的主机和物理设备的标识和映射的流程图。
[0009] 图7是示例实施例中在单根输入/输出虚拟化(SRIOV)设备中的虚拟功能到客户操作系统的逻辑连接的框图。
[0010] 图8是示例实施例中将具有SRIOV能力的设备连接到一组主机的系统的框图。
[0011] 图9是示例实施例中的将具有SRIOV能力的设备连接到一组主机的系统的另一框图。
[0012] 图10是示出示例实施例中的在具有SRIOV能力的设备到一组主机的连接中的组件的标识过程的流程图。
[0013] 图11是示出了示例实施例中的在具有SRIOV能力的设备到一组主机的连接中的组件的映射过程的流程图。
[0014] 图12是示出示例实施例中的从VIC适配器的角度的具有SRIOV能力的设备到一组主机的连接中的组件的识别和映射过程的流程图。
[0015] 图13是示例实施例中的将可热插拔设备连接到一组主机的系统的框图。
[0016] 图14是示例实施例中的将可热插拔设备连接到一组主机的系统的另一框图。
[0017] 图15是示出示例实施例中的在可热插拔设备到一组主机的连接中的组件的标识过程的流程图。
[0018] 图16是示出了示例实施例中的在可热插拔设备到一组主机的连接中的组件的映射过程的流程图。
[0019] 图17是示出示例实施例中的从VIC适配器的角度的可热插拔设备到一组主机的连接中的组件的标识和映射过程的流程图。
[0020] 图18是示出了示例实施例中的用于从一组主机中分离可热插拔设备的过程的流程图。
[0021] 图19是示出实施例中的从VIC适配器的角度的从一组主机中分离可热插拔设备的过程流程图。
[0022] 图20是示例实施例中的VIC适配器上的计算架构的框图。

具体实施方式

[0023] 概览
[0024] 本文提出了用于将设备连接到多个处理主机之一的系统和方法。虚拟接口卡(VIC)适配器学习主机的数目和位置以及设备的标识;接收设备到所选主机的映射,其中主机是从多个主机中选择的;以及动态地构建将设备连接到所选主机的接口。
[0025] 示例实施例
[0026] 处理主机通常与一个或多个外围设备协同工作。这种设备可以允许例如与通信网络、存储系统或图形处理器进行接口。在某些情况下,管理员可能想要添加自定义外围设备。在正在管理相连接的主机组的系统中,管理员确定将与设备工作的适当主机,并且将该物理设备手动地插入到容纳该主机的适当盒中。如果设备通过使用与外围组件互连高速(PCIe)标准一致的协议与其它组件通信,则管理员必须找到与这种设备兼容的额外插槽,即可用的PCIe插槽。在主机排列在一组物理盒中的架构中,管理员必须找到具有额外PCIe插槽的盒。在一些情况下,管理员可能想要部署他自己的设备选择,以利用盒中主机所使用的自定义应用。这在某些情况下这可能是不可行的(例如,如果设备必须由特定制造商认证,以便可以使用特定发现和关联协议)。这极大地妨碍了使用不被支持设备的可能性。
[0027] 附接外围设备的困难也可能发生在其他情境中。在一些情况下,PCIe设备可以是与单根输入输出虚拟化(SRIOV)规范兼容的设备。这是一种PCIe规范,它能够通过单个物理设备向主机表示一个或多个设备。这允许PCIe设备看起来是多个单独的物理PCIe设备。SRIOV通过引入物理功能(PF)和虚拟功能(VF)的思想来工作。物理功能是全功能的PCIe功能;虚拟功能是具有有限功能的“轻量级”功能。SRIOV命令PCIe设备向单个主机表示所有PF和VF。如果主机平台不知道SRIOV功能,并且如果操作系统(OS)不支持处理由设备提供的SRIOV特性,则无法使用该功能。在主机不能使用SRIOV能力的情况下,由虚拟功能表示的资源未被使用,使得设备实际上未被充分利用。因此,在这种情况下,即使PCIe设备可以连接到主机,该连接也可能不能被完全了解,因为虚拟功能不能被主机使用。
[0028] 此外,由于需要对主机的OS重启,所以PCIe设备的添加可能会变得复杂。一些用户需要具有专用的PCIe设备,该设备可以用于部署在运行机箱中这一具体目的。用户通常偏好在添加新的PCIe设备时避免重启主机或服务器。作为响应,已开发出用于将PCIe设备“热插拔”到盒中的协议。此短语是指在无需重启的情况下安装PCIe设备。热插拔机制需要能够热插拔的PCIe交换设备,该PCIe交换设备能够接受热插拔协议并允许无需重启的情况下无缝地集成该设备。具有热插拔支持的操作系统可以检测、枚举(enumerate)和使用已插入系统的新设备。此外,管理员必须按照协议知晓热插拔机制,以便在无需重启的情况下实现设备的运行时配置。
[0029] 如果管理员想要将设备移动到不同的主机或服务器,则可能会出现问题。如果盒具有额外的PCIe插槽可用,则他通常需要将设备手动插入盒中。每个要支持热插拔设备的盒具有支持热插拔功能的交换机或根端口。即使操作系统支持热插拔功能,也可能很难检查盒的位置、打开机箱、寻找能够热插拔的交换机和适当的下行(downstream)插槽、以及将设备放置在该插槽中。这极大地妨碍了在运行时期间使用第三方PCIe适配器的可能性,其中第三方PCIe适配器具有不受虚拟接口卡(VIC)支持的特征。管理员可能想要部署他自己的设备选择,以利用在盒或机架中的主机中所使用的定制应用。管理员还可能想要基于他对于每个盒或主机想要的定制应用,来将对能够热插拔的设备的关联改变到不同的主机。目前,如果管理员希望将PCIe设备绑定到机箱或机架中的特定主机而不重启服务器,则他从PCIe交换机的一个下行插槽中移除PCIe设备,将其移动到另一主机的能够热插拔的PCIe交换机的下行插槽并执行热插拔插入过程。当前在行业中没有可用机制来支持把设备即时映射到同一机箱中不同的物理主机或服务器,而不需要手动干预以及适配器从一个盒或机架到另一个的物理移动。
[0030] 图1示出了本文所述的系统的整体处理。在110处,对系统组件进行标识。这些组件可能包括一组处理主机和需要连接到相应主机的一个或多个设备。在实施例中,这些设备可以通过使用与外围组件互连高速(PCIe)标准一致的协议进行通信。在本文中,这样的设备被称为“PCIe设备”。在120处,将每个设备映射到该组主机中的相应主机。如下面将更详细地讨论的,该映射既包括设备和主机之间的逻辑关联,也包括它们之间允许通信的连接。在130处,操作可以开始。这种操作可以例如包括在主机上执行应用,其中该应用利用映射到它的设备。
[0031] 在实施例中,管理员对由计算系统管理器模(CSM)报告的物理设备清单进行标识,其中这(一个或多个)物理设备在VIC适配器的后面。可以通过所枚举的总线、设备和功能(BDF)来标识设备。具体地,设备驻留在逻辑后面,该逻辑在一种实施例中实现在固件中并驻留在VIC适配器中,该逻辑辅助每个设备和主机之间的连接。确定支持多少主机。在一些情况下,可以以特定的拓扑组织主机。例如,主机可以布置在一组盒中,每个盒中具有某个数目的主机。在实施例中,可以使用八个盒,每个盒具有两个主机。因而,在这样的实施例中,多达16个主机可以与VIC适配器通信。可以通过盒标识符和实例标识符来标识特定主机,其中后者指定盒内的特定主机。
[0032] 图2示出了根据实施例的示例系统。示出了一组主机211、212和213。还示出了一组PCIe设备221、222和223。这种PCIe设备的示例可以包括通信接口卡、图形处理器卡和存储接口卡。这些实施例不应被解释为限制性的。PCIe设备可以通过PCIe交换机230和VIC适配器240连接到主机之一。在一些实施例中,VIC适配器可以实现为专用集成电路(ASIC)。对主机210、211和212的访问可以通过各自的接口(在该示例中示为虚拟网络接口卡(vNIC)250、251和252)来实现。如下面将更详细地描述的,每个PCIe设备到特定主机的映射通过例如VIC适配器240中的固件260的操作来实现,其中固件260与地址转换模块270协同工作。固件
260和地址转换模块270中的逻辑操纵寻址,以将每个PCIe设备连接到适当的主机。
[0033] 从管理角度来看,这种系统的附加特征在图3中示出。如在前面的示例中一样,多个PCIe设备中的每个PCIe设备映射到特定主机。示出了三个主机310、311和312,以及三个PCIe设备321、322和323。在该示例中,这些PCIe设备分别具有0x300、0x400和0x500的BDF值。PCIe设备经由PCIe交换机330连接到VIC适配器340。用于主机的接口被示为vNIC 351、352和353。每个都示出了盒标识符和盒内针对其关联主机的实例。还示出了计算系统管理模块CSM 380与VIC适配器340和主机的vNIC 351、352和353通信。在该示例中可以通过各种策略(示出为以太网策略391、存储策略392和放置策略393)对PCIe设备和主机的映射以及系统300的其他操作进行约束。这些策略中的约束通过CSM 380来实现。
[0034] 图4示出了根据实施例的过程,通过该过程可以对主机和外围设备进行标识。在410处,CSM学习当前主机的数目及其位置。如上所述,主机的位置可以包括其盒的标识符和盒内的主机的标识符。在一个实施例中,可以由系统中的其他管理组件(例如机箱管理控制器和/或基本(base)管理控制器)将该信息报告给CSM。在420处,CSM查询VIC适配器以获得附接到VIC适配器的设备的清单。清单可以包括针对每个设备的插槽位置和BDF值。在430处,CSM向管理员报告主机的数目和设备的清单。这可以通过例如图形用户界面(GUI)和/或命令行界面(CLI)来进行。在440处,用户对每个物理设备将支持的应用类型进行标识。
[0035] 图5示出根据实施例的用于将设备映射到主机的过程。在510处,用户对物理设备将要映射到的特定主机进行标识。这可以基于例如用户对设备所支持的特征的理解以及哪个主机需要这样的特征。在520处,用户向CSM提供所标识的主机的位置和相应设备的标识。可以由盒标识符和盒内的主机标识符来指定主机及其位置。可以通过BDF值来标识相应设备。在530处,CSM向VIC适配器转发从用户接收到的信息。在一个实施例中,CSM将该信息写入一个或多个配置文件,然后由VIC适配器读取该一个或多个配置文件。在540处,VIC适配器可以验证该信息的正确性并且解析该信息以获得用于执行550处理的数据,其中在550中VIC适配器构建将物理设备映射到适当主机的接口。这种接口的构建可能需要将主机的vNIC的基址寄存器(BAR)中的地址转换为设备的地址,其中后者的地址是该设备在VIC适配器固件的寻址方案中的地址。该转换由转换模块来辅助,例如,图2中的寄存器新高级可扩展接口(RNAXI)地址转换模块270。固件还可以通过RNAXI转换将固件的物理设备地址空间的配置空间映射到vNIC的配置基址。
[0036] 一旦完成映射并构建完接口,则VIC适配器向CSM通知这一点,然后CSM可以启动主机的盒并且启动在主机上运行的OS。然后主机可以使用设备,就如同设备本地连接到主机一样。当主机尝试访问其vNIC的BAR时,地址被转换为VIC适配器的经固件转换的地址空间。当在从设备到主机的上行方向上执行直接存储器存取(DMA)时,可以将由主机提供的DMA地址直接给予设备。然后,设备可以发出DMA,该DMA接着通过RNAXI转换被转换到主机。然后将数据适当地写入主机存储器。以这种方式,通过使用由VIC适配器固件编程的RNAXI地址转换,完成上行和下行地址转换。
[0037] 虽然如图5所示的以及这里所讨论的处理涉及单个设备,但应理解的是,多个设备可以连接到VIC适配器(如图2和图3所示),并且这种设备将通过使用相同的过程映射到适当主机。
[0038] 根据实施例,图6从VIC适配器角度示出上述处理。在610处,VIC适配器对附接到其的设备进行清点,学习它们的标识。在620处,将清单发送到CSM。如上所述,将清单发送到CSM是响应来自CSM的查询。在630处,VIC适配器通过一个或多个配置文件接收设备的标识和已与这些设备相关联的主机的位置。在640处,VIC适配器确保(即,验证)这(一个或多个)配置文件的正确性并解析它们。在650处,VIC适配器以上述方式构建连接主机和设备的必要接口。
[0039] 如上所述,PCIe设备可以是具有SRIOV能力的设备。这种设备可以连接到VIC适配器的固件。SRIOV设备可以映射到表示物理功能和一组虚拟功能的单个主机。在管理程序(hypervisor)部署的情况下,管理程序将虚拟功能映射到客户操作系统,并且通过移除对管理程序的依赖性来扩展性能,使得管理程序不再是客户OS和VIC适配器之间的联络。SRIOV使得虚拟功能能够直接被映射到客户操作系统。在管理程序部署中,支持SRIOV的PCIe设备可能限于一个物理主机。
[0040] 在下面描述的基于SRIOV的实施例中,管理员可以在运行时配置任何虚拟功能以映射到任何主机,从而从VIC适配器分离出物理功能。管理员可以通过使用BDF值来指定具有SRIOV能力的设备的标识,并且通过盒标识符和盒内的主机标识符来标识主机号。SRIOV设备可以将虚拟和物理功能向VIC适配器表示为单个实体,并且VIC适配器的固件可以捕获从主机发起的配置空间事务和存储器事务。基于SRIOV的设备可以将VF表示为虚拟PCIe设备。管理员还可以选择不止一个VF映射到同一主机,或者将VF映射到不止一个主机,使得该架构灵活且适应于在主机上运行的应用。
[0041] 图7中示出了这样的实施例。具有SRIOV能力的设备被示为设备710,并且包括物理功能(PF)720和虚拟功能(VF)731、732和733。该示例中的VF已被映射到三个相应的虚拟主机,这些虚拟主机的客户操作系统被示为741、742和743。由管理程序750(特别是管理程序750中的PCI子系统770)调解主机和VF之间的交互。管理程序750还包括用于PF的驱动760。
PF驱动760确定将启用多少个VF。在本示例中,启用了三个VF。
[0042] 在图8中进一步示出了这种实施例。示出了一组主机810、811和812。还示出了具有SRIOV能力的PCIe设备820。该设备包括一组功能,即PF 821以及VF 822和823。虚拟功能可以通过PCIe交换机830和VIC适配器840连接到主机中的一个。可以通过相应的接口(在该示例中示为虚拟网络接口卡(vNIC)850、851和852)实现对主机810、811和812的访问。如下面将更详细地描述的,通过在VIC适配器840中固件860的操作实现每个VF到特定主机的映射,其中固件860与地址转换模块870和SRIOV转换器865协同工作。固件860、地址转换模块870和SRIOV转换器865中的逻辑操纵寻址,以将每个VF连接到适当的主机。
[0043] 在图9中示出了这种系统的附加特征。与在前面的图示一样,多个VF中的每个VF映射到特定主机。示出了三个主机910、911和912,以及具有SRIOV能力的设备920。后者设备包括PF 921以及VF 922和923。在该示例中,这些功能分别具有BDF值0x300、0x301和0x302。具有SRIOV能力的设备920经由PCIe交换机930连接到VIC适配器940。用于这些主机的接口被示为vNIC 951、952和953。每个都示出了盒标识符和其关联主机在盒内的实例。还示出了与VIC适配器940和主机的vNIC 951、952和953通信的系统管理模块CSM 980。在该示例中可以通过各种策略(示出为以太网策略991、存储策略992和放置策略993)对VF和主机的映射以及系统900的其他操作进行约束。这些策略中的约束通过CSM 980来实现。
[0044] 图10示出了根据实施例的用于在诸如图7-9所示的系统中对组件(即主机、PCIe设备、VF和PF)进行标识的过程。在1010处,CSM学习现有主机的数目及其位置。在实施例中,由基本管理控制器(BMC)和/或机箱管理控制器(CMC)将该信息提供给CSM,基本管理控制器和机箱管理控制器报告关于存在于系统中的服务器和盒的信息。在1020处,CSM向VIC适配器查询在VIC适配器后面的PCIe设备的清单。在1030处,VIC适配器启动总线扫描以学习这样的设备。在1040处,VIC适配器在任何发现的设备中寻找SRIOV能力,对于该设备,针对所支持的VF数目启用设备的SRIOV能力(如果存在)。在1050处,VIC适配器将BDF值与任何发现的PCIe设备(包括PF和VF)相关联。总线地址与具有SRIOV能力的设备的BAR相关联。这允许VIC适配器访问设备的寄存器空间。BAR地址也被分配给VF,使得可以独立地访问每个单独VF的寄存器空间。在1060处,VIC适配器将清单发送到CSM,清单包括所发现设备的插槽位置和BDF。在1070处,VIC适配器准备VF配置空间作为真实配置空间。该真实配置空间不同于由VF另外报告的默认配置空间。在1080处,CSM向管理员报告主机的数目以及所发现的设备和其功能的标识。如前所述,这可以经由CLI或GUI来提供。在1090处,用户对PCIe设备以及具有SRIOV能力的设备的PF和VF的清单进行标识,并且基于每个功能将要支持的应用类型来确定哪些设备和功能需要被映射到哪些主机。
[0045] 在图11中示出了根据实施例的在具有SRIOV能力的PCIe设备的情况下功能到主机的映射。在1110处,用户基于由设备和功能支持的应用来确定将哪些设备和功能映射到哪些主机。在1120处,用户提供特定主机的位置以及要映射到这些主机的设备和功能的标识。在1130处,CSM将该映射信息转发到接收该映射的VIC适配器。在实施例中,通过一个或多个配置文件来完成该通信。在1140处,VIC适配器确保配置文件中数据的正确性,并解析这些文件。在1150处,VIC适配器动态地构建将设备及虚拟和物理功能连接到适当主机的一个或多个接口。在1160处,VIC适配器启用SRIOV转换逻辑(如图8中的模块865所示),SRIOV转换逻辑将虚拟功能的配置空间事务转换为物理功能的配置空间。按照针对该主机的vNIC的配置文件中所指定的,该逻辑还将具有SRIOV能力的设备映射到适当的主机。
[0046] 一旦完成映射,则设备被映射到关联主机的vNIC。VIC适配器通知CSM它已准备好继续进行。然后,CSM启动盒并启动在该主机上运行的操作系统,现在其可以与物理设备一起工作,就如同物理设备本地连接到该主机一样。
[0047] 在实施例中,VIC适配器中的固件通过使用从主机提供的地址到VIC适配器的本地寻址方案的RNAXI转换,来将vNIC的BAR转换为设备的地址。在物理功能的情况下,固件还可以通过RNAXI转换将VIC适配器的物理设备地址空间的配置空间映射到vNIC的配置基址。对于VF,固件为vNIC创建自定义配置空间,以对PF的配置空间的一部分进行仿真。但这并不代表VF的实际配置空间。
[0048] 当主机通过使用BDF值尝试访问VF的配置空间时,SRIOV转换器模块将基于vNIC到具有SRIOV能力的PCIe设备的映射来适当地对地址进行转换以驱动虚拟功能或物理功能。然后,将通过使用RNAXI转换将所转换的地址转换到设备的地址空间。当主机尝试访问映射到其的虚拟功能的BAR时,地址被转换为设备的经固件转换的地址空间。
[0049] 当在从设备到主机的上行方向上期望DMA时,由主机提供的DMA地址可以被直接给予到设备。针对PF和VF的上行地址转换以相同的方式进行。然后,设备发出DMA,该DMA又通过RNAXI转换而被转换到主机,将数据适当地放置到主机存储器中。
[0050] 值得注意的是,SRIOV转换模块主要将从主机发出到vNIC的下行配置空间访问转换成具有SRIOV能力的设备的适当物理或虚拟功能。如果此请求属于物理功能,则它按原样传递到设备而不改变偏移。如果此请求属于虚拟功能,则转换模块基于虚拟功能的配置空间的哪个部分需要被更新以及相关联的vNIC的配置空间的哪个部分需要被更新来采取适当的动作。对于支持SRIOV设备中的虚拟功能的每个vNIC,SRIOV转换模块具有自定义配置空间。
[0051] 当主机想要对映射到虚拟功能的vNIC的配置空间进行更新时,SRIOV转换模块执行两个操作:1)基于所发出的请求的类型对虚拟功能的适当配置空间进行更新,以及2)在更新了虚拟功能的配置空间之后对设备的配置空间进行更新。在完成虚拟功能配置空间中的活动之后,SRIOV转换模块可以提供对配置空间请求的响应。
[0052] 根据实施例,图12从VIC适配器的角度示出了上述处理。在1210处,对所附接的设备进行清点。在1220处,VIC适配器在设备中寻找SRIOV能力,针对被支持的VF数目,在这些设备中启用SRIOV。在1230处,BDF值与所发现的设备相关联,包括PF和VF。在1240处,将清单发送到CSM。在1250处,准备用于(一个或多个)VF的配置空间。在1260处,通过一个或多个配置文件从CSM接收设备和功能的标识加上相应主机的位置。在1270处,构建将每个设备和功能映射到主机的接口。
[0053] 如上所述,对于连接、移动或移除主机阵列中的PCIe设备也期望热插拔能力。通过使用下面描述的系统和方法,一旦在VIC适配器处正确地发现这种设备,管理员不需要针对在同一机箱中的不同物理主机处的进一步热插拔插入/移除而执行任何手动干预。管理员可以选择哪个主机将与新发现的PCIe设备映射,而不需要重启主机。管理员可以选择从一个盒中执行设备的热插拔移除,然后将该设备添加到同一机箱中的另一主机,而不需要重启所讨论的两个不同的物理主机,而这一切都不需要手动干预。此外,管理员可以基于在主机上运行的应用的类型来选择设备要被映射到的主机。他还可以将设备的热插拔插入/移除策略关联到该盒。
[0054] 在图13中示出了用于实现这种功能的系统。示出了一组主机1310、1311和1312。还示出了具有SRIOV能力的PCIe设备1321。该设备可以通过PCIe交换机1330和VIC适配器1340连接到主机中的一个。可以通过相应的接口(在本示例中示为vNIC 1350、1351和1352)实现对主机1310、1311和1312的访问。vNIC通过相应的能够热插拔的交换机1370、1371和1372连接到它们的主机。如下面将更详细描述的,通过例如VIC适配器1340中的固件1360的操作实现设备1321到特定主机的映射,其中固件1360与地址转换模块137协同工作。固件1360和地址转换模块1370中的逻辑操纵寻址,以将设备1321连接到适当的主机。
[0055] 在图14中示出这种系统的附加特征。与前一示例中一样,PCIe设备被映射到特定主机。示出了三个主机1410、1411和1412以及PCIe设备1420。在该示例中,PCIe设备1420具有0x300的BDF值。PCIe设备1420经由PCIe交换机1430连接到VIC适配器1440。用于主机的接口被示为vNIC 1451、1452和1453。每个示出了盒标识符和盒内针对其关联主机的实例。还示出了计算系统管理模块CSM 1480与VIC适配器1440和主机的vNIC 1451、1452和1453通信。在此示例中,PCIe设备到主机的映射以及系统1400的其他操作受一个或多个策略约束。这里示出了热插拔策略1490。由这种策略施加的约束可以通过CSM 1480来实现。
[0056] 图15中示出了根据实施例的用于确定主机和PCIe设备的存在的过程。在1510处,CSM学习目前主机的数目及其位置。如上面在之前的示例中所讨论的,由BMC和/或CMC将该信息发送到CSM。如在上述情况中一样,主机的位置可以包括持有主机的盒的标识符以及盒内的主机的标识符。在1520处,CSM查询VIC适配器以获得附接到VIC适配器的物理设备的清单。在VIC适配器已经学习完这些设备并且满足CSM的查询之后,在1530处,CSM向管理员报告主机的数目和设备的清单。这可以通过CLI或GUI进行。此外,VIC适配器此时已将总线地址关联到每个设备的BAR,以允许访问寄存器空间。在1540处,VIC适配器通知CSM它的哪些插槽可被视为能够热插拔的。在1550处,用户标识设备的清单以及每个设备将支持什么类型的应用。
[0057] 在实施例中,VIC适配器还向所选择的主机的OS通知关于具有热插拔能力的PCIe交换机的存在。OS还可以为附加设备预留总线地址空间和BDF值。
[0058] 在图16中示出了根据实施例的热插拔设备到主机的映射。在1610处,用户为每个设备确定主机。在1620处,用户向CSM提供所选主机的位置(例如,盒标识符和盒内的主机标识符)和设备的标识。在1630处,管理员可以设置热插拔标志。在1640处,CSM向VIC适配器通知针对该设备的热插拔插入请求。在1650处,VIC适配器确保该请求的正确性。在1660处,VIC适配器构建将该设备映射到所选主机的接口。为此,VIC适配器配置RNAXI寄存器并将设备绑定到主机的vNIC。在1670处,VIC适配器向所选主机的OS发送热插拔中断。在所示实施例中,经由与所选主机相关联的能够热插拔的虚拟交换机发送该中断。在1680处,OS执行对设备的发现、枚举和驱动加载。驱动将设备的BDF和BAR地址相关联来使设备能够工作。
[0059] 图17中根据实施例从VIC适配器角度示出了对组件进行标识并将热插拔设备映射到主机的过程。在1720处,VIC适配器对附接到其的物理设备进行清点。如上所述,这种设备可以通过PCIe交换机附接到VIC适配器。在1720处,VIC适配器通知CSM它的哪些插槽可以被作为能够热插拔的。在1730处,VIC适配器接收针对设备的热插拔插入请求。在1740处,VIC适配器确保该请求的正确性。在1750处,VIC适配器构建将该设备连接到主机的接口。在1760处,VIC适配器经由与所选主机相关联的能够热插拔的虚拟交换机向主机的OS发送热插拔中断。
[0060] 在图18中示出了根据实施例的设备从主机热插拔分离的过程。在1810处,管理员通知CSM将从主机移除该设备。在1820处,CSM验证该信息并将该消息作为删除请求转发到VIC适配器。在1830处,VIC适配器验证信息并且确定要解映射(unmap)的主机和设备。在1840处,VIC适配器向主机的OS发出热插拔移除中断,指定设备的BDF。在1850处,OS释放对设备的控制。在实施例中,这可能需要VIC适配器向OS发送注意中断,这意味着下行端口下的设备即将被移除。然后,OS向热插拔驱动发出删除通知以采取适当的动作。然后,OS中的热插拔驱动停止IO以及设备正在进行的任何事务。然后热插拔驱动关闭下行端口的电源。
一旦VIC适配器接收到针对该插槽的断电事件(例如,通过下行端口内的热插拔寄存器),则接下来在1860处VIC适配器从拓扑中移除该设备。
[0061] 根据实施例,在图19中从VIC适配器的角度示出分离过程。在1910处,VIC适配器从CSM接收移除请求。在1920处,该请求被验证,并且VIC适配器确定要解映射的主机和设备。在1930处,VIC适配器向主机的OS发出热插拔移除中断。在1940处,从系统拓扑中移除该设备。
[0062] 在实施例中,上述处理由VIC适配器中的软件或固件执行。在图20中示出了软件或固件实施例。计算系统2000包括被共同示为存储器2010的一个或多个存储器设备。存储器2010与一个或多个可编程处理器或控制器2020以及被共同表示为I/O 2030的输入/输出端口和设备进行通信。在一种形式中,I/O 2030包括实现与PCIe交换机、一个或多个PCIe设备和主机通信的接口。
[0063] 存储器2010可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电的、光学的或其他物理有形(即非暂态)的设备。存储器2010存储数据以及可执行指令2040。指令2040可在(一个或多个)处理器2020上执行。(一个或多个)处理器2020包括例如执行指令2040的微处理器微控制器。因此,一般来说,存储器2010可以包括用包括了计算机可执行指令的软件或固件编码的一个或多个有形(非暂态)计算机可读存储介质(例如,(一个或多个)存储器设备)。当(由(一个或多个)处理器
2020)执行软件时,软件或固件可操作以执行本文所描述的操作。
[0064] 在所示实施例中,可执行指令2040可以包括多个模块。这些包括被配置为对经由PCIe交换机附接到VIC适配器的PCIe设备进行标识的清点模块2050。可执行指令2040还可以包括配置文件访问模块2060,该模块被配置为对包括了PCIe设备的标识以及主机位置的配置文件进行读取和验证。可执行指令2040还可以包括接口构建模块2060,该模块被配置为执行与将PCIe设备或虚拟或物理功能连接到所选主机相关的功能。
[0065] 以上描述提供了一种将设备连接到多个处理主机之一的方法,包括:学习主机的数目和位置以及设备的标识;接收设备与所选主机的对应关系,其中主机是从多个主机中选择的;以及动态地构建将设备连接到所选主机的接口,其中学习、接收和构建由VIC适配器来执行。
[0066] 在另一种形式中,提供了一种用于将外围设备连接到多个处理主机之一的装置,该装置包括存储器以及处理器,处理器耦接到存储器并且被配置为执行存储在存储器设备中的指令,该处理器被配置为:学习主机的数目和位置以及设备的标识;接收设备与所选主机的对应关系,其中主机是从多个主机中选择的;以及动态地构建将设备连接到所选主机的接口。
[0067] 在另一种形式中,提供了计算机可读非暂态存储介质,该存储介质用计算机可读指令编码,当该指令由处理器执行时,使得处理器:学习主机的数目和位置以及设备的标识;接收设备与所选主机的对应关系,其中主机是从多个主机中选择的;以及动态地构建将设备连接到所选主机的接口,其中学习、接收和构建由虚拟接口卡(VIC)适配器来执行。
[0068] 虽然本文公开了各种实施例,但应理解的是,仅以示例而非限制的方式来呈现它们。对于相关领域的技术人员显而易见的是,可以在形式和细节上对其进行各种改变,而不背离本文公开的方法和系统的精神和范围。本文使用功能构建块来说明其功能、特征和关系。为了方便描述,本文已经任意地定义了这些功能构建块的至少一些边界。只要适当地执行指定的功能及其关系,就可以定义替代的边界。权利要求的宽度和范围不应受到本文所公开的任何示例性实施例的限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈