InfiniBand (IB) は、スイッチファブリックに基づく入出力テクノロジです。この技術により、入出力デバイスとホストとの接続やホスト間の通信で、帯域幅が広く応答時間の短い相互接続が提供されます。
この章の内容は以下のとおりです。
IB デバイスの使用手順については、次の節を参照してください。
動的再構成およびホットプラグについての一般的な情報については、第 6 章デバイスの動的構成 (手順)を参照してください。
IB デバイスは Solaris IB 連結ドライバによって管理されます。このドライバは、次の 5 種類のデバイスをサポートしています。
IB Port デバイス
IB 仮想物理接続点 (VPPA) デバイス
IB HCA サービス (HCA_SVC) デバイス
疑似デバイス
入出力コントローラ (IOC) デバイス
IB 連結ドライバは、Solaris IB デバイスマネージャー (IBDM) にサービス (このマニュアルでは「通信サービス」と呼ぶ) を照会して、IB Port、HCA_SVC、および IB VPPA デバイスを列挙します。
Port デバイスは、Host Channel Adapter (HCA) の特定のポート番号に通信サービスをバインドします。これに対し、VPPA デバイスは、ポート番号とパーティションキー番号の組み合わせに通信サービスをバインドします。HCA_SVC デバイスは、特定の HCA に通信サービスをバインドします。Port デバイスと HCA_SVC デバイスでは、パーティションキー p_key の値として常に 0 が使用されます。Port、HCA_SVC、および VPPA デバイスは、HCA の子であり、ib.conf ファイルから列挙されます。詳細は、ib(7D) のマニュアルページを参照してください。
IOC デバイスは、IB 連結ドライバの子であり、入出力ユニットの一部です。擬似デバイスも IB 連結ドライバの子です。独自の構成ファイルを持つほかのすべてのデバイスを参照して列挙されます。詳細は、ib(4) のマニュアルページを参照してください。
次の表に、IB デバイスツリーのパス名の形式を示します。
IOC デバイス |
/ib/ioc@1730000007F510C,173000007F50 |
IB 擬似デバイス |
/ib/<driver>@<unit-address> |
IB VPPA デバイス |
/pci@1f,2000/pci@1/pci15b3,5a44@0/ibport@<port#>,<p_key>,<service> |
IB HCA_SVC デバイス |
/pci@1f,2000/pci@1/pci15bc,5a44@0/ibport@0,0,<service> |
IB Port デバイス |
/pci@1f,2000/pci@1/pci15b3,5a44@0/ibport@<port#>,0,<service> |
HCA |
/pci@1f,2000/pci@1/pci15b3,5a44@0 |
IB HCA_SVC デバイスの port# および p_key は 0 です。
上記の表で、IB の構成要素はそれぞれ次のものを表します。
通信サービスです。たとえば、ipib は、ibd カーネルクライアントドライバで使用される通信サービスです。
使用されるパーティションキーの値です。
ポート番号です。
IB カーネルクライアントドライバの driver.conf ファイルにこの名前で指定されているプロパティーを参照します。詳細は、driver.conf(4) のマニュアルページを参照してください。
作業 |
説明 |
参照先 |
---|---|---|
IB デバイス情報を表示します。 |
システム上の IB デバイスに関する情報を表示します。 | |
IOC デバイスを構成または構成解除します。 |
次のいずれかの手順に従います。 |
|
IOC デバイスの構成を解除します。 | ||
IOC デバイスを構成します。 | ||
ポートデバイスまたは VPPA デバイスを構成または構成解除します。 |
次のいずれかの手順に従います。 |
|
ポートデバイスまたは VPPA デバイスの構成を解除します。 | ||
ポートデバイスまたは VPPA デバイスを構成します。 | ||
IB 擬似デバイスを構成または構成解除します。 |
次のいずれかの手順に従います。 |
|
IB 擬似デバイスの構成を解除します。 | ||
IB 擬似デバイスを構成します。 | ||
HCA のカーネル IB クライアントを表示します。 |
HCA の構成を解除する場合などに、HCA のカーネル IB クライアントの情報を表示する必要が生じることがあります。 | |
IB HCA を構成または構成解除します。 |
次のいずれかの手順に従います。 |
|
HCA に接続されている IB デバイスの構成を解除します。 | ||
HCA に接続されている IB デバイスを構成します。 | ||
IB p_key テーブルを更新します。 |
HCA ポートの p_key テーブルの情報が変更された場合は、IBTF と IBDM に通知して内部 p_key データベースを更新する必要があります。 | |
IB 通信サービスを表示します。 |
IBTF で現在使用されている IB 通信サービスを表示します。 | |
VPPA 通信サービスを追加または削除します。 |
次のいずれかの手順に従います。 |
|
VPPA 通信サービスを追加します。 | ||
VPPA 通信サービスを削除します。 | ||
IOC の構成を更新します。 |
すべての IOC デバイスノードのプロパティーまたは特定の IOC Ap_Id を更新できます。 |
cfgadm CLI だけを使用して、稼働中のシステムの IB デバイスを構成したり、構成を解除したりできます。このコマンドでは、IB ファブリックの表示、通信サービスの管理、および p_key テーブルデータベースの更新を行うこともできます。詳細は、cfgadm_ib(1M) のマニュアルページを参照してください。
cfgadm CLI は、ホストから見た IB ファブリック全体の動的再構成 (このマニュアルでは「DR」と呼ぶ) を管理します。cfgadm の操作は、Port、VPPA、HCA_SVC、IOC、擬似デバイスなど、すべての IB デバイスでサポートされています。
cfgadm コマンドは接続点 (Ap_Id) についての情報を表示します。「接続点」とは、DR 操作を行うことができるシステム内の特定の場所のことです。cfgadm でサポートされている Ap_Id の詳細は、cfgadm_ib(1M) のマニュアルページを参照してください。IB の Ap_Id は、すべて connected と表示されます。
cfgadm コマンドを使用すると、IB デバイスステータス情報を取得できます。
受容体の状態 |
説明 |
---|---|
connected/configured/ok |
デバイスは接続されており利用可能です。devinfo ノードが存在します。 |
connected/unconfigured/unknown |
デバイスは利用不可で、このデバイスの devinfo ノードやデバイスドライバは存在しません。あるいは、このデバイスは ib 連結ドライバで使用できるように構成されませんでした。IB デバイスマネージャーではこのデバイスが認識されている可能性もあります。 |
次の節では、cfgadm コマンドを使用して IB デバイスの動的再構成 (DR) を行う方法について説明します。次のすべてのサンプル IB デバイス情報は、関連する情報に焦点を合わせるために一部省略されています。
prtconf コマンドを使用して IB デバイスの一般的な情報を表示できます。たとえば、次のようになります。
$ prtconf pci, instance #0 pci15b3,5a44, instance #0 ibport, instance #253 ibport, instance #254 ibport, instance #255 . . . ib, instance #0 ioc, instance #243 ioc, instance #244 ioc, instance #245 ioc, instance #246 ioc, instance #247 ioc, instance #248 ibgen, instance #249 |
上記の例で、pci15b3,5a44 は IB HCA を指しています。
特定の IB デバイス情報を表示するには、次の手順を使用します。
スーパーユーザーになります。
IB ファブリック情報を表示します。
次に例を示します。
# cfgadm -a Ap_Id Type Receptacle Occupant Condition ib IB-Fabric connected configured ok hca:1730000008070 IB-HCA connected configured ok ib::1730000007F5198 IB-IOC connected configured ok ib::1730000007F5199 IB-IOC connected configured ok ib::1730000008070,0,hnfs IB-HCA_SVC connected configured ok ib::1730000008071,0,sdp IB-PORT connected configured ok ib::1730000008072,0,sdp IB-PORT connected configured ok ib::1730000008071,8001,ipib IB-VPPA connected configured ok ib::1730000008072,8001,ipib IB-VPPA connected configured ok ib::ibgen,0 IB-PSEUDO connected configured ok # |
上記の出力例で、構成要素はそれぞれ次のものを表します。
ポート 2 に接続され、sdp サービスにバインドされている IB Port デバイスを識別しています。
ポート 2 に接続され、p_key の値として 0x8001 を使用し、ibd サービスにバインドされている IB VPPA デバイスを識別しています。
hnfs サービスにバインドされている IB HCA_SVC デバイスを識別しています。
IOC デバイスを識別しています。
擬似デバイスを識別しています。
特定の IB デバイス情報を表示します。
たとえば、IB VPPA デバイスの場合は次のようになります。
# cfgadm -al -s "cols=ap_id:info" ib::1730000008072,8001,ipib Ap_Id Information ib::1730000008072,8001,ipib ipib # |
たとえば、IB HCA デバイスの場合は次のようになります。
# cfgadm -al -s "cols=ap_id:info" hca::1730000008070 Ap_Id Information hca::1730000008070 VID: 0x15b3, PID: 0x5a44, #ports: 0x2, port1 GUID: 0x1730000008071, port2 GUID: 0x1730000008072 # |
上記の出力には、ポート番号とその GUID がそれぞれ表示されています。
システムに物理的に接続されている IB デバイスの構成を解除することはできますが、ドライバを適用することはできません。
スーパーユーザーになります。
次に例を示します。
# cfgadm -c unconfigure ib::1730000007F5198 Unconfigure the device: /devices/ib:fabric::1730000007F5198 This operation will suspend activity on the IB device Continue (yes/no)? y # |
デバイスの構成が解除されていることを確認します。
次に例を示します。
# cfgadm -a ib::1730000007F5198 ib::1730000007F5198 IB-IOC connected unconfigured unknown # |
スーパーユーザーになります。
次に例を示します。
# cfgadm -yc configure ib::1730000007F5198 |
IB デバイスが構成されていることを確認します。
次に例を示します。
# cfgadm -al ib::1730000007F5198 Ap_Id Type Receptacle Occupant Condition ib::1730000007F5198 IB-IOC connected configured ok |
IB Port、HCA_SVC、または VPPA デバイスをシステムから削除するには、次の手順を使用します。
次の例では VPPA デバイスの構成を解除する方法を示しますが、Port デバイスや HCA_SVC デバイスにも同じ手順を適用できます。
スーパーユーザーになります。
次に例を示します。
# cfgadm -c unconfigure ib::1730000007F51,8001,ipib Unconfigure the device: /devices/ib:fabric::1730000007F51,8001,ipib This operation will suspend activity on the IB device Continue (yes/no)? Y # |
デバイスが接続解除されていることを確認します。
次に例を示します。
# cfgadm -a ib::1730000007F51,8001,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,8001,ipib IB-VPPA connected unconfigured unknown # |
IB Port、HCA_SVC、または VPPA デバイスをシステム上で構成するには、次の手順を使用します。
次の例では VPPA デバイスを構成する方法を示しますが、Port デバイスや HCA_SVC デバイスにも同様の手順を適用できます。
スーパーユーザーになります。
次に例を示します。
# cfgadm -c configure ib::1730000007F51,8001,ipib |
デバイスが接続されていることを確認します。
次に例を示します。
# cfgadm -a ib::1730000007F51,8001,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,8001,ipib IB-VPPA connected configured ok |
IB Port デバイスや HCA_SVC デバイスの場合も、cfgadm による構成操作および構成解除操作は、前述の IB VPPA デバイスの例と同様です。
IB 擬似デバイスをシステムから削除するには、次の手順を使用します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -c unconfigure ib::ibgen,0 Unconfigure the device: /devices/ib:fabric::ibgen,0 This operation will suspend activity on the IB device Continue (yes/no)? Y # |
デバイスが接続解除されていることを確認します。
# cfgadm -a ib::ibgen,0 Ap_Id Type Receptacle Occupant Condition ib::ibgen,0 IB-PSEUDO connected unconfigured unknown |
IB 擬似デバイスを構成するには、次の手順を使用します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -yc configure ib::ibgen,0 |
デバイスが接続されていることを確認します。
次に例を示します。
# cfgadm -a ib::ibgen,0 Ap_Id Type Receptacle Occupant Condition ib::ibgen,0 IB-PSEUDO connected configured ok |
次の IB cfgadm プラグインコマンドを呼び出すと、この HCA を使用しているカーネル IB クライアントを一覧表示できます。カーネル IB クライアントが別の HCA を使用する場合は、最後の列に「yes」と表示されます。この HCA を使用しない IB マネージャーとカーネルクライアントは、Ap_Id の列に「-」と表示されます。
次に例を示します。
$ cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA ib::1730000007F51D0 ibgen no ib::1730000007F51D1 ibgen no ib::1730000007F51,8001,ipib ibd no ib::ibgen,0 ibgen no - ibdm no - ibmf no - nfs/ib no $ |
IB cfgadm プラグインには、HCA の実際の DR を行う機能は含まれていません。HCA の DR を実際に行うには、基になるバスのプラグインを使用します。たとえば、PCI ベースの HCA の場合は、cfgadm_pci コマンドを使用できます。詳細は、cfgadm_pci(1M) のマニュアルページを参照してください。
ただし、IB cfgadm プラグインは、HCA のカーネル IB クライアントを一覧表示することで、HCA の DR を補助します。その手順を次に示します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA ib::1730000007F51D0 ibgen no ib::1730000007F51D1 ibgen no ib::1730000007F51,8001,ipib ibd no ib::ibgen,0 ibgen no - ibdm no - ibmf no - nfs/ib no |
代替 HCA を持っていないカーネル IB クライアント (Port、VPPA、HCA_SVC、IOC デバイスなど) の構成を解除します。
次に例を示します。
# cfgadm -x unconfig_clients hca:1730000008070 Unconfigure Clients of HCA /devices/ib:1730000008070 This operation will unconfigure IB clients of this HCA Continue (yes/no)? y |
HCA のカーネル IB クライアントの構成が解除されていることを確認します。
# cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA - ibdm no - ibmf no - nfs/ib no # |
バス固有の cfgadm プラグインを呼び出して HCA を構成します。しかし、その詳細についてはこの章では記載していません。
追加の p_key が有効にされた場合や無効にされた場合など、HCA ポートの p_key テーブルの情報が変更された場合は、InfiniBand Transport Framework (IBTF) と IBDM に通知して内部 p_key データベースを更新する必要があります。cfgadm コマンドは、IBTF および IBDM の p_key データベースの更新を補助します。詳細は、ibtl(7D) および ibdm(7D) のマニュアルページを参照してください。
IBTF で現在使用されている IB 通信サービスを表示するには、次の手順を使用します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd HCA_SVC communication services: hnfs |
新しい VPPA 通信サービスを追加するには、次の手順を使用します。
新しい HCA_SVC 通信サービスやポート通信サービスも、同様の手順で追加できます。
スーパーユーザーになります。
次に例を示します。
# cfgadm -o comm=vppa,service=new -x add_service ib |
新しいサービスが追加されていることを確認します。
次に例を示します。
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd new HCA_SVC communication services: nfs_service # |
既存の IB Port、HCA_SVC、VPPA 通信サービスを削除するには、次の手順を使用します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -o comm=vppa,service=new -x delete_service ib |
通信サービスが削除されていることを確認します。
次に例を示します。
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd HCA_SVC communication services: hnfs # |
すべての IOC デバイスノードまたは特定の IOC Ap_Id についてプロパティーを更新するには、次の手順を使用します。更新できるプロパティーは次のとおりです。
port-list
port-entries
service-id
service-name
これらのプロパティーの詳細は、ib(7D) のマニュアルページを参照してください。
構成がまったく変更されていない場合、これらのプロパティーは更新されません。次の例は、特定の IOC の構成を更新する方法を示しています。すべての IOC の構成を更新するには、特定の IOC Ap_Id の代わりに、静的な ib Ap_Id を指定します。
スーパーユーザーになります。
次に例を示します。
# cfgadm -x update_ioc_conf ib::1730000007F5198 This operation can update properties of IOC devices. Continue (yes/no)? y # |
prtconf -v を実行して、プロパティーが更新されていることを確認します。
uDAPL (User Direct Access Programming Library) は、RDMA (Remote Direct Memory Access) に対応した InfiniBand などの相互接続を介して行われるデータセンターアプリケーションのデータメッセージングのパフォーマンス、スケーラビリティー、および信頼性を向上させる標準 API です。uDAPL インタフェースは DAT Collaborative によって定義されています。DAT Collaborative の詳細は、次の Web サイトを参照してください。
http://www.datcollaborative.org
この Solaris リリースでは、次の uDAPL 機能がサポートされます。
標準の DAT レジストリライブラリ libdat。詳細は、libdat(3LIB) のマニュアルページを参照してください。
標準のサービスプロバイダ登録ファイル dat.conf。詳細は、dat.conf(4) のマニュアルページを参照してください。
複数のサービスプロバイダのサポート。これにより、各プロバイダが uDAPL ライブラリパスやバージョン番号などを独自の service_provider.conf ファイルで指定できます。詳細は、service_provider.conf(4) のマニュアルページを参照してください。
datadm コマンド。これは dat.conf を構成するための管理ツールです。詳細は、datadm(1M) のマニュアルページを参照してください。
新しいリソース制御プロパティー project.max-device-locked-memory。ロックされる物理メモリーの量を調節します。
アドレス解決に IP インフラストラクチャーを活用する IPv4 アドレスまたは IPv6 アドレスを使った命名方式。IPv4 での ARP や IPv6 での近隣探索などが含まれます。Solaris uDAPL インタフェースアダプタは、IPoIB デバイスインスタンスに直接対応づけられます。
DAT Collaborative コミュニティーによって使用されている標準のアドレス変換方式のサポート。
Mellanox Tavor ホストチャネルアダプタをサポートするための uDAPL サービスプロバイダライブラリ。dat.conf 登録ファイルへの自動登録を提供します。
SPARC プラットフォームと x86 プラットフォームの両方をサポートします。
スーパーユーザーになります。
次のパッケージがインストールされていることを確認します。必要に応じて、これらをインストールします。
SUNWib - Sun InfiniBand フレームワーク
SUNWtavor - Sun Tavor HCA ドライバ
SUNWipoib - Sun IP over InfiniBand
SUNWudaplr - DAT (Direct Access Transport) レジストリパッケージ (root)
SUNWudaplu - DAT (Direct Access Transport) レジストリパッケージ (usr)
SUNWudapltr - Tavor パッケージ用サービスプロバイダ (root)
SUNWudapltu - Tavor パッケージ用サービスプロバイダ (usr)
IPoIB インタフェースを認識させるには、次のいずれかの手順を選択します。
datadm コマンドを使用して、DAT 静的レジストリ dat.conf ファイルを管理できます。このファイルの詳細は、dat.conf(4) のマニュアルページを参照してください。
datadm コマンドを使用して、サービスプロバイダを dat.conf ファイルに登録したり登録を解除したりすることもできます。詳細は、datadm(1M) のマニュアルページを参照してください。
IPoIB インタフェースアダプタの追加や削除を行なったときは、システムの現在の状態を反映させるために、datadm コマンドを実行して dat.conf ファイルを更新してください。現在インストールされているすべてのサービスプロバイダについて、インタフェースアダプタの新しいセットが再生成されます。
スーパーユーザーになります。
システムに IPoIP インタフェースアダプタを追加したり、システムから IPoIP インタフェースアダプタを削したりしたあとに、DAT 静的レジストリを更新します。
# datadm -u |
更新された DAT 静的レジストリを表示します。
# datadm |
スーパーユーザーになります。
Mellanox Tavor ホストチャネルアダプタ用の Sun のサービスプロバイダを追加したあとに、DAT 静的レジストリを更新します。
# datadm -a /usr/share/dat/SUNWudaplt.conf |
更新された DAT 静的レジストリを表示します。
# datadm -v |