本节介绍如何确定 InfiniBand 物理功能和虚拟功能,以及如何将 Logical Domains Manager 与 InfiniBand 物理功能和虚拟功能的 Oracle Solaris 视图关联起来。
以下示例说明使用不同方法来显示有关 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 物理功能的信息。如果某个物理功能名称包含 IOVIB 字符串,则表示这是一个 InfiniBand SR-IOV 设备。
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV niu_0 NIU niu_0 primary /SYS/MB/RISER0/PCIE0 PCIE pci_0 primary EMP /SYS/MB/RISER1/PCIE1 PCIE pci_0 primary EMP /SYS/MB/RISER2/PCIE2 PCIE pci_0 primary EMP /SYS/MB/RISER0/PCIE3 PCIE pci_0 primary OCC /SYS/MB/RISER1/PCIE4 PCIE pci_0 primary OCC /SYS/MB/RISER2/PCIE5 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/SASHBA1 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/NET2 PCIE pci_0 primary OCC /SYS/MB/RISER0/PCIE3/IOVIB.PF0 PF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF0 VF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF1 VF pci_0 primary /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF2 VF pci_0 iodom1 /SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF3 VF pci_0 iodom1 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1
ldm list-io -l 命令可提供有关指定物理功能设备 /SYS/MB/RISER1/PCIE4/IOVIB.PF0 的更多详细信息。maxvfs 值显示该物理设备可支持的最多虚拟功能数为 64。对于与物理功能关联的每个虚拟功能,输出会显示以下信息:
功能名称
功能类型
总线名称
域名
功能的可选状态
设备路径
此 ldm list-io -l 输出显示 VF0 和 VF1 已分配到 primary 域,而 VF2 和 VF3 已分配到 iodom1 I/O 域。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]
本节介绍如何确定 InfiniBand SR-IOV 设备。
使用 ldm list-io -l 命令可显示与每个物理功能和虚拟功能关联的 Oracle Solaris 设备路径名称。
primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0 NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0] maxvfs = 64 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 primary [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3 VF pci_0 iodom1 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]
使用 dladm show-phys -L 命令可将每个 IP over InfiniBand (IPoIB) 实例与其物理卡匹配。例如,以下命令显示哪些 IPoIB 实例使用插槽 PCIE4 中的卡,即,前面的 ldm list-io -l 示例中显示的卡。
primary# dladm show-phys -L | grep PCIE4 net5 ibp0 PCIE4/PORT1 net6 ibp1 PCIE4/PORT2 net19 ibp8 PCIE4/PORT1 net9 ibp9 PCIE4/PORT2 net18 ibp4 PCIE4/PORT1 net11 ibp5 PCIE4/PORT2
每个 InfiniBand 主机通道适配器 (host channel adapter, HCA) 设备都有一个全局唯一标识符 (globally unique ID, GUID)。每个端口也有 GUID(通常,一个 HCA 具有两个端口)。InfiniBand HCA GUID 用于唯一标识相应的适配器。端口 GUID 用于唯一标识每个 HCA 端口,并承担与网络设备的 MAC 地址类似的角色。这些 16 位十六进制数字 GUID 可供 InfiniBand 管理工具和诊断工具使用。
使用 dladm show-ib 命令可获取有关 InfiniBand SR-IOV 设备的 GUID 信息。同一设备的物理功能和虚拟功能具有相关的 HCA GUID 值。HCA GUID 的第 11 位十六进制数字显示了物理功能与其虚拟功能之间的关系。请注意,在 HCAGUID 和 PORTGUID 列中,前导零均已禁止显示。
例如,物理功能 PF0 具有两个虚拟功能:VF0 和 VF1,这两个虚拟功能已分配到 primary 域。每个虚拟功能的第 11 位十六进制数字都是在相关物理功能的基础上递增 1。因此,如果 PF0 的 GUID 为 8,则 VF0 和 VF1 的 GUID 将分别为 9 和 A。
以下 dladm show-ib 命令输出显示 net5 和 net6 链路属于物理功能 PF0。net19 和 net9 链路属于同一设备的 VF0,而 net18 和 net11 链路则属于 VF1。
primary# dladm show-ib LINK HCAGUID PORTGUID PORT STATE PKEYS net6 21280001A17F56 21280001A17F58 2 up FFFF net5 21280001A17F56 21280001A17F57 1 up FFFF net19 21290001A17F56 14050000000001 1 up FFFF net9 21290001A17F56 14050000000008 2 up FFFF net18 212A0001A17F56 14050000000002 1 up FFFF net11 212A0001A17F56 14050000000009 2 up FFFF
以下 dladm show-phys 输出中的设备显示了链路和底层 InfiniBand 端口设备 (ibpX) 之间的关系。
primary# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE ... net6 Infiniband up 32000 unknown ibp1 net5 Infiniband up 32000 unknown ibp0 net19 Infiniband up 32000 unknown ibp8 net9 Infiniband up 32000 unknown ibp9 net18 Infiniband up 32000 unknown ibp4 net11 Infiniband up 32000 unknown ibp5
使用 ls -l 命令可显示实际 InfiniBand 端口(IB 端口)设备路径。IB 端口设备是 ldm list-io -l 输出中所示设备路径的子项。物理功能的单元地址包含一部分(如 pciex15b3,673c@0),而虚拟功能的单元地址则包含两部分(如 pciex15b3,1002@0,2)。此单元地址的第二部分比虚拟功能编号大 1。(在此示例中,第二个组成部分为 2,因此,该设备为虚拟功能 1。)以下输出显示 /dev/ibp0 为物理功能,而 /dev/ibp5 为虚拟功能。
primary# ls -l /dev/ibp0 lrwxrwxrwx 1 root root 83 Apr 18 12:02 /dev/ibp0 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0/hermon@0/ibport@1,0,ipib:ibp0 primary# ls -l /dev/ibp5 lrwxrwxrwx 1 root root 85 Apr 22 23:29 /dev/ibp5 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,2/hermon@3/ibport@2,0,ipib:ibp5
可以使用 OpenFabrics ibv_devices 命令查看 OpenFabrics 设备名称和节点 (HCA) GUID。如果具有虚拟功能,则 Type 列可指示此功能为物理功能还是虚拟功能。
primary# ibv_devices device node GUID type ------ ---------------- ---- mlx4_4 0002c90300a38910 PF mlx4_5 0021280001a17f56 PF mlx4_0 0002cb0300a38910 VF mlx4_1 0002ca0300a38910 VF mlx4_2 00212a0001a17f56 VF mlx4_3 0021290001a17f56 VF