fchosts3 コマンド( supportData コレクションの一部)を使用してフロントエンド SAN の問題をトラブルシューティングする方法
のとう
のとう
環境
Fibre Channel
説明
はじめに
この資料では fcHosts 3
、受信した不良FCフレームが多すぎる場合に、シェルコマンドを使用してフロントエンドSAN内の不良コンポーネントを見つける方法について説明します。この場合、コントローラはメジャーイベントログ(MEL)に次のいずれかのイベントを記録します。
0x1207 Fibre channel link errors - threshold exceeded
or
0x1206 Fibre channel link errors continue
しきい値は、NVSRAMでオフセット0x38で定義されます。経験則では、上記のイベントがイベントログに表示された場合、ユーザーは影響を受けるサーバーにも影響を与える必要があるため、問題を調査する必要があります。
概要
fcHosts 3
シェルコマンドは非常に古いですが、便利なコマンドです。これはstatecapturedata.txt
、FCホスト接続が検出された場合のsupportdata収集(で取得)の一部です。- 出力には、FC HBAとHBAが記録されているコントローラポート間の通信の履歴が表示されます。
- 表示されるイベントの最大数は50です。
- このコマンドの欠点は、出力に時刻のみが表示され、日付は表示されないことです。そのため、イベントは数日前に発生した可能性があります。ただし、問題の場合、多くのイベントが短期間に記録され、ほとんどの場合、サポートデータがキャプチャされた現在のものです。
例:
表示される情報の例を次に示します。
Executing fcHosts(3,0,0,0,0,0,0,0,0,0) on controller A:
<-snip->
=============== HOST 10 =====================
Hst-Role(Ch) PortId PortWwn NodeWwn DstNPort CmdRecv Label
10-Host( 2) 0e0000 10008c7c-ff2057ba 20008c7c-ff2057ba 0eaabf80 195719 SRV-MDC2-HBA-P0
PERMITS: 0x00000008 HsdPort
FLAGS: 0x00001406 Plogi Prli LoginRcvd Analyze
LastActivity: 11/19/13-17:15:47 (GMT)
HOST LOG==> logCtl:0eab1540 logIndex: 5 goodIoCount:88836
dstNPort:0eaabf80 maxIndex: 50 logIoCount:1
RepeatCounts -- IO Types
(R=read,W=write,O=other,N=nonScsi)
Num Time LogCode Qualifier LogCode GoodIo Outstand
Cnt Type Cnt Type Cnt Type
1 11:58:40 First 00000000 1 ---- >100K RWO- 1 ----
2 13:45:47 RscnRecv 000e0000 1 ---- 1 ---- 1 ----
3 13:45:47 Logout RscnMis 1 ---- 1 ---- 1 ----
4 13:49:51 Login ff2057ba 1 ---- <100 R--- 1 ----
5 13:49:51 ChkCond 06290400 <10 R--- <100 R--- 1 R---
6 13:49:51 RscnRecv 000e0000 1 ---- <100K RWO- 1 ----
説明
10-Host
:10は、同じコントローラのtditnall出力のITN番号と同じCh(X)
: 2 はHBAがログインしているチャネル(ホストポート)です。fcAll /challを使用してホストポートを特定するPortId
: 0e0000 は、HBAが接続されているスイッチポートの24ビットアドレスです。PortWwn
:10008c7c-ff2057ba はHBAのFCポートWWNNodeWwn
: 20008c7c-ff2057ba はHBAのFCノードWWNCmdRecv
:195719 に、このHBAから受信したSCSIコマンドの数を示します。Label
: SRV-MDC2-HBA-P0 は、SANtricityで定義されているHBAのエイリアスです。Time
:イベントが発生した時刻(日付はありません)。LogCode
事件が起きたのはQualifier
:チェック条件(ChkCond)の場合、イベントの条件を満たします。これはセンスデータです。LogCodeCnt
:このlogCodeイベントが連続して発生した回数GoodIo Cnt
:1回目の発生後に良好なステータスで返されたIOSの数Outst. Cnt
:1回目の発生が記録されたときの未処理のIOSの数
上記の例では、次のようになります。
WWPN 10008c7c-ff2057baのHBA がFCスイッチポート 0x0e0000に接続されている。チャネル 2を介してコントローラに接続され ます( fcAll/chall
実際のホストポートの検索に使用)。ユーザーは、SANtricityのホストマッピングセクションでHBAにエイリアス SRV-MDC2-HBA-P0を指定しました。履歴からは 、最初にHBA(キャプチャの開始)が問題なく複数のIOSを送信し、その後 FCポートの ログアウト と ログイン後に再スキャンを送信したことがわかります。コントローラは 、「デバイス内部リセット」にデコードする06 asc 29 ascq 04のセンスキーを持つチェック条件を返すことで、ログアウト/ログインを確認しました。その後、HBAは別の 再スキャンを送信しました。全体的に、HBAとコントローラ間の通信問題は表示されません。通常、一部のログイン/ログアウトは問題ではありません。
LogCodeと修飾子のリスト
ログコード:
AbtsRecv
= セッションの中断を受信しました(パス問題を示します)。ChkCond
= コントローラがSCSIチェック条件(センスデータ)をHBAに送信(詳細については修飾子を参照)First
= キャプチャの開始GoodIo
= HBAが良好なIOを送信Login
= HBAによるコントローラへのポートログインLogout
= HBAがコントローラからログアウトされましたLinkDown
= HBAへの接続がダウンしています。Qfull
= キューがいっぱいの条件を満たしていますResvCon
= コントローラがHBAに予約の競合を返しました(クラスタ構成では正常である可能性があります)。RscnRecv
= HBAが再スキャンを送信ScsiStat
= その他のSCSIステータスが発生しました
修飾子(最も一般的なもののみ)
Count
= カウント(Lowlevel FC エラー。パス問題の表示)Discnct
= 切断FreezeTO
= フリーズタイムアウトLogo
= ログアウトObserved
= 観察されたイベントReplyTO
= リプレイタイムアウト(パス問題の表示)RscnMis
= デバイスの再スキャンがありません
コントローラとの通信で問題が発生したHBAの例を次に示します。
RepeatCounts -- IO Types (R=read,W=write,O=other,N=nonScsi) Num Time LogCode Qualifier LogCode GoodIo Outstand Cnt Type Cnt Type Cnt Type42 15:20:40 GoodIo 00000000 1 ---- <100 -W-- 1 -W-- 43 15:21:16 SetError ReplyTO 1 -W-- <100 -W-- 1 -W-- 44 15:21:21 ChkCond 0b470000 <5 -W-- <100 -W-- <5 -W-- 45 15:21:26 SetError ReplyTO 1 -W-- <10 RW-- 1 -W-- 46 15:21:28 ChkCond 0b470000 <5 -W-- <100 -W-- 1 -W-- 47 15:22:36 AbtsRecv 00000000 1 -W-- <1K RW-- 1 -W-- 48 15:22:42 ChkCond 0b470000 <10 -W-- <1K RW-- 1 -W-- 49 15:23:11 GoodIo 00000000 1 ---- <10 -W-- 1 -W-- 50 15:23:12 ChkCond 0b470000 <10 -W-- <1K RW-- 1 -W--
The sense 0b/47/00 decodes to "SCSI Parity Error". In a FC work this means that the the controller received a FC frame with incorrect CRC.
および:
42 17:13:11 SetError ReplyTO <5 -W-- <1K -W-- <5 -W-- 43 17:13:14 GoodIo 00000000 1 ---- <1K -W-- <10 -W-- 44 17:13:14 SetError ReplyTO <5 -W-- <1K -W-- <5 -W-- 45 17:13:16 GoodIo 00000000 1 ---- <1K -W-- <5 -W-- 46 17:13:19 SetError ReplyTO 1 -W-- <100K RW-- 1 -W-- 47 17:13:55 SetError Count <5 -W-- <1K -W-- 1 -W-- 48 17:13:56 GoodIo 00000000 1 ---- <1K -W-- <5 -W-- 49 17:14:05 SetError ReplyTO <5 -W-- <100 R--- <5 -W-- 50 17:14:12 GoodIo 00000000 1 ---- <100K RW-- 1 R---
メモ:上記のエラーが多数発生しているHBAがある場合でも、HBA に障害があることを意味するわけではありません。このHBAとコントローラの間のどこかでFCフレームが破損または破棄されたことを意味します。HBAの不良は、問題の原因となる可能性のある1つにすぎません。