简介
本文档介绍光纤通道网络接口卡(FNIC)中止的内容,并提供常见问题解答(FAQ)。
什么是中止?
光纤通道(FC)没有恢复丢弃或损坏帧的方法。当交换出现问题时,会发送中止(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时间,在主机OS SCSI标记为0xc8的LUN 0xa上对FCID 0x50a00的vmhba2调用中止操作。
LUN ID 0xA 转换为十进制,以确定LUN ID 10是操作系统尝试与阵列通信的LUN。
标签 0xc8 是主机scsi层的请求IO标记,可用于与VIC适配器上的日志条目匹配。
设备实例2 可与vmware vmhba编号fnic-tracetool -i匹配
/tmp # ./fnic-tracetool -i
HBA Device
--- ------
vmhba1 fnic1
vmhba2 fnic2
如果交换矩阵互联在终端 — 主机模式下运行,则FCID 0x50c00可与北向交换矩阵交换机上fcns数据库中的特定目标进行匹配。
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
Exchange状态值(s_stat):
============================================
0x00未接收帧
0x01至少接收一个帧
0x02序列仍处于活动状态
0x04序列完成
0x08传输序列init
0x10出口序列处于活动状态
发送0x20 rsp fr和主机条目
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
相关信息