Mellanox ConnectX-2 のポート設定

Mellanox ConnectX2の動作モードは、10Gイーサネットのモードと、Infiniband のモードとがある。

初期設定は、2つのポートとも Infiniband に設定されているが、片方をイーサネットにしたり、両方ともイーサネットにしたりすることができる。

その変更には、
connectx_port_config
を使用する。
このスクリプトは、2月9日の記事の通りセットアップすれば、 /sbin に存在する。

現在の設定状況を確認するには、
# /sbin/connectx_port_config -s
でよい。
--------------------------------
Port configuration for PCI device: 0000:05:00.0 is:
ib
ib
--------------------------------

設定を変更するには、
# sudo /sbin/connectx_port_config
とすることで、対話的に設定することができる


ConnectX PCI devices :
|----------------------------|
| 1 0000:05:00.0 |
|----------------------------|

Before port change:
ib
ib

|----------------------------|
| Possible port modes: |
| 1: Infiniband |
| 2: Ethernet |
| 3: AutoSense |
|----------------------------|
Select mode for port 1 (1,2,3): 1
Select mode for port 2 (1,2,3): 2

After port change:
ib
eth

ところで、下から3行目の After port change: が出るまでには、ポートが使用されていると、アイドル状態になるのを待つため少し時間がかかる。

この操作で、 /etc/infiniband/connectx.conf が書き換わる。
# sp8test161 35% cat /etc/infiniband/connectx.conf
# ConnectX Port Configuration for 0000:05:00.0
/sbin/connectx_port_config -d 0000:05:00.0 -c ib,eth

このファイルが起動時に読み込まれ、次回以降のデフォルトとして設定される。

起動時の初期設定の変更は、このファイルを弄ればよい。

ところで、 Gluster がインストールされていると、glusterdが起動された段階で、Infiniband を掴んでしまい、アイドル状態にならない。このため起動時のポート設定で、固まってしまう。
そこで、glusterd を立ち上げる /etc/init.d/glusterfs-server スクリプトの呼び出し順序をとりあえず一番最後になるように
S20glusterfs-server → S98glusterfs-server
と変更してみたが、うまくいかず。

結局、スタートアップスクリプトで glusterfs-server を読み込むのではなく、rc.local で読み込むようにすることで、何とか解決できた。

/etc/infiniband/connectx.conf の読み込み順序が分かれば、スタートアップスクリプトでの起動に戻せるのですが。

取りあえず、Mellanox ConnectX2 を使って、片ポートを10Gイーサネットで運用したい場合は要注意です。