跳转到主内容

NetApp wins prestigious Coveo Relevance Pinnacle Award. Learn more!

如何使用 fchosts3 命令( SupportData Collection 的一部分)解决前端 SAN 问题

Views:
45
Visibility:
Public
Votes:
0
Category:
fc-series
Specialty:
esg
Last Updated:

执行

执行

适用于

光纤通道

说明

简介

本文介绍fcHosts 3了在收到太多坏 FC 帧时、如何使用 shell 命令在前端 SAN 中查找坏组件。在这种情况下、控制器会在主要事件日志( MEL )中记录以下事件之一:

0x1207 Fibre channel link errors - threshold exceeded
or
0x1206 Fibre channel link errors continue

阈值在 NVSRAM 中的偏移 0x38 中定义。经验法则是,如果在事件日志中看到上述事件、用户还应看到对受影响服务器的影响、因此应调查此问题。

概述

  • fcHosts 3 shell 命令很旧,但很有用。如果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 端口 WWN
  • NodeWwn  20008c7c-ff2057ba 是 HBA 的 FC 节点 WWN
  • CmdRecv  195719 显示了从此 HBA 收到的 SCSI 命令的数量
  • Label    SRV-MDC2-HBA-P0 是 SANtricity 中定义的 HBA 的别名
  • Time     :事件发生的时间(无日期)。
  • LogCode  :发生的事件
  • Qualifier :如果发生检查条件( ChkCond ),则事件的资格认定为检测数据
  • LogCodeCnt:连续出现此 logCode 事件的次数
  • GoodIo Cnt:首次出现后返回状态良好的 IOS 的数量
  • Outst. Cnt:记录第一次出现时未处理的 IOS 的数量

从上面的示例中可以看到以下内容:

具有 WWPN 10008C7C-FF2057BA 的 HBA 连接到 FC 交换机端口 0x0E0000 。它通过通道 2 连接到控制器(用于fcAll/chall查找实际主机端口)。用户已在 SANtricity 的 Host Mapping 部分将别名 SRV-MDC2-HBA-P 0 指定给 HBA 。从历史记录中可以看出, HBA 首先 (捕获开始时)发送了多个 IOS 而没有问题,然后 在 FC 端口 注销登录后发送了重新扫描。控制器通过返回检测条件来确认注销 / 登录、检测关键字为 06 ASC29 Ascq04 、解码为“设备内部重置”。然后, HBA 发送了另一个重新扫描。总体而言、 HBA 和控制器之间没有通信问题的迹象。一些登录 / 注销通常不是问题。

日志代码和限定符列表

登录代码:

  • AbtsRecv = 收到会话中止 (表示路径问题)
  • ChkCond = 控制器向 HBA 发送 SCSI 检查条件(检测数据) (有关详细信息,请参见限定符)
  • First   = 捕获开始
  • GoodIo  = HBA 发送正常 IO
  • Login   = HBA 执行端口登录到控制器
  • Logout  = HBA 已从控制器中注销
  • LinkDown = 与 HBA 的连接已关闭
  • Qfull   = 满足队列已满条件
  • ResvCon = 控制器向 HBA 返回预留冲突(在集群配置中可能正常!)
  • RscnRecv = HBA 发送重新扫描
  • ScsiStat = 发生其他 SCSI 状态

限定符(仅最常用)

  • Count   = 计数(低级 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 出现故障。这意味着 FC 帧在该 HBA 和控制器之间的某个位置已损坏或丢失。错误的 HBA 只是导致该问题的一个可能的候选服务器。

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

Scan to view the article on your device