技術コラム

製品技術
NVIDIA

Mellanox InfiniBand/Ethernet製品 ファームウェアについて

Mellanox InfiniBand/Ethernet製品 ファームウェアについて

ファームウェアは組込みシステム等で機器の動作を司るソフトウェアで、一度プログラムすると書き換え等を頻繁に行うことはありません。

ハードウェアは一度完成してしまうと物理的に交換しない限り変更はできません。

ファームウェアはハードウェアとソフトウェアの間に位置し、ハードウェアの一部として動作するケースが多く、標準仕様が決まっていないが、ハードウェアを完成させなければならないような場合や、少々仕様の変更があったとしてもハードウェアを変更せず、少量のプログラムやパラメータを変更することにより、必要な機能を提供するハードウェアとして生まれ変わらせることができます。

また、フラッシュメモリー等の電気的に消去/書き込みができる不揮発性メモリーを使用することで、ハードウェア自体は外さなくともプログラム可能な、ISP(In System Programming)が簡単にできるようになりました。

これにより、APIレベルでソフトウェアの変更無く、ハードウェアの機能変更/追加されたり、また仕様変更に伴う製品の機能変更/追加をファームウェアの変更で対応可能にします。

一般的に、関連するソフトウェア(ドライバー)のバージョンにかかわらず、ファームウェアは最新のバージョンにすべきであり、ソフトウェア(ドライバー)が少々古くともきちんと動作させることが必要とされます。
デバイスが最適な状態で動作するために、ファームウェアとそれらを利用するソフトウェア(ドライバー)との関係は非常に大切です。
Mellanox社InfiniBand/ネットワーク製品のファームウェアは、最新かつ同一バージョンであることが推奨されています。
Mellanox製品 ソフトウェア更新手順例

Mellanoxファームウェアダウンロードサイト
<アダプターカード/スイッチ/ゲートウェイ ファームウェア ダウンロード>
http://www.mellanox.com/page/firmware_download

<ファームウェア ツール ダウンロード>
http://www.mellanox.com/page/mlxup_firmware_tool

<インフィニバンド/VPI アダプター ドライバー ダウンロード>
http://www.mellanox.com/page/software_overview_ib

<イーサネット アダプター ドライバー ダウンロード>
http://www.mellanox.com/page/software_overview_eth
HCA/NICファームウェア
1) 初回ドライバー導入時は、何も指定しなければドライバーインストーラーはHCA/NIC上のファームウェアを自動的に最適なバージョンを選択してアップデートを行います。一度ドライバーを導入した後は、再度ドライバーをインストールしない限り自動的にアップデートされることはありません。

2) HCA/NICの修理交換或いは導入時期によるレビジョンの管理について、
HCA/NICをハードウェア不調理由で交換するような場合、交換したファームウェアが必ず最新であるとは限りませんので注意が必要です。とりわけ、ドライバーとファームウェアは推奨される組み合わせでインストールされる必要がありますので、ドライバーに合わせて高いレビジョンのファームウェアを求めることもあります。
また、ソフトウェアの制約により一度に最新版に更新することができず、複数の中間版数を経て段階的に更新しなければならない場合もありますのでご注意ください。

Switchファームウェア(InfiniBandのみ*)
MellanoxのInfiniBandスイッチ製品には、管理ポート(mgmt0,mgmt1)およびシリアルポートを備えたManagedタイプと、I2Cポートのみを備えたExternally Managedタイプの2種類があります。ManagedタイプはMLNX-OS管理ソフトウェアをアップデートすると同時にファームウェアをアップデートします。
Externally Managedタイプは管理ポートがありませんので、I2CかInfiniBand経由でファームウェアをアップデートしなければなりません。
なお、適合するファームウェアは機種や、ハードウェアレビジョンによって異なりますのでご注意ください。

(*) Ethernetスイッチは、Managedタイプしかなく、上述のInfinibandスイッチと同じようにMLNX-OSのアップグレードに応じてファームウェアも更新されます。

Mellanox Switchファームウェアアップデート手順例

1) ファームウェアアップデートツールmstがインストールされているか確認します。
[root@T2 Desktop]# mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module – Success
Loading MST PCI configuration module – Success
Create devices
Unloading MST PCI module (unused) – Successmst
[root@T2 Desktop]#
もしmstがインストールされていませんと、上記のようなメッセージはありません。
そのような場合は、http://www.mellanox.com/page/management_tools よりツールをダウンロードし、

2) ファブリック内にどのような機器が接続されているかを調べます。 ここでは、ホストにつながれたHCA/NICが表示されます。

[root@T2 Desktop]# mst status
MST modules:
————
MST PCI module is not loaded
MST PCI configuration module loaded

MST devices:
————
/dev/mst/mt4115_pciconf0 – PCI configuration cycles access.
domain:bus:dev.fn=0000:02:00.0 addr.reg=88 data.reg=92
Chip revision is: 00
[root@T2 Desktop]#

3) そのホストには、PCI-Expressバス上にHCA/NICが1枚導入されていることが分かります。 それではそのデバイスの詳細情報を表示します。

flintコマンドを使用します。
ここでオプション-dに使用するデバイス名は、mst status中のMST Devicesのリストに入っているもので、最後のqがコマンドで、queryの意味で詳細情報を表示します。
[root@T2 Desktop]# flint -d /dev/mst/CA_MT4115_T2_HCA-1_lid-0x0001 q
Image type: FS3
FW Version: 12.17.2020
FW Release Date: 22.11.2016
Product Version: rel-12_17_2020
Rom Info: type=PXE version=3.4.903 devid=4115
Description: UID GuidsNumber
Base GUID: e41d2d0300f298f8 4
Base MAC: 0000e41d2df298f8 4
Image VSD:
Device VSD:
PSID: MT_2180110032
[root@T2 Desktop]#

4) ここで注目するのが、PSIDという項目です。Mellanoxのハードウェア製品は、種別ごとに、PSIDと呼ばれる一連の識別コードを持っています。適切なファームウェアを選択するために必要な情報です。

それではMellanoxのホームページからファームウェアをダウンロードしましょう。
まずはどのようなHCA/NICかはハードウエアを見ると直接わかります。

ハードウェアに貼りつけてある製品ラベル
5) トップページから SUPPORT/EDUCATION -> Firmware Downloadのページを見ます。
http://www.mellanox.com/page/firmware_download
かいとうConnectX-4EDR + 100GbEですので、ConnectX-4 VPIのページを開きます。

6) そしてPSIDのところが、MT_2180110032と表示されているところを検索しますと、下記のように表示されます。

7) fw-ConnectX4-rel-12_18_2000-MCX455A-ECA_Ax-FlexBoot-3.5.110.bin.zipファイルをダウンロードし、unzipしますと fw-ConnectX4-rel-12_18_2000-MCX455A-ECA_Ax-FlexBoot-3.5.110.binとなります。

これがファームウェアのバイナリファイルです。
8) そして、flintコマンドを使用し、バイナリファームウェアによるアップグレードを行います。

ここで2つのオプションがかかわります。

-dで示されるのがデバイス名で、-iで示されるのが、アップグレードのファームウェアであり、最後のbが書込み(burn)コマンドとなります。

この例では表示されておりませんが、更新進行状況が%で示されます。

[root@T2 Desktop]# flint -d /dev/mst/CA_MT4115_T2_HCA-1_lid-0x0001 -i ./fw-ConnectX4-rel-12_18_2000-MCX455A-ECA_Ax-FlexBoot-3.5.110.bin b
Current FW version on flash: 12.17.2020
New FW version: 12.18.2000

Burning FS3 FW image without signatures – OK
Restoring signature – OK
-I- To load new FW run mlxfwreset or reboot machine.

これで、HCA/NICのファームウェア更新が終わりました。
ホストをリブートしますと新しいファームウェアで実行を開始します。

スイッチシステムのファームウェアアップグレード手順

1) まずはファブリック内にどのような機器が接続されているかを調べます。ここでは、ホストにつながれたHCA/NICが表示されます。
[root@T2 Desktop]# mst status
MST modules:
————
MST PCI module is not loaded
MST PCI configuration module loaded

MST devices:
————
/dev/mst/mt4115_pciconf0 – PCI configuration cycles access.
domain:bus:dev.fn=0000:02:00.0 addr.reg=88 data.reg=92
Chip revision is: 00
[root@T2 Desktop]#
2) ここではファブリックに接続されたスイッチを表示するために、mst ib addコマンドを実行します。

そうしますと、そのホストから見えるファブリック上のデバイスの接続状況を見ることができます。

[root@T2 Desktop]# mst ib add
-I- Discovering the fabric – Running: ibdiagnet -skip all
-I- Added 3 in-band devices
[root@T2 Desktop]# mst status
MST modules:
————
MST PCI module is not loaded
MST PCI configuration module loaded

MST devices:
————
/dev/mst/mt4115_pciconf0 – PCI configuration cycles access.
domain:bus:dev.fn=0000:02:00.0 addr.reg=88 data.reg=92
Chip revision is: 00

Inband devices:
——————-
/dev/mst/CA_MT4115_T1_HCA-2_lid-0x0002
/dev/mst/CA_MT4115_T2_HCA-1_lid-0x0001
/dev/mst/SW_MT51000_switch-6036_lid-0x0003
.
3) Inband devices:を見ますと1つから3つに増えています。
ここで/dev/mst/SW_XXXXと表示されているものがスイッチデバイスです。
この内容を見てみましょう。 デバイス名はHCA/NICの場合と同じように、Inbound devicesのリストの通り使用します。

[root@T2 Desktop]# flint -d /dev/mst/SW_MT51000_switch-6036_lid-0x0003 q
Image type: FS2
FW Version: 9.3.8170
FW Release Date: 6.6.2016
Device ID: 51000
Description: Node Sys image
GUIDs: 0002c90300720580 0002c90300720580
Description: Base Switch
MACs: 0002c9720580 0002c97205e0
VSD: n/a
PSID: MT_1010210020
[root@T2 Desktop]#

4) これ以降はHCA/NICの場合と同様に、Mellanoxのホームページより、ファームウェアをダウンロードし、flintコマンドで書き込みします。

HCA/NICのドライバーのダウンロード手順例

Ⅰ. InfiniBand/Ethernet共用ドライバーのダウンロード例

一例としてLinuxドライバをダウンロードしてみましょう。

Linuxドライバのページでスクロールダウンすると、下記のように “Benefit”および”Download”の二つのタブが現れます。

ここで、“Download”をクリックします。

下記のように、Linux OSに推奨されるOFEDドライバのバージョンが表示されますので、目的のOSバージョンを確認してください。

加えてスクロールダウンすると下記のような OFED Download Centerというメニューが現れます。


一例として CentOS7.2 x64で稼働するOFED V4.0ドライバを選択します。


ここではCD-ROMのイメージであるISOと通常の圧縮ファイルであるtgzの二つのファイルフォーマットを選択することができます。

また、OFEDドライバのソースファイルをダウンロードすることができます。

なお、このページからLinux用ドライバにかかわるリリースノートやユーザーマニュアルも併せてダウンロードすることができます。
Windows用ドライバ
これは、“WinOF“および”WinOF-2“の2種類のダウンロードサイトがあります。
これらの違いは、
WinOF:ConnectX-3/FDR-40GbE
WinOF-2:ConnectX-4/EDR-100GbE
とHCA/NICの種類により分けられております。

Linuxと同様に WinOFのページをスクロールダウンしますと、次のように”WinOF Download“と”WinOF-2“の2つのタブに分かれており、ドライバのバージョン、OSタイプおよびOSバージョンによりサポートされるいることに注意をしてください。また、下の注意にございますように、ドライバVersion 5.22以降のWindows Server 2008 R2/Window 7には、Windows Update KB3033929のインストールが必要です。

もしアップデートが無い場合はインストール動作が停止します。

それでは、Windows Server 2012 R2で、EDR/100GbカードMCX-455A-ECATカードを使用するときのドライバをダウンロードしてみましょう。EDR/100GbEカードなので WinOF2タブをクリックします。OSタイプ、バージョンを選ぶとWinOFドライバをダウンロードすることが可能です。これは、そのまま、Administratorユーザで実行すれば、インストーラーが開始し、その手順でインストールすることが可能です。


なお、ここでは、リリースノートやユーザーマニュアルも提供されますので、ダウンロードの上ご使用ください。

Ⅱ. Ethernet専用ドライバーのダウンロード例

1) Ethernet専用ドライバーは、NICハードウェアおよび、ホストOSによりサポートされるドライバのバージョンに違いがありますのでまずは、サポートされるOSを下記のURLよりご確認ください
Ethernet専用ドライバダウンロードサイト
http://www.mellanox.com/page/software_overview_eth

Ethernet専用ドライバ/NICハードウェア/OSサポートリスト情報サイト
http://www.mellanox.com/page/osv_support_eth

2) Linux用Ethernet NIC用のドライバのダウンロードサイトは次の通りです。

http://www.mellanox.com/page/products_dyn?product_family=27

この例では、CentOS 7.2、64ビットx86用の3.4-x.x.x.xのドライバをダウンロードする手順を示します。

共用ドライバをダウンロードする手順と同じになります。ただしこのページにありますように、3.4-2.0.0.0は2つのバージョンが存在しますが、使えるOSが制限されています。

3) Windows用Ethernet専用ドライバーのダウンロードサイトは次の通りです。

http://www.mellanox.com/page/products_dyn?product_family=32&mtag=windows_driver

ダウンロードの手順に関しましては共用ドライバと同様で、こちらもWinOF及びWinOF2に分かれます。
サポートされるNICとOSの組み合わせがございますのでEthernet専用ドライバOSサポートリスト情報サイト(http://www.mellanox.com/page/osv_support_eth)で確認の上適切なドライバをダウンロードしてください。

4) VMware® ESXi Server用Ethenret専用ドライバー

VMware® ESXi Serverには、Ethernet専用ドライバのみがサポートされます。
http://www.mellanox.com/page/products_dyn?product_family=29

VMWare社に認定されたOS/NIC/ドライバの組み合わせで提供させていただきます。