2014年8月17日日曜日

Inifinibandを触ってみる - Install編

随分前にヤフオクで落としたInfinibandについて触る時間ができたので触ってみました。

今回使用する機材はこちら

・IA Server : i3-540 Mem:2GB 73GB SASHDD
・HCA : Cisco Infiniband HCA ( Topspin DDR-HCAe LX x8 )
・OS : CentOS 6.5 x64 - Coreパッケージのみ

どうでもいいけれど、先日、はじめてCentOSを”セントス”と発音している人を見かけた。”セントス”が正式発音なんだけど、絶対にわからないから回りにあわせて”セントオーエス”と発音している今日この頃。
※せんとクンに発音が似ているのはどうでもいい話。そういえばどこに行ったのだろう。

早速インストールからはじめる。

いろいろなサイトでお勉強したが、どうやらCentOS 6.x以上はすでにドライバが組み込まれている様子。
参考: http://www.srchack.org/article.php?story=20111129002752234

ためしにクリーンインストールを行って、いきなりモジュールを有効にしてみる。

# modprobe ib_ipoib
# ifconfig -a
~省略~
ib0       Link encap:InfiniBand  HWaddr 80:00:04:04:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:2044  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
~省略~

ifconfigのなかにib0インターフェイスが突然現れたので、本当にそのままできるのだろう。
しかし、このままでは状態監視などができないので、必要そうなパッケージをインストールすることにする。
# yum install ibutils infiniband-diags
# sudo ibstatus
Infiniband device 'mthca0' port 1 status:
        default gid:     fe80:0000:0000:0000:0005:ad00:000b:c805
        base lid:        0x0
        sm lid:          0x0
        state:           1: DOWN
        phys state:      2: Polling
        rate:            10 Gb/sec (4X)
        link_layer:      InfiniBand
ふむふむ、認識されているようだ。
しかし、このHCAはDDR対応なので、20Gbpsでリンクアップできるはずなのだが...
もしやと思い、Infinibandの対抗側に電源を入れてリンクアップさせる。
# sudo ibstatus
Infiniband device 'mthca0' port 1 status:
        default gid:     fe80:0000:0000:0000:0005:ad00:000b:c805
        base lid:        0x0
        sm lid:          0x0
        state:           2: INIT
        phys state:      5: LinkUp
        rate:            20 Gb/sec (4X DDR)
        link_layer:      InfiniBand
うむ、20Gbpsでリンクアップしています。
別のコマンドを打ってみる。
# ibaddr
ibwarn: [1594] umad_init: can't read ABI version from /sys/class/infiniband_mad/abi_version (No such file or directory): is ib_umad module loaded?
ibwarn: [1594] mad_rpc_open_port: can't init UMAD library
ibaddr: iberror: failed: Failed to open '(null)' port '0'
ふむ、ib_umadも必要そうだ。
modprobeしてみる。
# modprobe ib_umad
# ibaddr
GID fe80::5:ad00:b:c805 LID start 0x0 end 0x0
ふむ、これが正常っぽい。
UMADは「Userspace MAnagement Datagram」の略で管理系の通信を行っているモジュールのようだ。
参考:http://www.jipdec.or.jp/archives/icot/FTS/REPORTS/H12-reports/H1303-AITEC-Report3/AITEC0103-R3-html/AITEC0103-R3-ch3_2_2.htm
参考:http://www.viops.jp/ibday02-BASIC-xsigo.pdf

Infinibandでは1つ以上のサブネットマネージャが必要なのだそうだ。
こいつもyumでインストール。
# yum install opensm
# service opensm
# service opensm start
Starting IB Subnet Manager:                                [  OK  ]
# chkconfig opensm on
chkconfigでOnにすることも忘れずに。

今回はIP over IBで立ち上げるので、いつものようにifcfgを書く。
# vi /etc/sysconfig/network-scripts/ifcfg-ib0
DEVICE="ib0"
BOOTPROTO="static"
IPADDR="10.1.1.1"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="infiniband"
# ifup ib0
[root@lisa01 ~]# ifconfig
~省略~
ib0       Link encap:InfiniBand  HWaddr 80:00:04:04:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
          inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::205:ad00:b:c805/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2044  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
~省略~
もう一台、同様に設定して、疎通確認を行う。

疎通確認はOKなようなので、早速ファイルを転送してみる。
# scp CentOS-7.0-1406-x86_64-DVD.iso 10.1.1.2:
root@10.1.1.2's password:
CentOS-7.0-1406-x86_64-DVD.iso                                                   100% 3956MB 104.1MB/s   00:38    
約800Mbps...20GbpsのLinkなのでぜんぜん満足できませんなぁ。
暗号化セットを変えて再チャレンジ
# scp -c arcfour CentOS-7.0-1406-x86_64-DVD.iso 10.1.1.2:
CentOS-7.0-1406-x86_64-DVD.iso                                                   100% 3956MB 141.3MB/s   00:28 
まだぜんぜん満足できませんなぁ。

納得はいきませんが、とりあえずInstall編はここまで。