pfSense配下のChelsio T580: QSFP+ポートをブレイクアウトケーブル用に4x10Gにするには
小さなボックスでpfSenseを動かしていて、Chelsio T580のQSFP+ポートの1つを、単一の40Gリンクではなく4台の10Gホストに供給する形にしたいです。ブレイクアウトケーブルはまだ届いていないので、届く前にカードを正しいモードにしておきたいところです。
- pfSenseのボックス、Chelsio T580、QSFP+ポートの1つは現在40G DACで使用中、もう片方のケージは空
- cxgbeドライバ、シェルからcxgbetoolが使える
- QSFP+から4xSFP+へのブレイクアウトDAC、OCTTAPCABLE3M(バックアップ案としてOCTCABLE5M-SR AOC)
- 対向は10Gホスト、普通のSFP+ケージ
今のところカードは40Gインターフェースを2つ見せるだけです。
cxgbe0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
media: Ethernet 40Gbase-CR4 <full-duplex>
cxgbe1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
media: Ethernet autoselect
status: no carrier
すでにやったこと:
- cxgbetoolのサブコマンドを一通り見て、ポートモード設定らしきものを探したが何もなかった
- ポートを分割できるcxgbe用のloaderチューナブルも探したが、これも何もなかった
- ケーブル単体ではこれは実現できず、先にアダプタが4x10Gモードになっている必要があるとかなり確信が持てる程度には読んだ
40G/4x10Gの切り替えは、そもそもFreeBSDのドライバが切り替えられるものなのでしょうか、それともアダプタの設定の中にあるものなのでしょうか。設定の中にあるのだとしたら、FreeBSDベースのボックスからそれを変更するサポートされた方法は何でしょうか。
Comments 5
手短に言うと、ドライバではできません。ポートのレイアウトはアダプタに読み込まれた設定から来ていて、だからこそcxgbeもcxgbetoolもモード切り替えを一切公開していないのです。変更するにはChelsio自身の設定ユーティリティを使い、カードは新しい構成で戻ってきます。
そのユーティリティをボックスに持ち込んで(どこかにマウントしたUSBメモリで十分です)実行してください。
どのアダプタか、次にどのモードにしたいか聞かれます。ブレイクアウト用はSpider(4x10G)として載っていて、それがQSFP+ポートを4つの10Gレーンに変えるエントリです。
クリーンインストールの直後だと、最初の実行はたいていすぐにこけます。
特に変わったことはなく、ライブラリが足りないだけです。flashromをインストールすると依存関係として一緒に入ります。
これでlibpci 3.5.6_1も入り、その後スクリプトが起動してモード変更は成功と報告されます。
ケーブルが届く前にこれをやっている以上、ひとつ注意点があります。その時点で得られるのは、ユーティリティがモードを適用したと言っているという事実だけです。4つのレーンが実際に上がってくるかどうかは、ブレイクアウトケーブルをケージに挿して初めて証明されるので、テストするまでは40G側の設定を崩さないでください。
ドライバのノブを探し続ける前に。そのカードは実際どの設定で動いていますか、それとそのボックスにpython2.7を入れられますか。これを変えるのはFreeBSDのツール群の一部ではなくChelsioのユーティリティで、素のインストールだといくつか標準では入っていないものが必要になります。
もうひとつ、今cxgbe0が40Gでリンクしているという前提で。そのポートに乗っている、落とすわけにいかないものは何かありますか。モードはアダプタに読み込まれた設定から来るので、カードは別の構成で戻ってきて、その間は両ポートとも消えます。40Gリンク越しではなくコンソールからやってください。
確認しました、まさにその順番どおりでした。最初の実行は
で死んで、pkg install flashromでlibpci 3.5.6_1が入ってからスクリプトは問題なく起動しました。アダプタが一覧表示され、Spider(4x10G)を選ぶと、モード変更は成功と報告されました。
ケーブルはまだ届いていないので、4つのポート自体についてはまだ何も言えません。OCTTAPCABLE3Mが実際にケージに入ったら報告します。
スイッチのシリコン側でも同じ発想ですが、もっと儀式めいています。ICX 7750では、ボックスがcut-throughモードから抜けるまで40Gポートは分割できません。
それから40Gポートの設定を全部剥がして、そこでブレイクアウトを有効化します。
2回目のreloadの後、4つのサブポートが1/2/1:1から1/2/1:4として現れ、普通の独立した10Gインターフェースとして振る舞います。ケーブル1本挿すのにreloadが2回必要ですが、少なくともそれは、存在すら知らなければならない隠れたアダプタ設定ではなく、文書化された挙動です。
モードは戦いの半分でしかなく、対向側もそのケーブル自体を受け入れる必要があるという点も付け加えておく価値があります。MX204とMX10003では、古いJunosでは普通の40G DACが問題なくリンクしていました。100G DACが正式サポートされるようになると、40Gのものは静かにリストから外れ、今ではそれらのボックスでは一切サポートされていません。サポートされているのは4x10GブレイクアウトオプティクスのQSFPP-4X10GE-LRかSFPP-4X10GE-SRで、サードパーティ製パーツは通常、対応するSKUにコードされていないとポートがそれを見てくれません。
あなたのChelsioはルーターのラインカードよりずっと寛容ですが、4本の先がベンダー機器に着地するなら、アダプタモードを責める前に、その機器がブレイクアウトDACに対して何をするか確認してください。