はじめに
こんにちは、うしぃです。
前回までの内容は、Mellanox 社製品が使われる環境には欠かせない『サーバー』の構築入門でした。
今回は、Mellanox 社製の NIC (Network Interface Card) について、記事を書かせていただきます。
Mellanox 社製 NIC
Mellanox 社は、チップ、ケーブル、NIC (Network Interface Card)、スイッチといったインターコネクト製品を開発・製造しています。
NIC は、サーバーに『インターフェース』を追加するために用いられます。
今回は、サーバーを 100GbE 環境で使用するために、『ConnectX®-4 (図 1)』という Mellanox 社製品を自作サーバーに組み込みました!

NIC は PCI-Express に差し込むことで使用可能になります。(図 2)

ConnectX-4 は 1 ポートあたりの帯域が 100Gbps なので、PCI-Express gen 3.0 のレーンを 16 レーン必要とします、、、なぜ?
その疑問を解くには PCI-Express のデータ転送について知る必要があります。(図 3)

PCI-Express gen 3.0 のデータ転送帯域は片道 8.0Gbps です。
つまり、8.0Gbps × 16 レーン = 128Gbps (片道) となり、100GbE 環境を構築できます。
※残念ながら、2 ポート付いていても PCI の規格制限により、100GbE 環境では 1 ポートしか活用できません。。。
上記では、 NIC を『PCI-Express gen 3.0』スロットに差し込む想定で話をしています。
ここで、『gen 3.0』という規格があるということは『gen 1.0 や gen 2.0』という規格の存在も予想できます。
実際、『gen 1.0 や gen 2.0』も存在します。
※厳密には gen 1.0 ではなく gen 1.1です。
では、これらの規格は何が違うのか、、、?
ズバリ、データ転送の帯域が違います!(表 1)

実は、ConnectX-4 は PCI-Express gen 3.0 だけでなく、gen 1.0 と gen 2.0 でも使用できます。
しかし、表 1 からわかる通り、16 レーン使用しても、1.0 と 2.0 では 100Gbps 環境は構築できません。。。
ネットワーク環境構築の際には、PCI-Express の規格にご注意ください!
※実は、PCI-Express gen 4.0 ももうすぐ出てくるそうです!!
NIC の導入
ConnectX-4 の仕様への疑問が解決したところで、自作サーバーに NIC を組み込みます!(図 4)

図 4 の手順で NIC をサーバーに差し込み、サーバーがNICを認識しているかを確認します。
確認コマンド『lspci | grep Mellanox』を実行すると、、、
【実行結果】
[root@localhost ~]# lspci | grep Mellanox
02:00.0 Infiniband controller: MellanoxTechnologies MT27700 Family [ConnectX-4]
02:00.1 Infiniband controller: MellanoxTechnologies MT27700 Family [ConnectX-4]
あれ?
Infiniband controller?
~To be continued~
終わりに
今回は、Mellanox 社製の『NIC』について記事を書かせていただきました。
お察しの通り、まだ目的の 100GbE 環境は完成しておりません。
NIC も『Ethernet』ではなく、Infiniband controllerとして認識されています。。。
ということで、次回も引き続き 100GbE 環境を構築すべく、奮闘していきます。
引き続きよろしくお願いします!
最後になりますが、私が担当している“Mellanox 社”の紹介です。
Mellanox 社の概要
◇本社:ヨークナム (イスラエル)、サニーベル (アメリカ)
◇広帯域、低レイテンシーインターコネクトのリーディングカンパニー
・EDR 100 Gbps InfiniBand、/ 100 ギガビット Ethernet
・アプリケーションのデータ処理時間を大幅に削減
・データセンタサービス基盤の ROI を劇的に向上
