構築からトラブルシューティングまで
InfiniBandで変わるデータセンター内通信(後編)

松本直人
仮想化インフラストラクチャ・オペレーターズグループ チェア
さくらインターネット研究所 上級研究員
2011/7/20

InfiniBandネットワークのトラブルシュート

 InfiniBandネットワークはイーサネットとは異なるネットワークです。動作するシステムが異なるということは、見るべきシステム動作個所もコマンドも異なってきます。

 ここでは、より詳しいInfiniBand関連デバッグコマンドをいくつか例示していきます。動作確認は、OpenSMが動作しているScientific Linux 6.0上から行いました。

SL6# ib[tab]
ib_acm                ibdmsh                ibroute
ib_acme               ibdmtr                ibrouters
ibaddr                ibdump                ib_send_bw
ibcacheedit            ibfindnodesusing.pl   ib_send_lat
ibcheckerrors         ibhosts               ibsim
ibcheckerrs           ibidsverify.pl        ibsrpdm
ibchecknet            ib_ipoib_sysctl       ibstat
ibchecknode           ibis                  ibstatus
ibcheckport           iblinkinfo            ibswitches
ibcheckportstate      iblinkinfo.pl        ibswportwatch.pl
ibcheckportwidth      ibmsquit              ibsysstat
ibcheckstate          ibmssh                ibtopodiff
ibcheckwidth          ibnetdiscover        ibtracert
ibclearcounters       ibnlparse             ibv_asyncwatch
ibclearerrors          ibnodes              ibv_devices
ib_clock_test         ibping                ibv_devinfo
ibdatacounters        ibportstate           ibv_rc_pingpong
ibdatacounts          ibprintca.pl          ibv_srq_pingpong
ibdev2netdev          ibprintrt.pl          ibv_uc_pingpong
ibdiagnet             ibprintswitch.pl      ibv_ud_pingpong
ibdiagpath            ibqueryerrors         ib_write_bw
ibdiagui              ibqueryerrors.pl      ib_write_bw_postlist
ibdiscover.pl         ib_read_bw            ib_write_lat
ibdmchk               ib_read_lat
InfiniBand Network関連デバッグコマンドの一覧

 ibhostsコマンドでは、InfiniBand上に接続されるホスト一覧を表示します。

# ibhosts
Ca      : 0x0002c9030010c36c ports 2 "hostname HCA-2"
Ca      : 0x0002c9030010c360 ports 2 "hostname HCA-2"
Ca      : 0x0002c9030010c328 ports 2 "sl6 HCA-1"
ibhostsコマンドコマンドの実行例

 iblinkinfoコマンドでは、スイッチおよびホストの接続状況を表示します。

# iblinkinfo
Switch 0x000b8cffff006f38 MT43132 Mellanox Technologies:
2    1[  ] ==(                Down/ Polling)==>             [ ] "" ( )
2    2[  ] ==(                Down/ Polling)==>             [ ] "" ( )
2    3[  ] ==(                Down/ Polling)==>             [ ] "" ( )
2    4[  ] ==(                Down/ Polling)==>             [ ] "" ( )
2    5[  ] ==(                Down/ Polling)==>             [ ] "" ( )
2    6[  ] ==( 4X 2.5 Gbps Active/ LinkUp)==>       8    1[ ] "sl6 HCA-1" ( )
2    7[  ] ==( 4X 2.5 Gbps Active/ LinkUp)==>       9    1[ ] "hostname HCA-2" ( )
2    8[  ] ==( 4X 2.5 Gbps Active/ LinkUp)==>      10    1[ ] "hostname HCA-2" ( )
iblinkinfoコマンドコマンドの実行例

 ibswitchesは、スイッチ一覧表示を行います。複数台でInfiniBandネットワークを構成した場合などに有効です。

# ibswitches
Switch  : 0x000b8cffff006f38 ports 8 "MT43132 Mellanox Technologies" base port 0 lid 2 lmc 0
ibswitchesコマンドの実行例。今回の構成例では1台のみの表示

 ibtracertコマンドは、ホスト間でのInfiniBandネットワークの接続性を確認します。

# ibtracert 9 10
From ca {0x0002c9030010c360} portnum 1 lid 9-9 "hostname HCA-2"
[1] -> switch port {0x000b8cffff006f38}[7] lid 2-2 "MT43132 Mellanox Technologies"
[8] -> ca port {0x0002c9030010c36d}[1] lid 10-10 "hostname HCA-2"
To ca {0x0002c9030010c36c} portnum 1 lid 10-10 "hostname HCA-2"
ibtracertコマンドの実行例

 InfiniBandネットワークを構成するために、Subnet Manager(OpenSM)で設定されるルーティングアルゴリズムは全部で5種類あります。通常のデフォルト値では、各ホスト間を最小距離でつなぐ「MinHop」によって構成されるようになっています。

 より大規模なシステムを想定したInfiniBandネットワークを構成する場合、「FatTree」を用いる場合も多くあります。データセンター内部での利用方針などと合わせて、Subnet管理方法を選択するとよいでしょう。

1. Min Hop Algorithm
2. UPDN Unicast routing algorithm
3. Fat Tree Unicast routing algorithm
4. LASH unicast routing algorithm
5. DOR Unicast routing algorithm

 より深いデバッグを行う場合などは、ibdumpコマンドが有効です。お試しあれ ;-)

# ibdump
------------------------------------------------
IB device                      : "mlx4_0"
IB port                        : 1
Dump file                      : sniffer.pcap
Sniffer WQEs (max burst size)  : 4096
------------------------------------------------

Initiating resources ...
searching for IB devices in host
Port active_mtu=2048
MR was registered with addr=0x1c79720, lkey=0xa0002715, rkey=0xa0002715, flags=0x1
QP was created, QP number=0x50004a

Ready to capture (Press ^c to stop):
Captured:         12 packets,      4580 bytes
より深いデバッグを行えるibdumpコマンドの実行例

Wiresharkで通信を可視化

 また、InfiniBandのパケットダンプツール(ibdump)により出力されたファイルは、Wiresharkを使うことで、より視覚的に確認することも可能です。

# ibdump
------------------------------------------------
IB device : "mlx4_0"
IB port : 1
Dump file : sniffer.pcap
Sniffer WQEs (max burst size) : 4096
------------------------------------------------

Initiating resources ...
searching for IB devices in host
Port active_mtu=2048
MR was registered with addr=0x7c5720, lkey=0x48002717, rkey=0x48002717, flags=0x1
QP was created, QP number=0x58004a

Ready to capture (Press ^c to stop):
Captured: 2 packets, 580 bytes
ibdumpの出力結果

上記の出力内容をWiresharkで確認できる

SCSI RDMA Protocol対応ストレージにも要注目

 InfiniBandは、低遅延で最初からQoSを考慮したネットワーク設計である特性を生かして、ストレージシステムの接続にも利用可能です。

 中でも最近、SCSIをRDMA転送環境で実現したSRP(SCSI RDMA Protocol)に対応したストレージに注目が集まっています。InfiniBandではすでに、10GbEを超える40Gbps QDR InfiniBandネットワークが普及価格帯にまで下りてきており、この流れに拍車がかかっています。

 SRPは、ホスト側で「SRP Initiator」が、ストレージ側で「SRP target」が動作することで構成され、いずれもInfiniBandネットワーク上でネイティブ動作をします。

図4 InfiniBandを構成するプロトコルのスタック

 SRP Initiatorは、すでにVMware ESXiなどにも導入される段階まできており、今後の普及も期待されます。日本国内においても、日本オラクルやテクノグラフィー、ニューテックなどのベンダが取り組んでいます。

 東日本大震災を挟んでの掲載となりましたが、ここまで読んでいただきありがとうございました。これにてInfiniBandで変わるデータセンター内通信の前編・後編は終わりですが、今後もInfiniBandとIP、ストレージネットワークの新たな動きには注目が集まりそうです。


InfiniBandで変わるデータセンター内通信(後編)
  56Gbpsも見えてきた、InfiniBandを巡る最新動向
40Gbps IP over InfiniBand環境のススメ
Scientific Linux 6.0のインストールと設定
  VMwareのインストールと設定
VMware上での仮想環境の設定
Scientific Linux 6.0でのトラブルシュートと動作確認
Mware ESXi 4.1でのトラブルシュートと動作確認
InfiniBandネットワークのトラブルシュート
Wiresharkで通信を可視化
SCSI RDMA Protocol対応ストレージにも要注目
「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間