家庭向け(仮) 40GbE NIC の入手
比較的安価な家庭向けの 10 GbE NIC が 出荷され普及期を迎えつつある 10 GbE 環境市場ですが、100Base-TX や 1 GbE の普及を経験してきた世代にとっては何度も通ってきた流れと言えます。
今や、新品であっても 2万円程度の予算があれば、40 GbE NIC が手に入り、10万程度の予算があれば、100GbE環境が手に入るというのですから、自宅環境のアップグレードパスも明るいですね。
そして、今回、私の自宅にも 40 GbE 普及期がやってきました。
しかし、私が入手したのは、新品の 40 GbE NICではなく、中古になります。
ConnectX-3 InfiniBand HCA 40GbE Single Port FDR CA05954-2101
なお、某オークションでは、2枚で 5,000円 程度で調達可能です。
InfiniBand?
Infiniband というのは、HPC向けインフラで使われてきた製品です。
今回の 40 GbE には関係がほぼありません。
富士通のサーバー向けのオプション製品である 「CA05954-2101」は、Infiniband の FDR(56Gbps)用のカードなのですが、FWをアップデートすることで、Infiniband FDR / Ethernet 40GbE の切り替えができ、40 GbE NICとして利用できる拡張カードです。
元々は、Mellanox ConnectX-3 VPI という製品のOEMです。
外部URL: Mellanox ConnectX-3 VPI
FWの入手
外部URL:IB HCAカード(56Gb)(PY-HC301/302) ファームウェア アップデートツール V2.42.5000
OEM なので、Mellanox の FWは はじかれてしまうため、 富士通のHPからFWをダウンロードしましょう。
Mellanox Firmware Tools (MFT)の入手
Windows 上でFWを更新するためのコマンドラインツールである Mellanox Firmware Tools (MFT) をダウンロードし、インストールします。
外部URL:Mellanox Firmware Tools (MFT)
FWの更新準備
手に入れた 家庭向け 40 GbE NIC を PCに接続し、Windows クライアント上でFWの更新を行う準備を行います。
管理者権限で、CMDを起動し、MFTのインストールパスへ移動します。
cd C:\Program Files\Mellanox\WinMFT
mst コマンドを使い、認識している Mellanox HWを確認します。
C:Program FilesMellanoxWinMFT>mst status -v MST devices: mt26448_pci_cr0 bus:dev.fn=02:00.0 mt26448_pciconf0 bus:dev.fn=02:00.0 mt4099_pci_cr0 bus:dev.fn=06:00.0 mt4099_pciconf0 bus:dev.fn=06:00.0
アップデート対象の 40GbE NIC のステータスを確認します。
C:Program FilesMellanoxWinMFT>flint -d mt4099_pci_cr0 query Image type: FS2 FW Version: 2.11.1250 FW Version(Running): 2.11.1250 FW Release Date: 5.9.2017 Product Version: 02.42.50.00 Device ID: 4099 Description: Node Port1 Port2 Sys image GUIDs: 0002c903001cfab0 0002c903001cfab1 0002c903001cfab2 0002c903001cfab3 MACs: 0002c91cfab0 0002c91cfab1 VSD: PSID: FJT1060100019
FWの更新
ダウンロードしてきた、富士通用のFW 242500F1.bin を同階層に配置し、FWの更新を実行します。
C:Program FilesMellanoxWinMFT>flint -d mt4099_pci_cr0 -i 242500F1.bin burn
FWの更新後、再起動をします。
Infiniband から Ethernet への変更
FWの更新と再起動を行うことで、ポートの設定を40GbEに変更できるようになります。
C:Program FilesMellanoxWinMFT>mlxconfig -d mt4099_pci_cr0 s LINK_TYPE_P1=ETH Device #1: ------- Device type: ConnectX3 Device: mt4099_pci_cr0 Configurations: Next Boot New LINK_TYPE_P1 VPI(3) ETH(2) Apply new Configuration? (y/n) [n] : y Applying… Done! -I- Please reboot machine to load new configurations.
C:Program FilesMellanoxWinMFT>mlxconfig -d mt4099_pci_cr0 s LINK_TYPE_P2=ETH Device #1: ------- Device type: ConnectX3 Device: mt4099_pci_cr0 Configurations: Next Boot New LINK_TYPE_P2 VPI(3) ETH(2) Apply new Configuration? (y/n) [n] : y Applying… Done! -I- Please reboot machine to load new configurations.
また、SR-IOV も有効化しておきます。
※ 環境に合わせて有効化を検討ください。
C:Program FilesMellanoxWinMFT>mlxconfig -d mt4099_pci_cr0 s SRIOV_EN=1 Device #1: ------------ Device type: ConnectX3 Device: mt4099_pci_cr0 Configurations: Next Boot New SRIOV_EN False(0) True(1) Apply new Configuration? (y/n) [n] : y Applying… Done! -I- Please reboot machine to load new configurations.
設定した内容を確認します。
C:Program FilesMellanoxWinMFT>mlxconfig -d mt4099_pci_cr0 query Device #1: ------------ Device type: ConnectX3 Device: mt4099_pci_cr0 Configurations: Next Boot SRIOV_EN True(1) NUM_OF_VFS 8 LINK_TYPE_P1 ETH(2) LINK_TYPE_P2 ETH(2) LOG_BAR_SIZE 3 BOOT_PKEY_P1 0 BOOT_PKEY_P2 0 BOOT_OPTION_ROM_EN_P1 True(1) BOOT_VLAN_EN_P1 False(0) BOOT_RETRY_CNT_P1 0 LEGACY_BOOT_PROTOCOL_P1 PXE(1) BOOT_VLAN_P1 1 BOOT_OPTION_ROM_EN_P2 True(1) BOOT_VLAN_EN_P2 False(0) BOOT_RETRY_CNT_P2 0 LEGACY_BOOT_PROTOCOL_P2 PXE(1) BOOT_VLAN_P2 1 IP_VER_P1 IPv4(0) IP_VER_P2 IPv4(0) CQ_TIMESTAMP True(1)
再起動後、正しく認識していることを確認します。
※ 今回は作業を 空いていた PCIe x1 スロットで行っているため、Bus Type が x1 となっています。