このセクションでは、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]
このセクションでは、Oracle Solaris 11 および Oracle Solaris 10 システム上の 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]
Oracle Solaris 11:
Oracle Solaris 11 dladm show-phys -L コマンドを使用して、各 IP over InfiniBand (IPoIB) インスタンスをその物理カードに一致させます。たとえば、次のコマンドは、スロット 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 管理ツールと診断ツールで使用されます。
Oracle Solaris 11 dladm show-ib コマンドを使用して、InfiniBand SR-IOV デバイスに関する GUID 情報を取得します。同じデバイスの物理機能と仮想機能は、関連した HCA GUID 値を持ちます。HCA GUID の 16 進数の 11 桁目は、物理機能とその仮想機能の関係を示します。HCAGUID 列と PORTGUID 列の先頭のゼロは表示されません。
たとえば、物理機能 PF0 には 2 つの仮想機能 VF0 および VF1 があり、これらは primary ドメインに割り当てられています。各仮想機能の 16 進数の 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
次の Oracle Solaris 11 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
Oracle Solaris 10:
Oracle Solaris 10 ゲスト I/O ドメインで、dladm show-dev コマンドを使用して、各 IPoIB インスタンスを表示します。これは ibdxx の形式の名前を持ちます。
# dladm show-dev vnet0 link: up speed: 0 Mbps duplex: unknown ibd0 link: up speed: 32000 Mbps duplex: unknown ibd1 link: up speed: 32000 Mbps duplex: unknown ibd2 link: up speed: 32000 Mbps duplex: unknown ibd3 link: up speed: 32000 Mbps duplex: unknown
/devices/ ディレクトリ内の HCA パス名に対して ls -l コマンドを使用して、HCA とその HCA GUID を抽出できます。
# ls -l /devices/ib\:[0-9]* crw-r--r-- 1 root sys 67, 0 Jun 12 16:27 /devices/ib:212B0001A17F56 crw-r--r-- 1 root sys 67, 0 Jun 12 16:27 /devices/ib:212C0001A17F56
ibv_devices 出力の GUID (16 進数の 11 桁目、この例では "B" と "C" に注意) は、これらが Oracle Solaris 10 ドメインに割り当てられている仮想機能であることを示しています。/dev IPoIB パス名に対して、ls -l コマンドを使用して、IPoIB インスタンスに関する詳細を取得できます。
# ls -l /dev/ibd* lrwxrwxrwx 1 root other 29 May 23 16:26 /dev/ibd -> ../devices/pseudo/clone@0:ibd lrwxrwxrwx 1 root root 89 May 31 10:52 /dev/ibd0 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@1,ffff,ipib:ibd0 lrwxrwxrwx 1 root root 89 May 31 10:52 /dev/ibd1 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@2,ffff,ipib:ibd1 lrwxrwxrwx 1 root root 89 Jun 12 18:36 /dev/ibd2 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@1,ffff,ipib:ibd2 lrwxrwxrwx 1 root root 89 Jun 12 18:36 /dev/ibd3 -> ../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@2,ffff,ipib:ibd3
各パスは、ldm list-io -l の出力に示されるデバイスパスから始まります。pciex15b3,1002@0,4 などの仮想機能は、2 部のユニットアドレスを持ち、ユニットアドレスの 2 番目の部分が仮想機能の数字より 1 つ大きくなります (この例では VF3)。
ibport デバイスは、後にコロンと IPoIB デバイスインスタンス名が付いた 3 部のユニットアドレスを持ちます。ユニットアドレスの最初の部分はポート番号です。2 番目の部分は、パーティションキー (P キー) の 16 進値です。InfiniBand P キー値は、VLANs for Ethernet に似ています。3 番目の部分は文字列 ipib です。
ls -l /dev/ibd3 コマンド出力は、ibd3 IPoIB インスタンスがポート 2 と P キー値 ffff を使用していることを示しています。