「ディスアグリゲーデッドコンピューティング」とは何か? (2)

執筆者 : 佐藤 友昭


この記事の概要

タイトルは前回からの流れということで”「ディスアグリゲーデッドコンピューティング」とは何か? (2)” としたが、BlueField-2というDPUの開発環境を作るために、オークションサイトでいろんなアイテムを買った話。
今回もエルザジャパンさんにはいろいろと相談に乗っていただいたので、その感謝を最初に申し上げたい。

アイテムその1:BlueField-2

2022年11月、BlueField-2を買ってみようという話になった。
BlueFieldというのはSoCチップの名前で、個人的にはRaspberryPiのようなものだと思っている。

製品名 MBF2H332A-AEEOT
CPU Armv8 A72 (8core 2.5GHz)
メモリ DDR4 16GB
NICとPCIスロット ConnectX-6 25GbE @ 16.0 GT/s x16 link
ソフトウェア NVIDIA DOCA Installation Guide for Linux を参照(要ログイン)

最も注目している特徴はConnectXを含んでいて、100GbpsのRDMA通信ができること。 (今回購入したのは25GbE製品)
2016年に登場した時は、これを使えば高性能なCephのアプライアンスとかが安価につくれるのではないかと想像して興奮し、開発案件にならないかいろいろもがいた。
が、買ってみようという話にはならず、今回が初購入となる。
ConnectX製品はメーカのオンラインショップから買える。
2022年2月にConnectX-6を買ったときは$1500程度で物も程なく届いた。 が、今回は違った。明らかに高くなっているし、"Buy Now"ボタンがない。"Request Pricing" ボタンを押して待ってみるが、コンタクトしてくる気配はない。(半導体不足のせいなのか何なのか)
そこで前回、GigaIO FabreX製品の記事執筆でお世話になったエルザジャパンさんに相談したところ、見積もりを下さった。(感謝)
しかし、リードタイムがとっても長くて全くスケジュールに収まらない。再びエルザジャパンさんに相談したところ、国内在庫のある機種を探して頂けた。これでスケジュール内で購入・使用できる。(感謝)
物はクリスマス頃に届いた。
見た目はデュアルポートの25GbE ConnextX-6のような感じで、目立った違いとしては1GbEのポートも付いていることぐらい。PCIe Gen3/4 の x8 スロットに刺すのも同じ。 コネクタはSFP。手元にあるConnectXは全てコネクタがQSFPなのでケーブルが違う。とりあえず単体で使ってみよう。
BlueField-2へのFWやOSや各種フレームワークのインストールはSDK ManagerというGUIから数クリックで行うことができた。
ここで問題発生。しばらくすると本体のLEDが消灯し、ホストOSからBlueField-2が見えなくなっている。
どうやら冷却不足のようである。 すぐに使用を中断し 再びエルザジャパンさんに相談。BlueField-2の使用にはGPU搭載可能サーバ(SoCチップ側からSFPポート側に所定の風量)が必要との回答。(感謝)

コンソールメッセージ抜粋:

[  158.837383] mlx5_core 0000:01:00.1: temp_warn:171:(pid 0): High temperature on sensors with bit set 0 1
[  158.837612] mlx5_core 0000:01:00.0: temp_warn:171:(pid 0): High temperature on sensors with bit set 0 1

80mmファンを隣のPCIスロットに設置して様子をみることにした。SoCチップに垂直方向から風を当てる感じなので、パッシブヒートシンクの管の中に風を通すことはできない。

アイテムその2:ConnextX-4

本来ならBlueField-2は2枚購入してSFPケーブルで繋いで使いたいところであるが、このドル高に同じ値段を支払ってBlueField-2をもう1枚購入する限界効用を見出すには至っていないので、中古の代用品を買うことにした。
11月下旬に某Bayで米国からデュアルポートの25GbE ConnectX-4を$130で購入。12月中旬(BlueField-2よりも先に)に届く。

アイテムその3:SFPケーブル

ケーブルも要る。
ConnextXはメーカー純正ケーブルでないと性能が出ないというのは過去に学んでいた。
今回は3種類のSFPケーブルを購入した。
1つ目は "1m MCP2M00-A001 Mellanox Compatible 25G SFP28 Passive Direct Attach Copper Cable" AU $59.00 ※新品※。
注文して10日で中国から届いたが、これは動かなかった。結線してもポートのLEDが点灯しない。 (何がCompatibleだ)

-------- Cable EEPROM --------
Identifier                     : SFP/SFP+/SFP28 (03h)
Technology                     : Transceiver
Compliance                     : Unspecified, 100GBASE-SR4 or 25GBASE-SR
OUI                            : 0x0002c9
Vendor                         : OEM             
Serial number                  : HL221205001     
Part number                    : MCP2M00-A0001   
Revision                       : A3  
Temperature [c]                : 255 [-10..80]
Digital Diagnostic Monitoring  : YES
Length [m]                     : 1 m

2つ目は "Amphenol 4m NDCCGJ-0004 25G SFP28 DAC Cable” JP ¥2000。
上述の中華非純正ケーブルが当然のようにダメだったので米国から純正の中古を2本手配したが届くのに半月から1ヶ月掛かるので、その間の実験用に国内ですぐに入手できる中古を手配。
ConnectXとは異なるメーカー製ではあるが、これは動いた。(ConnectXのサポートケーブルのリストにAmphenol製品は、型番違いであれば、エントリがある。)

3つ目は "Mellanox MCP2M00-A001 1 Meter 25GbE SFP28 Passive Copper Direct Attach Cable DAC" US $39.95。 年末に届き、これも動いた。

-------- Cable EEPROM --------
Identifier                     : SFP/SFP+/SFP28 (03h)
Technology                     : Passive Copper Cable
Compliance                     : 40GBASE-SR4
OUI                            : 0x0002c9
Vendor                         : Mellanox        
Serial number                  : MT1608VS00993   
Part number                    : MCP2M00-A001    
Revision                       : A1  
Temperature [c]                : N/A
Digital Diagnostic Monitoring  : NO
Length [m]                     : 1 m

4つ目は "Mellanox MCP2M00-A002 2 Meter 25GbE SFP28 Copper Direct Attach Cables DAC" US $37.96。 2023年始に届き、これも動いた。

-------- Cable EEPROM --------
Identifier                     : SFP/SFP+/SFP28 (03h)
Technology                     : Passive Copper Cable
Compliance                     : 40GBASE-SR4
OUI                            : 0x0002c9
Vendor                         : Mellanox        
Serial number                  : MT1608VS01858   
Part number                    : MCP2M00-A002    
Revision                       : A1  
Temperature [c]                : N/A
Digital Diagnostic Monitoring  : NO
Length [m]                     : 2 m

これでBlueField-2とConnectX-4をケーブル直結で使えるようになった。

アイテムその4:ブレークアウトケーブルとQSFP/SFPアダプタ

BlueField-2(やConnectX-4)をスイッチに接続するのにブレークアウトケーブルが要る。
ブレークアウトケーブルというのは、ケーブルの一種で、一方がQSFP1個、他方がSFP4個になっているもので、1個のスイッチポート(QSFP)と4個のNICポート(SFP)を接続することができる。 また、既存のQSFPコネクタのConnextX-4/5/6と直結して使用するためにQSFP/SFPアダプタが要る。これは、SFPケーブルの一方に装着するもの。
なお、ブレークアウトケーブルでSFPケーブル+QSFP/SFPアダプタを代用することができるが、この場合、4個あるSFP端子のうち通信できるのは1個(#1のラベルが付いている端子)のみである。

"MCP7F00-A001 Mellanox QSFP28/SFP28 Network Cable -1M Breakout Cable" US $29.95。 2月上旬に届き、正しく動作した。

"Mellanox QSFP/SFP+ Adapter Kit 655874-B21" JP ¥6200。 上述のAmphenolケーブルと一緒に届き、正しく動作した。

アイテムその5:BlueField-2(2個目)

使用中のBlueField-2の温度をmget_tempコマンドで見ると60度から70度といったところで、自動シャットダウンが動作すると言われている温度(120度)には余裕がある。 しかし、壊れて使えなくなる状況はどうしても回避したいので保険として中古を手配してみることにした。
結果的に、都合4個の中古を購入することになった。

1個目はホストOSからデバイスが認識されず。
2個目は "BlueField-2 SoC Flash Recovery" 状態で、FW更新やOSインストールができない。

Device (01:00.0):
    01:00.0 Memory controller: Mellanox Technologies MT42822 Family [BlueField-2 SoC Flash Recovery] (rev 01)
    Link Width: x8 ( WARNING - device supports x16 )
    PCI Link Speed: 2.5GT/s

正常な個体は以下のように表示される。

01:00.0 Ethernet controller: Mellanox Technologies MT42822 BlueField-2 integrated ConnectX-6 Dx network controller (rev 01)
01:00.1 Ethernet controller: Mellanox Technologies MT42822 BlueField-2 integrated ConnectX-6 Dx network controller (rev 01)
01:00.2 DMA controller: Mellanox Technologies MT42822 BlueField-2 SoC Management Interface (rev 01)

3個目はFW更新はできるがOSインストールがエラーになる。(eMMCメディアが壊れている?)

$ sudo cat /dev/rshim0/misc 
DISPLAY_LEVEL   2 (0:basic, 1:advanced, 2:log) 
BOOT_MODE       1 (0:rshim, 1:emmc, 2:emmc-boot-swap) 
BOOT_TIMEOUT    1000 (seconds) 
DROP_MODE       0 (0:normal, 1:drop) 
SW_RESET        0 (1: reset) 
DEV_NAME        pcie-0000:07:00.2 
DEV_INFO        BlueField-2(Rev 1) 
OPN_STR         MBF2H332A-AENO 
--------------------------------------- 
             Log Messages 
--------------------------------------- 
 INFO[BL2]: start 
 INFO[BL2]: DDR POST passed 
 INFO[BL2]: UEFI loaded 
 INFO[BL31]: start 
 INFO[BL31]: runtime 
 INFO[UEFI]: UPVS valid 
 INFO[UEFI]: eMMC init 
 ERR[UEFI]: eMMC DMA pending 
 INFO[UEFI]: PMI: updates started 
 INFO[UEFI]: PMI: boot image update 
 ERR[UEFI]: eMMC DMA pending 
 INFO[UEFI]: PMI: updates completed, status 7 
 INFO[UEFI]: PCIe enum start 
 INFO[UEFI]: PCIe enum end 
---

4個目は正常に動作した。
(壊れた個体にこうも続けて出会うと現在使えている我らがBlueField-2 個体もそのうち壊れて使えなくなるのではないかという気がしてくる。それで益々保険が要ると思った次第)
注文と到着待ちをシリアルに4回行ったので3ヶ月程度掛かった。
なお、いずれの出品者(いずれもイスラエル)も返品の要請には素直に応じてくれたのは良かったが、購入前の問い合わせ(例えば、lspciの出力を見せて欲しいといった依頼)には能力的に応じられないとのことだった。
中古製品の中には製品ステータスを"used"ではなく"Seller refurbished"として出品されているものもあるが、これらは新品の半額程度と"used"に比べて数倍の高値となっているようである。
なお、今回動作した4個目は"For parts or not working"のステータスで非常に安価だった。 テストだけして送り返す小遣い稼ぎができそうな価格差である。

これで故障を恐れずに性能測定ができるようになった。

次回はGigaIO FabreX のRDMAネットワーキングの試用か、DPUがあると何が嬉しいのかの考察について書きたいと思っているが、さてどうなるか。