目录

简介

什么是中止？

FNIC在堆栈中的位置？

FNIC中止是否由FNIC驱动程序引起？

什么原因会导致FC中止？

此abortmessage表示在日志中找到了什么？

中止消息和FCPIO不匹配消息有何区别？

相关信息

简介

本文档介绍光纤通道网络接口卡(FNIC)中止是什么，并提供常见问题(FAQ)的解答。

什么是中止？

光纤通道(FC)无法恢复丢包或损坏的帧。当交换出现问题时，将发送Abort (ABTS)消息。中止是可由发起方或目标方发出的链路级服务。恢复由小型计算机系统接口(SCSI)层处理，超时为60-120秒，具体取决于操作系统配置。

FNIC在堆栈中的位置？

对于Linux/ESXi，FNIC驱动程序位于操作系统(OS)供应商提供的libfc库和实际硬件之间。  SCSI层向fnic驱动程序发送请求，fnic驱动程序向固件发送scsi请求。固件会生成以太网光纤通道(FCoE)帧，然后通过线路发送。

FNIC中止是否由FNIC驱动程序引起？

否，FNIC中止不一定是驱动程序问题，而是启动程序（或目标）在超时时间内未收到帧且SCSI层终止交换和重试的通用消息。

什么原因会导致FC中止？

FC中止可能由多种原因引起，如拥塞、低性能设备（硬盘、存储处理器、低速链路）、固件问题、驱动程序问题、操作系统问题、链路丢失、链路关闭/打开等。

由于中止是一般消息，因此第一步是缩小问题的范围，提出以下问题：

- 它只出现在存储结构的一端，还是同时出现在存储结构的一端？

- 它出现在一台主机还是多台主机上？

- 如果有多台主机，则存在问题的主机之间有何共同点？与不存在问题的主机之间有何不同？

- 当它与SAN目标上的特定存储连接网络(SAN)目标或特定逻辑单元号(LUN)通信时，是否会发生这种情况？

- 是否有其他SAN目标或LUN没有遇到问题？如果是，这些工作LUN/目标与非工作目标有何区别？

- 是否存在发生问题的模式，例如在每周备份作业期间？

这些问题的答案可帮助您确定问题可能出现在哪里，以及开始关注哪里。

中止最常见的原因是第1层问题，建议检查从发起方到目标的整个路径是否存在任何接口错误(如循环冗余校验(CRC)错误或接口抖动)。

中止的下一个常见原因是由于CPU和磁盘等目标上的组件在启动程序/目标之间的链接超订用或组件超订用。  这就是好的性能基线可以发挥作用的地方。

此中止消息表示在日志中发现了什么？

VMWare vmkernel log:

2017-07-27T14:54:10.590Z cpu6:33351)<7>fnic : 2 :: Abort Cmd called FCID 0x50a00, LUN 0xa TAG c8 flags 3

在本示例中，在2017-07-27T14:54:10 UTC时间，对vmhba2调用了中止，以中止在LUN 0xa上FCID 0x50a00，主机操作系统SCSI标记0xc8。

LUN ID 0倍速 转换为十进制，以确定LUN ID 10是操作系统尝试在阵列上与之通信的LUN。

标记 0xc8 是请求的主机scsi层的IO标记，可用于与VIC适配器上的日志条目匹配。

设备实例2可使用fnic-tracetool-i与vmware vmhba编号进行匹配

/tmp # ./fnic-tracetool -i

HBA             Device

---             ------

vmhba1          fnic1

vmhba2          fnic2

如果交换矩阵互联在终端-主机模式下运行，则FCID 0x50c00可以匹配北向交换矩阵交换机上fcid数据库中的特定目标。

switch-A(nxos)# show fcns database fcid 0x50c00 detail vsan 1 ------------------------ VSAN:1 FCID:0x50c00 ------------------------ port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) node-wwn :50:00:00:00:ff:ff:ff:00 class :3 node-ip-addr :0.0.0.0 ipa :ff ff ff ff ff ff ff ff fc4-types:fc4_features :scsi-fcp:both 253 symbolic-port-name :SYMMETRIX::SAF- 3fB::FC::5876_272+::EMUL B80F0000 41234F44 94F360 07.27.15 11:14 symbolic-node-name :SYMMETRIX::FC::5876_272+ port-type :N port-ip-addr :0.0.0.0 fabric-port-wwn :20:1e:00:2a:6a:ea:00:00 hard-addr :0x000000 permanent-port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) connected interface :fc1/30

VIC适配器日志

170727-14:54:10.590661 ecom.ecom_main ecom(4:0): abort called for exch abort called for exch 431b, status 3 rx_id 0s_stat 0x0xmit_recvd 0x0burst_offset 0x0sgl_err 0x0 last_param 0x0 last_seq_cnt 0x0tot_bytes_exp 0xa00h_seq_cnt 0x0exch_type 0x1s_id 0x36010fd_id 0x50c00 host_tag 0xc8

- s_stat 0x0 =>未收到任何帧

- exch_type 0x1 => Exchange是入口且处于活动状态

- 预期的总字节数为=> tot_bytes_exp 0xa00

- 接收时间=> 0x0

- burst_offset设置=> 0x0

- 此请求的主机scsi层的IO标记是=> 0xc8

- 源ID => 0x36010f

- 目标目标ID => 0x50c00

- 序列ID => 0x0

- rx_id => 0

状态

- 状态3 =写入命令

- 状态1 =读取命令

交换类型(exch_type)：

========================

EXCH_NOT_IN_USE = 0，

EXCH_INITIATOR_INGRESS_ACTIVE = 1

EXCH_TARGET_INGRESS_ACTIVE = 2

EXCH_EGRESS_ACTIVE = 3

EXCH_ABORTED = 4

EXCH_DEBUG = 5

交换状态值(s_stat)

================================

0x00未收到任何帧

0x01至少收到一个帧

0x02序列仍处于活动状态

0x04序列已完成

0x08传输序列初始化

0x10出口序列处于活动状态

0x20 rsp帧中继和主机条目已发送

0x40 exch数据序列挂起

中止消息和FCPIO不匹配消息有何区别？

当没有收到所有预期数据时，可能会发生FCPIO不匹配。

Total bytes xmit < expecte ddata length

160621-04:26:51.733255 ecom.ecom_main ecom(8:3): ox_id 41d4 rx_id 44b seq_cnt 7 seq_id 1 160621-04:26:52.066235 ecom.ecom_main ecom(8:1): fcpio_data_cnt_mismatch for exch 4202 status 1 rx_id5f7 s_stat 0x3 xmit_recvd 0x3000 burst_offset 0x3000 sgl_err 0x0 last_param 0x2800 last_seq_cnt 0x0 tot_bytes_exp 0x8000 h_seq_cnt 0x5 exch_type 0x0 s_id 0xab800 d_id 0xab800 host_tag 0x377

相关信息

- Cisco UCS fnic可调参数

- 将LIBfc与VMware和Cisco VIC配合使用以排除发起方/目标方通信故障

- SAN拥塞！了解、故障排除和缓解思科交换矩阵

- 技术支持和文档 - Cisco Systems