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イーサネットで運用したい場合は要注意です。