TrueNAS配下のSolarflare SFN7122F: カードは検出されるが、動作確認済みのマルチモードSFP+モジュールが光らない
自宅でストレージボックスを組んでいて、安かったのでデュアル10GbEのSolarflare SFN7122F(SFC9120)を買いました。カード自体は健全そうで、システムからも見えていて両ポートとも列挙されますが、手持ちのマルチモードSFP+モジュールはどれ一つとしてリンクを上げてくれません。
- Solarflare SFN7122F、デュアルポート、SFC9120コントローラ
- NAS側はTrueNAS SCALE、当初の計画はCOREだった
- 別のNICでは問題なくリンクする10GマルチモードSFP+モジュール
- 短いマルチモードパッチコード、動作確認テストで使ったものと同じ
eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP>
eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP>
試したこと:
- 両ポート、両モジュール、4通りの組み合わせすべてで、何一つリンクしない
- まったく同じモジュールと同じパッチコードを別のカードに移すと、即座にリンクが上がる
- 端面が汚れている可能性を考えてパッチコードを交換
なのでファイバーとモジュールが問題ではありません。このカードは自分向けにコードされていないオプティクスを拒否しているのでしょうか、それともドライバ側に何か問題があるのでしょうか。CORE ならここでSCALEと違う挙動をするでしょうか。もしコーディングの問題なら、実際にSFN7122Fで動いているモジュールは何を使っている人が多いのでしょうか。
Comments 3
ドライバ側はあなたの問題ではありません。FreeBSDのsfxgeドライバはSolarflare SFC9000ファミリーの10GbEアダプタをカバーしているので、SFC9120はCOREでも問題なく、SCALEがハードウェアを列挙しているのもすでに確認できています。あなたがぶつかっているのはカード自身のトランシーバチェックです。Solarflare向けにコードされたモジュールは受け入れ、それ以外は黙って無視します。これはまさにあなたの状況、つまりポートが一切上がってこない健全なカード、そのものです。
実際に動いているという報告があるパーツはFTLX8571D3BCL-SLとSFM10G-SRです。FSも、発注時に対象を指定すればSolarflare向けにあらかじめコードしたモジュールを供給してくれます。オリジナルコードの在庫を探し回るより普通は楽です。
何か買う前に、このカードがあとどれくらい生きるのか考えてみてください。SolarflareはXilinxに移り、ドライバの作業は止まっているので、今後これ以上のものは来ません。放っておきたいボックス用途なら、このプラットフォームではChelsioを第一候補、Intelを第二候補にします。参考までに、ここでの長期報告のひとつでは、近縁のSFN6122Fが2年間トラブルなく動いていて、隣に座っているIntel X520より雑多なトランシーバに寛容だと評価されていました。ただしこれは旧世代のカードで、あなたのカードのコーディングの挙動を変えるものではありません。
このカード向けにコードされたSFM10G-SRを1組注文したら、両ポートとも挿した瞬間に上がりました。コーディング説は正しかったわけです。ただし私の側では部分的な結果しか出ていません。古いマルチモードモジュールはこのNICでは相変わらず完全に死んでいて、別のカードでしか動きません。なので今はオプティクスを2セット、ラベルを貼って分けて保管しています。
カードは仕事をこなしているので今のところ残しますが、Chelsioのヒントは次のときのために覚えておきます。ポートを追加するたびに特別コード品のオプティクスを買うのはできれば避けたいので。
一般的な手順にひとつ確認事項を加える価値があります。「サポート対象外のオプティクス」というのは機種によって意味がかなり違うからです。Instant On 1930 24Gでは、ベンダー自身の回答は、サポート対象外のモジュール(SX、LHなど)はフラグが立つだけ、つまりポートLEDの点滅とsyslogメッセージだけで、ポート自体は一切無効化されないというものでした。なのでそこでリンクがdownのままなら、それはロックではなく物理経路を指しています。そのケースは、新しいファイバーを敷設してサードパーティ製の10GシングルモードLR SFP+を使うことで解決し、リンクが上がりました。
同じ罠は逆方向にもHBAで起きます。Brocade 825はlspciに2回出てきて、オプティクスを挿してもdmesgには何も出ません。これを故障と読む人もいます。ドライバがログに残すのはリンク状態であってモジュールの挿入ではないので、そこでの沈黙も診断にはなりません。
あなたのケースでは、すでにこれを決定づけるテストを1つやっています。同じモジュールと同じコードが別のNICではリンクするということです。なのでコーディングロックという結論で正しいです。ただ、LEDとログ1行だけの機種でも同じ結論に持っていかれないよう気をつけてください。