はじめに
こんにちは、うしぃです。
前回は NIC が“InfiniBand controller”として認識されてしまい、躓いたところで終わりました。
私は 100GbE、つまり Ethernet 環境を構築したいので、NIC を“Ethernet controller”として認識させる必要があります。
人を検知すると、音と光でアラームを発生させる装置となっております。
今回は NIC を“Ethernet controller”として認識させる手順を紹介したいと思います。
Mellanox NIC のモード変更
NIC を Ethernet 環境で使うための設定はいたって簡単です。手順は大きく分けて以下の 3 つのみです。
【1】Mellanox NIC 用ドライバソフト (MLNX-OFED) のインストール
【2】NIC のモード変更
【3】サーバーの再起動
では、それぞれについて詳しく見ていきましょう!
【1】MLNX-OFED のインストール
まず初めに、NIC のモード変換に必要なファームウェア (FW) を含む、Mellanox NIC 用のドライバソフト(MLNX-OFED)をインストールします。(ドライバの種類と詳細については単語帳に記載します。)
MLNX-OFED のインストール手順は以下です。
(1) OFED を対象のサーバーにアップロード
・下記 URL より OFED の tgz ファイルをダウンロード
http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers
・対象のサーバーに SCP サーバー等を用いて tgz ファイルをアップロード
※私はノート PC から“WinSCP”を用いてアップロードしています。
(2) tgz ファイルの解凍
・下記コマンドを実行;
[root@localhost ~]# tar xvzf MLNX_OFED_LINUX-4.0-1.0.1.0-rhel7.2-x86_64.tgz
※今回は root ディレクトリにファイルを置きましたが、それ以外のディレクトリにファイルがある際には“cd”コマンドで目的のディレクトリに変更してください。
(3) ディレクトリを変更し、install スクリプトを実行[root@localhost ~]# cd MLNX_OFED_LINUX-4.0-1.0.1.0-rhel7.2-x86_64/
[root@localhost MLNX_OFED_LINUX-4.0-1.0.1.0-rhel7.2-x86_64]# ./mlnxofedinstall
※install スクリプトを実行すると、下記のようにインストーラーが起動し、インストールが始まります(図 1)。

※MLNX-OFED をインストールすると、NIC のファームウェアも自動でアップデートされます。
(インストールのオプションで除外可能)
【2】NIC のモード変更
続いて、MLNX-OFED に含まれる“Mellanox Firmware Tool (MFT)”を使い、NIC を Ethernet モードに変更します (InfiniBand → Ethernet)。
(1) MFT の起動
MFT を使用するためには“Mellanox Software Tool (MST)” を起動させる必要があります。(ここでは詳しい説明は省きます)
以下コマンドを実行し、MST を起動させます。
[root@localhost ~]# mst start

図 2 に示されているように、“Success”と表示されていれば、MST の起動は成功です。
(2) NIC の ID を確認し、情報を確認する
ID 確認;
[root@localhost ~]# ibv_devinfo | grep vendor_part_id

図 3 から、NIC の ID が 4115であることが分かります。
(3) Ethernet モードへの切り替え以下のコマンドを実行するだけです!
[root@localhost ~]# mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2LINK_TYPE_P2=2
上記コマンドの P1、P2 はポートを表しており、P1=2、P2=2 とすることでそれぞれのポートを Ethernet モードに切り替えます。
※InfiniBand モードにしたいときは「1」に設定する。

【3】サーバーの再起動
サーバーを再起動したらすべてが完了です!
再起動後、“Ethernet controller”として認識されているのか確認すると、、、
(コマンド:[root@localhost ~]# lspci | grep Mellanox )

図 5 からもわかる通り、きちんと“Ethernet controller”として認識されていました!!
また、100GbE の帯域でリンクアップするのか、サーバー 2 台を直接つなぎ、確認してみました!
確認には以下のコマンドを使用します。
[root@localhost ~]# ethtool ens3f0 (ens3f0 は NIC のインタフェース名です)

図 6 から、100GbE でリンクアップしていることを確認することができました!
以上で、100GbE のネットワーク環境を構築するための、サーバーの準備が整いました!
これで、今回の課題は解決です!
今回の記事で紹介した NIC のモード変換の詳しい手順については、以下 Mellanox 社のユーザーマニュアルをご参照ください。
・MFT_user_manual_4_6_0.pdf
おわりに
今回は、NIC をサーバーに搭載した後の設定について記事を書かせていただきました。
記事の最後に載せたユーザーマニュアルは英語版しか存在せず、さらにページ数も多いです。。。
それも相まって、今回は以下の点で苦労しました。。。
・記載箇所がどこなのかを探すこと
→2 つのマニュアルにまたがって記載されていて、探すだけでも苦労しました、、、
・マニュアルの内容を読み解き、理解すること
→英語でシンプルに表現されているため、もう少し詳しく説明が欲しいということも多々ありました。
英語というだけで、マニュアルを読みたくなくなってしまう方もいると思います。
(私も最初は拒否反応が出ていました 笑)
そのため、Mellanox 社の製品を使用する際に、私の記事も参考にしていただけると幸いです。
次回は、Mellanox スイッチを題材とした記事を掲載予定ですので、引き継続きブログに目を通していただけると幸いです。よろしくお願いします!
最後になりますが、私が担当している“Mellanox 社”の紹介です。
◆ Mellanox 社の概要 ◇本社:ヨークナム (イスラエル)、サニーベル (アメリカ)
◇広帯域、低レイテンシーインターコネクトのリーディングカンパニー
・EDR 100 Gbps InfiniBand、10 / 25 /40 / 50 / 56 / 100 ギガビット Ethernet
・アプリケーションのデータ処理時間を大幅に削減
・データセンタサービス基盤の ROI を劇的に向上
