Go to main content
Oracle® VM Server for SPARC 3.4 管理ガイド

印刷ビューの終了

更新: 2016 年 8 月
 
 

高度な 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 の出力には、VF0 および VF1primary ドメインに割り当てられており、VF2 および VF3iodom1 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]

各 IP over InfiniBand (IPoIB) インスタンスをその物理カードに一致させるには、dladm show-phys -L コマンドを使用します。たとえば、次のコマンドは、スロット PCIE4 にあるカード (前の ldm list-io -l の例で示された同じカード) を使用する IPoIB インスタンスを表示します。

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 ホストチャネルアダプタ (HCA) デバイスは、グローバル一意識別子 (GUID) を持ちます。各ポートに GUID があります (通常は HCA への 2 つのポートがあります)。InfiniBand HCA の GUID は、アダプタを一意に識別します。ポート GUID は各 HCA ポートを一意に識別し、ネットワークデバイスの MAC アドレスに似た役割を持ちます。これらの 16 進数の GUID は、InfiniBand 管理ツールと診断ツールで使用されます。

InfiniBand SR-IOV デバイスに関する GUID 情報を取得するには、dladm show-ib コマンドを使用します。同じデバイスの物理機能と仮想機能は、関連した HCA GUID 値を持ちます。HCA GUID の 16 進数の 11 桁目は、物理機能とその仮想機能の関係を示します。HCAGUID 列と PORTGUID 列の先頭のゼロは表示されません。

たとえば、物理機能 PF0 には 2 つの仮想機能 VF0 および VF1 があり、これらは primary ドメインに割り当てられています。各仮想機能の 16 進数の 11 桁目は、関連する物理機能から 1 つ増やされます。そのため、PF0 の GUID が 8 の場合、VF0VF1 の GUID はそれぞれ 9A になります。

次の 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

実際の InfiniBand ポート (IB ポート) デバイスパスを表示するには、ls -l コマンドを使用します。IB ポートデバイスは、ldm list-io -l 出力で表示されるデバイスパスの子です。物理機能は、pciex15b3,673c@0 のような 1 部のユニットアドレスを持ち、仮想機能は 2 部のユニットアドレス pciex15b3,1002@0,2 を持ちます。ユニットアドレスの 2 番目の部分は、仮想機能の数値より 1 つ大きくなります。(この例では、2 番目の成分は 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