跳转到主内容

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

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

这些阈值在NV389中的Offset 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)的情况下,A限定事件,它是检测数据
  • LogCodeCnt:连续出现此logCode事件的次数
  • GoodIo Cnt:第一次出现后返回状态良好的IOS数量
  • Outst. Cnt:记录第一次出现时未完成的IO数

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

WWPN为 10008c7c-ff2057ba的HBA 连接到FC交换机端口 0x0e0000。它通过通道 2连接到控制器 (用于 fcAll/chall 查找实际主机端口)。用户已在SANtricity的“主机映射”部分中为HBA指定别名SRV-MDC2-HBA-P0 。从历史记录中可以看出,HBA 首先 (捕获开始)发送了多个IOS,没有问题,然后 在FC端口 注销登录后发送了重新扫描。控制器通过返回一个检查条件并使用检测键 06 asc 29 ASCQ 04确认了注销/登录 、从而将其转换为"设备内部重置"。然后,HBA发送了另一个 “Rescan (重新执行)”。总的来说、没有迹象表明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 = 缺少重新CAN设备

以下是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.