故障现象
某客户反映,通过 IMC管理软件查看到 3par 8200存储的两个端口:0:0:1和0:0:2,有大量的CRC相关告警,为了保障存储链路稳定,请求处理此故障。
故障分析
8200 cli% showportlesb single 0:0:1 #显示 HP 3PAR 存储系统中端口状态和统计信息
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:1> 0x10a00 2001000 2AC03DE4F 203 3652 23 85 4152 5023
0:0:1端口有明显的CRC增长
8200 cli% showportlesb single 0:0:2
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:2> 0x20d00 20020002AC01BE4E 8 2480 8 0 4406 0
host0 0x20000 500143802855522A 0 0 0 0 0 0
host1 0x20100 5001438028439225 0 0 0 0 0 0
host10 0x20200 10000090FAC0F1D8 0 3 0 0 14 1
host6 0x20500 10000090FAC0B96A 0 25899 2 0 68678 424
host5 0x20400 10000090FAC0B78E 1 1233 2 0 61019 82
host11 0x20300 10000090FAC0B556 0 5 0 0 17 0
host8 0x20700 10000090FAC0B221 0 170797 2 0 195421 3083
host13 0x20600 10000090FAD0F665 1 11226 4 0 101409 491523
host13有大量的CRC错误
8200 cli% showportlesb hist 0:0:1
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:1> 0x10a00 20010002AC03DE4F 317 2153 4 0 5362 2856
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:1> 0x10a00 20010002AC01BE4E 317 2153 4 0 5362 2968
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:1> 0x10a00 20010002AC01BE4E 317 2153 4 0 5362 3023
0:0:1CRC错误不断增长,说明IO端口或者链路出现了问题。
8200 cli% showportlesb hist 0:0:2
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:2> 0x20d00 20020002AC01BE4E 8 2480 8 0 4406 0
host0 0x20000 500143802855522A 0 0 0 0 0 0
host1 0x20100 5001438028439225 0 0 0 0 0 0
host10 0x20200 10000090FAC0F1D8 0 3 0 0 14 1
host6 0x20500 10000090FAC0B96A 0 25899 2 0 68678 424
host5 0x20400 10000090FAC0B78E 1 1233 2 0 61019 82
host11 0x20300 10000090FAC0B556 0 5 0 0 17 0
host8 0x20700 10000090FAC0B221 0 170797 2 0 195421 3083
host13 0x20600 10000090FAD0F665 1 11226 4 0 101409 491523
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
ID ALPA ----Port_WWN---- LinkFail LossSync LossSig PrimSeq InvWord InvCRC
<0:0:2> 0x20d00 20020002AC01BE4E 8 2480 8 0 4406 0
host0 0x20000 500143802855522A 0 0 0 0 0 0
host1 0x20100 5001438028439225 0 0 0 0 0 0
host10 0x20200 10000090FAC0F1D8 0 3 0 0 14 1
host6 0x20500 10000090FAC0B96A 0 25899 2 0 68678 424
host5 0x20400 10000090FAC0B78E 1 1233 2 0 61019 82
host11 0x20300 10000090FAC0B556 0 5 0 0 17 0
host8 0x20700 10000090FAC0B221 0 170797 2 0 195421 3083
host13 0x20600 10000090FAD0F665 1 11226 4 0 101409 841226
通过命令输出发现host13有大量的报错,链路故障严重。
CRC产生的原因
数据在传输过程中可能会因为传输介质故障或外界的干扰而产生比特差错(使原来的0变为1,原来的1变为0),从而导致接收方接收到错误的数据。为尽量提高接收方收到数据的正确率,在接收数据之前需要对数据进行差错检测,仅当检测的结果为正确时才接收数据。
差错检测的方式有多种,常见的有奇偶校验、求和校验、CRC校验等。他们的工作原理都是发送端对数据按照某种算法计算出来校验码,将校验码和数据一起发送到接收端,然后接收端进行检验确定数。
解决思路
-
0:0:1端口:有CRC间歇性报错,建议先更换3par存储0:0:1端口到对端交光纤交换机的SFP,更换完后执行showportlesb reset 命令进行端口重置,如果故障还存在,下一步需要更换SAN交换机和3par之间的光纤线。
-
0:0:2端口:这个端口连接有8个主机,只有host13有crc增长,如果端口和线路有问题,将会影响该端口下的所有主机,而不会只影响host13;所以问题点应为主机光纤卡SFP—光纤线—交换机SFP之间的链路故障,需用排除法解决。
故障处理
• 0:0:1 最终更换了0:0:1的SFP和光纤线,故障解决完毕。
• 0:0:2 host13主机最终更换了HBA卡,故障解决完毕。
经验总结
处理CRC报错问题时,需要检查命令输出,确认报错出现在主机至交换机、或是交换机至存储的某一段,确认完毕后,按照如下顺序依次进行处理:
- Cable between the host and the SAN switch associated with the ports part of the 3PAR SAN Zone.
- Replace the SFP’s on the SAN switch.
- Replace the SFP’s on the HBA.
- Use a different port on the SAN Switch.
- Replace the HBA on the server.