fc san fabric環境におけるパフォーマンストラブルの対処法
TRANSCRIPT
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
目次
• SAN環境のトラブルシュート
• FCのフロー制御の仕組みとパフォーマンス障害のアプローチ
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 2
SAN環境のトラブルシュート
© 2015 BROCADE COMMUNICATIONS SYSTEMS, INC. INTERNAL USE ONLY3
HBA
Driver
MPIO/devmapper
Filesystem/Apps
トラブルシューティングの基礎SANスイッチ、サーバ、ストレージ、アプリ全体でアプローチ
• 時刻同期はトラブル早期解決の第一歩
‒ トラブルの被疑箇所は多岐にわたるため、各種ログの比較検討が重要
‒ 障害発生当時のログを付き合わせはタイムスタンプが基準
• サーバ・ストレージ・SANスイッチそれぞれで時間差があるとログ比較が難しい
• NTP等で機器間の時差をなくしておくべき
• 適切な情報収集と事象の明確化
‒ 何も知らない第三者(ベンダー等)へ的確に問題を伝え、情報を提供すること
• 事象は何か?(いつ、何が、どうした、再現性、etc)
• 運用環境の情報
• 障害時のログ
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 4
App ログ、
Kernelメッセージ
SAN スイッチRAS ログ
ストレージ各種ログ
情報の収集SANで起こり得る問題とSANスイッチにおける調査内容
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 5
問題の種類 調査事項 ツール
エンドデバイス接続(デバイス認識不可)
•Link, login•Fabric (ゾーニング、セキュリティ)
•End-to-End デバイス接続
•Switch LED•Switch コマンド•エンドデバイスのパラメータ
スイッチ接続(ファブリック構成)
•可用性がないLink
•不正なゾーニング、ACL、VF設定•不正なスイッチパラメータ
•Switch LED•製品情報•Switch コマンド•Web、GUIモニタリング機能、管理ソフトツール
パフォーマンス(I/Oが遅い)
•BBクレジットの状況•トラフィック量
•Switch コマンド•管理ソフトツール
ファームウェア保守•ネットワーク接続•FTPパラメータ•スイッチパラメータ
•ホスト側のツール、FTPパラメータの調査•スイッチのFTPパラメータの確認
セキュリティ(スイッチアクセス)
•ネットワーク接続•Switch認証、設定パラメータ
•ホスト側のツール•Switchのネットワークパラメータ、ユーザー認証
本資料ではパフォーマンス問題を取り上げます
supportSave の取得どんなトラブルでも、とりあえず取得しておきたい情報群
• supportSave
‒ ベンダーサポートが解析に必要な情報を取得
• RASlog, TRACE, supportShow, Core file, FFDC data等を一つのコマンドで取得
• supportSaveはadmin権限のあるアカウントで実施
• supportFtpコマンドで事前にFTP/SCPサーバ・アカウントを設定しておくと便利
‒ supportSave実行時にサーバ情報の入力を省略可能 “supportsave –c –n” で一発取得
‒ trace dumpの自動保存
• 各種テキスト・バイナリファイルが大量に生成される(50ファイル以上)
‒ 一つのファイルにまとめてベンダーへ提出
‒ コマンド実行結果も出力される(*.txt.gzで保存)
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 6
FFDC : First Failure Data Capture
取得結果の一部
errShow / errDump コマンドRAS Logを表示するコマンド
• スイッチに保存されているエラーやイベントを表示
‒ ErrShow :一画面ごとのPauseあり
‒ ErrDump :一画面ごとのPauseなし
• ログは1024エントリ分を保持し、古いものから上書きされる
‒ ログのクリアは errClear コマンド
• Message ID の詳細はFabric OS Message Reference を参照する
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 7
B6510-01:FID128:admin> errdump
Fabric OS: v7.2.1d
2015/05/12-18:24:07, [FW-1424], 4, FID 128, WARNING, B6510-01, Switch status changed from HEALTHY to MARGINAL.
2015/05/12-18:24:07, [FW-1439], 5, FID 128, WARNING, B6510-01, Switch status change contributing factor Switch
offline.
2015/05/12-18:25:08, [FW-1425], 6, FID 128, INFO, B6510-01, Switch status changed from MARGINAL to HEALTHY.
2015/05/12-18:25:20, [ZONE-1004], 7, FID 128, INFO, B6510-01, Base PID: 0x070c00, Port Index: 1, Port: 1:
enforcement changed to Session-based ARD Zoning.
2015/05/12-19:10:47, [SNMP-1005], 8, FID 128, INFO, B6510-01, SNMP configuration attribute, SNMPv3 User Name 6,
has changed from [snmpuser3] to [admin].
Message ID Severity
FCのフロー制御の仕組みとパフォーマンス障害のアプローチ
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 8
【参考】Ethernet のフロー制御受信側からフロー制御を要求する仕組み
• Ethernet PauseはIEEE 802.3Xで標準化されているフロー制御方法
• Pauseフレームを受信するとポート上の全トラフィック送信を一定時間停止させる
‒ 転送中のフレームは先に転送を完了させる
‒ Pauseフレーム0 (レジューム)を受信すると送信を再開する
‒ リンク上の全てのトラフィックが停止する
• Pauseフレームの受信タイミングによってはすでに送信したフレームが破棄される場合もある
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 9
送信ポート 受信ポートTransmit Frame
Receive Buffer
Pause Frame
送信停止
Transmit Frame
バッファが一杯
Fibre Channelのフロー制御送信側が自立的にフロー制御し、ロスレス転送を実現する仕組み
• クレジットベース
‒ クレジットは受信ポートのバッファを監視するメカニズム
‒ ポート初期化時(FLOGI)に互いのクレジット情報を交換する(ノードースイッチ間)
‒ N個のバッファは「あなたは私にN個のフレームを送れます」ということを意味する
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 10
受信ポート送信ポート
クレジット 2
↓
Transmit Frame Receive Buffer
クレジット 1
↓
Transmit Frame Receive Buffer
クレジット 0
↓
クレジット 1
↓
クレジット 2
↓
Transmit Frame
クレジット 1
Receive Buffer
空になった受信バッファ
クレジットが0になるまでフレームを送信
クレジットが0のときは自律的に送信を中断
受信ポートからのレスポンス(VC_RDY,R_RDY)を受け取るとクレジットカウントを増やし、送信再開
FCファブリックにおけるパフォーマンス低下ファブリックの中で何が起きているか?
• リンクの障害等でデータ再送が多発している
‒トランシーバ(SFP)やケーブルの汚れ、破損、接続不良などによる送信エラーが原因
• フロー制御(トラフィック中断状態)が多発している
‒ファブリック内のバッファ枯渇によるフロー制御(停止)の多発
• ISLがあるファブリック(複数スイッチで構成されるファブリック)
• 高速デバイスと低速デバイス(高遅延)の混在環境
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 11
STOPSTOP
STOP
STOP
STOP
低速デバイスのフロー制御がISLポートのバッファ枯渇を引き起こし、ファブリック全体に波及することがある
→Slow Drain Device
パフォーマンス障害のアプローチSANスイッチで確認すべきこと
• 各ポートのリンク状態
‒ CRCエラー、Encodeエラーの有無
SFP,ケーブルの汚れ、劣化、故障
• バッファクレジットの枯渇状況
‒バッファ0状態の程度、Class3フレーム破棄の程度
ファブリック構成の見直し(ISLの分散、デバイスの配置、クレジットサイズ)
• サーバ、ストレージの構成、障害有無
LUNの構成、デバイスドライバー設定、アプリケーション不具合等
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 12
PortErrShowコマンド各ポートの信号レベルのエラーの有無を確認する
• 各ポートのエラーの積算総数を表示
‒ エラーの増加傾向を調べる
• エラー発生時間を特定できないので、数値の有無だけで障害かどうか判断できないことに注意
• 障害調査時にstatsClearコマンドで一度値をクリアし、エラー数の増分を調査する
‒ 主な項目の概要• frames tx/rx:転送/受信したフレームの数
• crc_err:CRCエラーのフレーム数‒ このカウンターが上昇する場合、物理層が疑われる(ケーブル、パッチパネル、SFP)
• enc_out:フレーム外で発生したエラーで、通常はプリミティブの問題を示す‒ 8Gbps FCスイッチの場合、portcfgfillwordコマンドを検討する(Gen5 FCでは自動判別のため考慮不要)
• disc_c3:(discarded class 3)保持時間を過ぎ、破棄したフレームの数
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 13
porterrshow:
frames enc crc too too bad enc disc link loss loss frjt fbsy
tx rx in err shrt long eof out c3 fail sync sig
=====================================================================
0: 464k 968k 0 0 0 0 0 83 0 21 14 0 0 0
1: 626k 488k 0 0 0 0 0 101 1 27 13 0 0 0
2: 392k 75k 0 0 0 0 0 358 0 12 1 0 0 0
3: 909k 547k 0 0 0 0 0 5.0m 0 9 20 0 0 0
4: 83k 276k 0 0 0 0 0 19k 1 15 7.3k 1 0 0
5: 165k 324k 0 0 0 0 0 66 2 9 0 0 0 0
6: 0 0 0 0 0 0 0 0 0 6 0 1 0 0
portStatsShowコマンドポート毎の詳細情報を表示
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 14
B6510-01:FID128:admin> portstatsshow 2
stat_wtx 119853225 4-byte words transmitted
stat_wrx 3831446267 4-byte words received
stat_ftx 11022853 Frames transmitted
途中省略
tim_txcrd_z 0 Time TX Credit Zero (2.5Us ticks)
tim_txcrd_z_vc 0- 3: 0 0 0 0
tim_txcrd_z_vc 4- 7: 0 0 0 0
tim_txcrd_z_vc 8-11: 0 0 0 0
tim_txcrd_z_vc 12-15: 0 0 0 0
er_enc_in 0 Encoding errors inside of frames
途中省略
er_rx_c3_timeout 0 Class 3 receive frames discarded due to timeout
er_tx_c3_timeout 0 Class 3 transmit frames discarded due to timeout
以下省略
バッファクレジット0の状態を2.5μ秒維持したときにカウント
スイッチのバッファに保持されているClass3フレームがタイムアウトで破棄された場合にカウント
このコマンドではポート単位の統計情報の詳細が出力されます。
パフォーマンス関連ではバッファクレジットが0の状態、すなわちフロー制御がどの程度発生しているかに着目します。
portcfglongdistanceコマンド接続距離が10kmを超えるE_PortにてBBクレジットを設定するコマンド
• Extended Fabricsライセンスが必要
‒ portcfglongdistance [port] [distance_level] ….
‒ 設定できるモード(distance_level)• L0 ・・・通常のポート(デフォルト)
• LE・・・5km~10km未満のE_Port用 ライセンス不要で通常のE_Portよりも多めにBBクレジットを割り当てるときに設定
• LD・・・リンク初期化時に距離を計測し、動的にクレジットを設定。ただし、指定値(距離・バッファ数)が上限値。ポート帯域のオートネゴシエーションでは最大帯域でクレジット数を設定するため、狭帯域の場合は帯域速度を固定設定にする。
• LS・・・指定値(距離・バッファ数)に応じて静的にクレジットを設定。ポート帯域のオートネゴシエーションでは最大帯域でクレジット数を設定するため、狭帯域の場合は帯域速度を固定設定にする。
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 15
admin> portcfglongdistance 3 LS
Please enter the vc translation link init -- 1
Please enter the option "distance" or "buffers" : distance
Please enter the value : 100
Do you want to configure frame size [y/n]: n
Reserved Buffers = 806
Warning: port (3) may be reserving more credits depending on port speed.
portBufferShowコマンドバッファクレジットの状態確認
• 各ポートのバッファクレジットの割り当て状況を確認するコマンド
© 2015 BROCADE COMMUNICATIONS SYSTEMS, INC. 16
admin> portbuffershow
User Port Lx Max/Resv Avg Buffer Usage & FrameSize Buffer Needed Link Remaining
Port Type Mode Buffers Tx Rx Usage Buffers Distance Buffers
---- ---- ---- ------- ---------------------------- ------ ------- --------- ----------
0 E - 8 - ( - ) - ( - ) 26 26 <2km
1 F - 8 - ( - ) - ( - ) 8 - -
2 F - 8 - ( - ) - ( - ) 8 - -
3 E - 8 - ( - ) - ( - ) 34 34 <2km
途中省略47 - 8 - ( - ) - ( - ) 0 - - 7668
事前に割り当てられているバッファ数 現在使用中のバッファ数
portCfgEportCredits / portCfgFportBuffersE-Port,F-Portに任意のバッファクレジットを割り当てる
• 10km以下の接続環境でもバッファクレジットを増やすことが可能
‒ E-Portは portcfgeportcredits コマンドを使う(FOS7.2から追加された機能)
‒ F-Portは portcfgfportbuffers コマンドを使う
‒ ライセンス不要
© 2015 BROCADE COMMUNICATIONS SYSTEMS, INC. 17
admin> portcfgeportcredits --enable 3 30
Success.
admin> portcfgfportbuffers --enable 2 30
Success.
admin> portbuffershow
User Port Lx Max/Resv Avg Buffer Usage & FrameSize Buffer Needed Link Remaining
Port Type Mode Buffers Tx Rx Usage Buffers Distance Buffers
---- ---- ---- ------- ---------------------------- ------ ------- --------- ----------
0 E - 8 - ( 84) - ( 76) 26 26 <2km
1 F - 8 - ( - ) - ( - ) 8 - -
2 F - 30 - ( - ) - ( - ) 30 - -
3 E - 126 1( 124) 1( 108) 134 134 3km
4 - 8 - ( - ) - ( - ) 0 - -
Port3 E-Portのバッファクレジットを設定
Port2 F-Portのバッファクレジットを設定
E-PortのVC2,3,4,5にそれぞれ30ずつバッファを追加、予約分の2バッファ減らしている
パフォーマンス低下の検知Bottleneck detection (FabricOS 6.3~7.3)
• Slow Drain
‒ 世代混在のFCファブリック(スピードが異なる)場合、顕在化することがある
• バッファクレジット型のフロー制御をするすべてのリンクレイヤが持つ課題
• Bottleneck Monitor
‒ Bottleneckmonコマンドを使うと、F_PortやE_Portの遅延や輻輳のボトルネックを検出できる
‒ Slow drain deviceはポートのegressで検出
‒ ライセンス不要
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 18
switch:admin> bottleneckmon --enable –alert
switch:admin> bottleneckmon --config –alert -cthresh .8 -time 240 1-15
switch:admin> bottleneckmon --show -interval 5 -span 30 2/4
=============================================
Wed Jan 13 18:54:35 UTC 2010
=============================================
Percentage of
From To affected secs
==============================================
Jan 13 18:54:05 Jan 13 18:54:10 20.00%
Jan 13 18:54:10 Jan 13 18:54:15 60.00%
Jan 13 18:54:15 Jan 13 18:54:20 0.00%
Jan 13 18:54:20 Jan 13 18:54:25 0.00%
Jan 13 18:54:25 Jan 13 18:54:30 40.00%
Jan 13 18:54:30 Jan 13 18:54:35 80.00%
パフォーマンス低下の検知Fabric Performance Impact (FPI) Monitoring (FabricOS7.4以降)
• F_PortにおけるLatency Bottleneckをモニタリング
‒ I/O停止 (disruption): IO_PERF_IMPACT
• フレームのタイムアウトもしくはAbort
‒ I/Oフレーム・ロス: IO_FRAME_LOSS
• “Slow drain”デバイスからのバック・プレッシャ
‒ RASLOGメッセージを生成
‒ Latency Bottleneckの可視性を向上
‒ “Fabric Performance Impact”カテゴリー (新規)
• Bottleneck Detection (BD)に比べてシンプルな設定
‒ MAPS内に事前定義のポリシー/ルール
• FPIモニタリングの有効化 (CLI)
‒ mapsconfig --enableFPImonコマンド
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 19
【参考】Virtual Channel アーキテクチャQoS Enable/DisableによるVirtual Channelの構成
• Brocade ISLは内部的にVirtual Channelという経路を使用し、データ送受信
‒ 仮想チャネルによってISL上のフレーム転送をインターリーブし、ノンブロッキング転送を実現
‒ FOSは、R_RDYの代わりにFC-SW5 Fibre Channel standards VC_RDY buffer credit flow control modeを使用
• QoSの設定によりVirtual Channel構成が変更される
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 20
VC# Assigned to
0 Class F 通信
1 Class2 Ack/Link Control
2 Data
3 Data
4 Data
5 Data
6 Class 3 Broadcast
7 Broadcast / Multicast
VC# Assigned to % Bandwidth
0 Class F 通信
1Class2 Ack/Link Control
2 Medium Priority QoS
30%(変更可)3 Medium Priority QoS
4 Medium Priority QoS
5 Medium Priority QoS
6 Class 3 Broadcast
7 Broadcast / Multicast
8 Low Priority QoS10%(変更可)
9 Low Priority QoS
10 High Priority QoS
60%(変更可)
11 High Priority QoS
12 High Priority QoS
13 High Priority QoS
14 High Priority QoS
15
QoS Disable (Default)
QoS Enable (Optional)
Port Level Credit Recovery長距離接続時の自律回復機能(ポート単位)
• 長距離接続のE-Portにてバッファクレジットやフレームロストを検知し、自律回復する機能
‒ 長距離E-Port のみサポート
• LE,LD,LSモードのみ (EX,VE,VEXは未サポート)
‒ R_RDYサポート
‒ バッファクレジットかフレームのロストを検知したときに、Link Resetを行いリンクを復旧
‒ portlogdumpにLR2イベントとして記録されるほか、RASlogにエラーメッセージとして記載
© 2015 BROCADE COMMUNICATIONS SYSTEMS, INC. 21
長距離接続リンク
フレームとBBクレジットのロスを監視
VCレベルのクレジット・ロス検知・回復パフォーマンス劣化を自律回復
• VC単位のクレジットロス検知・回復
‒ ISL/IFL(Inter Fabric Link)でサポート(長距離接続を含む)
• Gen5以降の製品で対応、Port Level Credit Recoveryを発展させた機能
• 1クレジットのロスはオンラインのまま自動回復
• 複数クレジットのロスはリンクリセットにより自動回復(ポート単位)
• RASLOGおよびSNMP Trapによる通知
DCX8510-8
VCレベルのクレジット・ロス検知およびリカバリ
DCX8510-8
Condor3 ISL
まとめFC SAN環境でパフォーマンスが悪いと感じたときには・・・
• FCスイッチのポート統計を確認
‒リンクリセット、CRCエラー
• ケーブル・光トランシーバ(SFPモジュール)の清掃・交換を検討
‒ Credit Buffer 0の多発(フロー制御)
• 応答の悪いデバイス(Slow Drain Device)の特定・対処
• ISL経由のトラフィックを減らす
• Credit数を追加
• FC SANのパフォーマンス監視を検討
‒ Fabric Vision / Brocade Network Advisorの導入
• ストレージベンダーもしくはBrocadeへお問い合わせください
© 2016 BROCADE COMMUNICATIONS SYSTEMS, INC. 23
ありがとうございました。