[VMware] 古い10GbE NICを何とか動かせるようにする

HP NC550SFPというNICを知人から譲り受けたの巻

過日DL380e Gen8をTwitterのフォロワーさんから無償で頂くという奇跡のようなイベントがありまして、そんな話を10年来の知人が反応してくれまして、「爆熱で使いこなせないのでいる?」と言うことで頂いたのがHP NC550SFPと言う10GbEのNICでした。

本当はこれをDL380eに取り付けて動かしたかったのですが、どうやら本機種がデバイスをiLOで認識できないほどに古いNICだったようで、DL380eは爆音を立ててしまい(FAN回転数が68%とかになりまして、なかなか近所迷惑なレベル・・)、こりゃあかんな・・・と言うことで使用を断念。

DL160 Gen8のNC552SFPと入れ替えてみる

で、ある日気づいたんですが、DL380eに対しては現在DL160 Gen8に刺さってるNC552SFPと入れ替えてみてはどうか?と思い、本日やっとサーバの配置入れ替えなどをやってメンテナンスしやすくなった状況となったので実践してみることにしました。

NICの交換自体はうまくいったんですが、どうにもDL160上のESXiがデバイスを認識してくれない・・・・とな?うーん、これは困った。そこで、ドライバの入れ替えをやりました。

そもそも動くのか?

NC550SFPは「Emulex OneConnect OCe10102」というチップが搭載された10GbEネットワークインタフェースカードです。因みにデュアルポートです。DL360 Gen7のシステム構成図に記載がありました。どうやらGen6時代にリリースされた製品のようで、となると10年ぐらい経過したNICなのではないかなと考えられます。

DL360 Gen7のシステム構成図から

QuickSpecもありました。

では、実際にどうかを見てみようかと思います。意外にもESXi6.7U2でも動作実績があることが分かりました。

一応現在導入されているバージョンである6.7U2でも動くかどうか見たところ、動くは動くようです。ただ、現在のelxnetドライバのバージョンを見てみると「elxnet 12.0.1115.0-1OEM.670.0.0.7535516」とかだったりするんですね。
この手の話はLinux/Windowsとかそうですが、ある一定のバージョンに達したところでドライバ製造ベンダは古いパーツの互換性を排除してしまいます。恐らくはこのケースでも、elxnetドライバからNC550SFPの互換性を排除してしまっていて、それによりドライバが適用できなかったのだろうと推察されます。

恐らくHCLを見た感じだと11.1.91.0がNC550が認識可能な最後のデバイスドライバではないかなぁと考え、既存ドライバを削除してサポートされそうなドライバをインストールすることに。

ドライバの入れ替え

参考になるのはこちらでした。

esxcliに備わる「–force」オプションを使って強制的に組み込む形になります。ただ、より新しいドライバが競合した場合、force引数をつけても「バージョンこっちの方が新しいから何もしない」ってなってインストールが出来ません。そこで、事前に現在導入されているドライバを削除する必要があるのです。

esxcli software vib remove -n <vendor vib name> -f

今回の場合、NC550SFPがEmulex製の10GbE NICであるため、以下のように入力してelxnetドライバを削除します。

esxcli software vib remove -n elxnet -f

次にお目当てのドライバをインストールします。今回使用したのはこちら。

めっちゃ古いです(5年前のドライバ)。ですが、バージョンは11.1.91.0よりは古く、恐らくNC550SFPが認識できるのではないか・・・と思いました。と言うわけでこのドライバを実装。HPEのドライバ情報には、独自のKB番号情報とドライバ製造年月しか示してくれず、ESXiに入るドライババージョンが何かについての記載がないんですね。なので、リリースノートに「NC550」が掲載されている最後のものを採用してみた感じです。

ダウンロードしたファイルを2段階で解凍します。すると、最終的に以下のファイルが手に入ります。

  • VMW-ESX-5.5.0-elxnet-10.2.445.0-offline_bundle-2260632.zip

これをESXiホストに適用します。

esxcli software vib update -d /vmfs/volumes/LOCAL-NASUBI00/ISO-Image/cp024733/VMW-ESX-5.5.0-elxnet-10.2.445.0-offline_bundle-2260632.zip -f

適用が完了したらESXiホストを再起動します。私の環境ですとこれで無事に認識して通信できるようになりました。ただ、相性問題なのかケーブルの問題なのか分かりませんが、Auto Negotiationしたら全然リンクしなかったので、10Gb/FULLと言う風に設定を固定化したところ、正常に通信できるようになりました。

NC550SFPが認識された状態

古いけど性能はそこそこ高い

さて、このNICを通じて試しにVMを通常vMotionでノード間移行をしました。すると、およそ5.71Gbpsと言うステキなスループットを記録しました。ただし、CPU使用率は一部のコアで100%を記録するなど、それなりのサーバ本体に対する負荷は発生しました。莫大なスループットを出せるようにするにはCPUリソースについても気を配る必要がありそうです。

また、Auto Negotiationがうまく機能しませんでした。ここについてはSpeed/Duplexを固定することで対処が出来たのでよしとしてます。JumboFrameも問題なく動いてそうですし。

さて、今度は摘出したNC522SFP+をDL380eに突っ込んで果たして爆音を押さえられるかどうかと言うところです。これが刺さってくれないと構成が一元化できないんのでかなり辛いんですよね・・・果たしてうまくいくのかどうか。