跳转到主内容

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

Views:
48
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

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.
Scan to view the article on your device