简介
本文档介绍光纤通道网络接口卡(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
状态
交换类型(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
相关信息