Oracle® VM Server for SPARC 3.3 管理指南

退出打印视图

更新时间: 2015 年 10 月
 
 

高级 SR-IOV 主题:InfiniBand SR-IOV

本节介绍如何确定 InfiniBand 物理功能和虚拟功能,以及如何将 Logical Domains Manager 与 InfiniBand 物理功能和虚拟功能的 Oracle Solaris 视图关联起来。

列出 InfiniBand SR-IOV 虚拟功能

以下示例说明使用不同方法来显示有关 /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 输出显示 VF0VF1 已分配到 primary 域,而 VF2VF3 已分配到 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 功能

本节介绍如何确定 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 具有两个虚拟功能:VF0VF1,这两个虚拟功能已分配到 primary 域。每个虚拟功能的第 11 位十六进制数字都是在相关物理功能的基础上递增 1。因此,如果 PF0 的 GUID 为 8,则 VF0VF1 的 GUID 将分别为 9A

以下 dladm show-ib 命令输出显示 net5net6 链路属于物理功能 PF0net19net9 链路属于同一设备的 VF0,而 net18net11 链路则属于 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