IBM Flex System EN4093、起動時と稼働中にSFP+トランクポートがERRDISABLEに落ちる
2台のFlex Systemエンクロージャがあり、それぞれネットワークモジュールとしてEN4093R 10Gb Scalable Switch(オプション49Y4270)を積んでいます。シャーシの電源イベントの後にポートがerror-disabledで戻ってきて、頻度は低いものの稼働中にも同じ状態に落ちることがあります。毎回同じポートとは限らないので、これを追いかけるのがとても厄介です。
構成:
- IBM Flex System EN4093 10Gb Scalable Switch、オプション49Y4270
- コアへの4ポートのアップリンクトランク、IBM製オプティクスと後から追加したDAC1本
- 2台目のエンクロージャへブレイクアウトしたQSFP+ポート
- こちら側はMSTP稼働、コアは別ベンダー
起動後のポート一覧はこう表示されます。
port 5 ERRDISABLE reason: link flap detect threshold exceeded
port 17 ERRDISABLE reason: mismatched link capabilities
port 19 ERRDISABLE reason: mismatched link capabilities
試したこと:
- 該当ポートでshutdown/no shutdownすると、次のイベントまではほとんど戻ってくる
- トランク内のすべてのファイバーを清掃・挿し直したが、パターンに変化なし
- 対向のポート設定を比較したが、書類上は速度が一致している
実際に何がこれらのポートをerrdisableに追い込んでいるのでしょうか。毎回手動でクリアするのではなく、起動のたびに発生するのを止める方法はあるのでしょうか。
Comments 5
このスイッチにはポートを無効化する文書化された状態が7つあり、それぞれほとんど無関係です。
あなたのケースは4番目で、これは自分で作り出してしまうパターンなのでみんなが一番よくぶつかるものです。1つのトランクの中でモジュールの速度や種類を混ぜると、スイッチが異議を唱えます。3個の光モジュールの隣にDACが1個座っているだけで十分です。そのDACを外して、残り3つに合うモジュールをそこに入れてください。
フラップ検出器に引っかかったポートについては、バウンスさせるのが今も文書化された復旧手順です。
その後、そのリンクのスパニングツリー設定を読み返し、銅とファイバーを手作業で確認してください。設定変更のたびにreloadをかけてください。そうしないと、稼働中の状態が自分が設定したつもりのものと静かにずれていきます。
期待しないほうがいいことが2つあります。7つの状態のうち2つは、タイムアウトが過ぎてもポートをdownのままにし、手作業での対応を求めます。それとファームウェアのどのリリースもこれを直しません。ベンダーの立場は、設定でうまく回避しろというもので、すべてのトランクメンバーで同一のモジュールをそろえ、ファイバーを清潔に保つところまでが予防としてできることです。
まず気になるのは、同じ貼り付けの中に理由が2種類あることです。あるポートはいつも同じ理由で無効化されて戻ってくるのか、それとも今回はケイパビリティで落ちたポートが次はフラップ検出器に引っかかるのか。ポートごとに理由が固定されているのと理由がふらつくのとでは調査の方向が別々で、片方だけがハードウェアを買う結論に行き着きます。
もうひとつはっきりさせておきたいのは、コア側がスパニングツリーに何を使っているかです。あなたはMSTPを使っていますが、もし対向がそのアップリンクにCiscoフレーバーのPVST BPDUを乗せてきているなら、このスイッチにはまさにそれに反応してポートを落とす保護機構があり、外から見るとあなたが今追いかけている障害そのものに見えます。ドロップのどれかが、あなた側の起動ではなくコア側のトポロジー変化と一致しているか分かりますか。
ポートごとには一貫していますが、ボックス全体としては一貫していません。落ちるトランクメンバーはいつもmismatched link capabilitiesで戻ってきて、5番のアクセスポートはいつもフラップ検出器にしか引っかからず、間隔にはパターンを見つけられません。なのでこれは同じ上着を着た2つの障害に見えます。
対向のスパニングツリーについてはまだ答えられません。コアは別のチームの管轄で、そのアップリンクに実際何を出しているのか聞いているところです。今のところログのどこにも、ドロップと向こう側のトポロジー変化を結びつけるものはありませんが、それを探すつもりで読んでいたわけではないので、除外できるとは言いません。
ベンダーは違いますが、同じ形の話です。FortiSwitch 548DにSFP+でぶら下がるFortiGate 201Fがあり、間はFortinet純正のDACでしたが、10Gbpsリンクがまったく安定しませんでした。速度とデュプレックスを何にいじっても落ち、両端をFortiOS 7.4から7.2.5に戻しても何も変わりませんでした。
最終的に安定したのは、その1リンクだけ短いFortinet製DACに変えてSTPをオフにしたことで、それ以来ずっと上がったままです。持ち帰る価値があるのはその後たどり着いた理屈です。パッシブ銅の距離が長いほど、届くまでに信号は劣化しているので、10Gでは長いDACやぎりぎりのDACはラベルが何であれ疑うべきリストに入ります。3個のオプティクスと1個のDACがerrdisableトランクに混在しているなら、私ならその浮いている1個を徹底的に疑います。
ハードウェアに触る前にやっておくべきことがひとつあります。ログのタイムスタンプに対して、フラップの正確な周期を書き出すことです。
まったく無関係な話ですが、TL-SG3452Xというスイッチで、モジュールが挿さっているSFP+ポートすべてが10〜15分おきにdown/upを繰り返し、フラップのたびにログにSTPメッセージが出ていました。オプティクス不良という結論に飛びつきそうになりましたが、純正のTL-SM5220-1M DACもまったく同じリズムでフラップしていたことでそれは崩れました。この1回のテストでオプティクス説は消え、かわりにファームウェアの退行が疑われ、唯一有効だった対処は古いビルドにとどまることでした。
規則的な間隔なら、何かがスケジュールでタイムアウトしています。ランダムな間隔なら、何か物理的なものです。安上がりなテストで、不要なモジュールを買わずに済みます。それと、ダウングレードという選択肢を残しておくために、前のファームウェアイメージを取っておく価値もあります。