我有一个新系统,带有 debian (omv)、用于操作系统的 SSD 硬盘和用于数据的软件 RAID 6。
我现在才发现我的系统日志中有非常规律的异常。我现在很担心,什么会导致这些异常。这是软件问题还是实际上某些硬件有故障?您真的能从这些日志中读取任何内容吗?
系统日志中有更多异常,但这里摘录如下:
Jul 19 07:48:51 msa-nas1 kernel: [485174.166986] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Jul 19 07:48:51 msa-nas1 kernel: [485174.168522] ata5.01: failed command: WRITE MULTIPLE EXT
Jul 19 07:48:51 msa-nas1 kernel: [485174.170003] ata5.01: cmd 39/00:00:00:cc:89/00:04:08:00:00/f0 tag 0 pio 524288 out
Jul 19 07:48:51 msa-nas1 kernel: [485174.170003] res 51/84:00:00:cd:89/84:03:08:00:00/f0 Emask 0x10 (ATA bus error)
Jul 19 07:48:51 msa-nas1 kernel: [485174.172996] ata5.01: status: { DRDY ERR }
Jul 19 07:48:51 msa-nas1 kernel: [485174.174500] ata5.01: error: { ICRC ABRT }
Jul 19 07:48:51 msa-nas1 kernel: [485174.176003] ata5: soft resetting link
Jul 19 07:48:51 msa-nas1 kernel: [485174.355492] ata5.00: configured for UDMA/33
Jul 19 07:48:51 msa-nas1 kernel: [485174.364550] ata5.01: configured for PIO0
Jul 19 07:48:51 msa-nas1 kernel: [485174.364574] ata5: EH complete
Jul 19 07:48:57 msa-nas1 kernel: [485180.175794] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Jul 19 07:48:57 msa-nas1 kernel: [485180.177436] ata5.01: failed command: WRITE MULTIPLE EXT
Jul 19 07:48:57 msa-nas1 kernel: [485180.179037] ata5.01: cmd 39/00:00:00:34:8a/00:04:08:00:00/f0 tag 0 pio 524288 out
Jul 19 07:48:57 msa-nas1 kernel: [485180.179037] res 51/84:00:00:37:8a/84:01:08:00:00/f0 Emask 0x10 (ATA bus error)
Jul 19 07:48:57 msa-nas1 kernel: [485180.182279] ata5.01: status: { DRDY ERR }
Jul 19 07:48:57 msa-nas1 kernel: [485180.183907] ata5.01: error: { ICRC ABRT }
Jul 19 07:48:57 msa-nas1 kernel: [485180.185524] ata5: soft resetting link
Jul 19 07:48:57 msa-nas1 kernel: [485180.380318] ata5.00: configured for UDMA/33
Jul 19 07:48:57 msa-nas1 kernel: [485180.389391] ata5.01: configured for PIO0
Jul 19 07:48:57 msa-nas1 kernel: [485180.389407] ata5: EH complete
Jul 19 07:48:58 msa-nas1 kernel: [485180.939900] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
Jul 19 07:48:58 msa-nas1 kernel: [485180.941736] ata5.01: failed command: WRITE MULTIPLE EXT
Jul 19 07:48:58 msa-nas1 kernel: [485180.943533] ata5.01: cmd 39/00:00:00:3c:8a/00:04:08:00:00/f0 tag 0 pio 524288 out
Jul 19 07:48:58 msa-nas1 kernel: [485180.943533] res 51/84:00:00:3e:8a/84:02:08:00:00/f0 Emask 0x10 (ATA bus error)
Jul 19 07:48:58 msa-nas1 kernel: [485180.947169] ata5.01: status: { DRDY ERR }
Jul 19 07:48:58 msa-nas1 kernel: [485180.948998] ata5.01: error: { ICRC ABRT }
Jul 19 07:48:58 msa-nas1 kernel: [485180.950814] ata5: soft resetting link
Jul 19 07:48:58 msa-nas1 kernel: [485181.128420] ata5.00: configured for UDMA/33
Jul 19 07:48:58 msa-nas1 kernel: [485181.137482] ata5.01: configured for PIO0
Jul 19 07:48:58 msa-nas1 kernel: [485181.137505] ata5: EH complete
感谢您对此的任何帮助。
编辑:
好吧,我交换了其中一个我以为是 ata5 的驱动器的电缆,现在我意识到有两个 ata5 驱动器:
lrwxrwxrwx 1 root root 0 Jul 27 19:26 sde -> ../devices/pci0000:00/0000:00:14.1/ata5/host4/target4:0:0/4:0:0:0/block/sde
lrwxrwxrwx 1 root root 0 Jul 27 19:26 sdf -> ../devices/pci0000:00/0000:00:14.1/ata5/host4/target4:0:1/4:0:1:0/block/sdf
第二个是直接连接到主板的SSD驱动器。知道我有什么选择吗? smartctl 检查了两个驱动器。两者都没有任何错误。
编辑2:
假设问题不是由 SSD 引起的,我将另一个驱动器和 SATA 电缆更换为在另一个系统中正常工作的部件。我仍然收到错误。
如何识别驱动程序问题,是否主板有问题?
EDIT3:在SSD驱动器的SMART日志中发现一些内容:
212 SATA_PHY_Error 0x0032 100 100 --- Old_age Always - 426
SATA PHY 错误代表什么?
答案1
我采取的修复步骤:
- 更新BIOS
- 在 BIOS 中,禁用 SATA IDE 组合模式有了这个帮助
- 阅读有关的内核文档内核参数,因为在线的每个解决方案都是向其添加参数。
- 我发现我的 SSD 实际上只支持 SATA 速度 3.0Gbps一个好的shell脚本
for i in `grep -l Gbps /sys/class/ata_link/*/sata_spd`;做 echo 链接 "${i%/*}" 速度 `cat $i` 猫“${i%/*}”/device/dev*/ata_device/dev*/id | perl -nE 's/([0-9a-f]{2})/print chr hex $1/gie' | echo " " 设备`字符串` |切-f 1-3 完毕
- 在grub配置中,将SSD驱动器的SATA端口设置为最大速度3.0
vi /etc/默认/grub
更改了该行中的参数,仅允许 SATA 端口 7(我的 SSD)使用 3Gbps
GRUB_CMDLINE_LINUX_DEFAULT="libata.force=7:3.0G 安静"
更新 grub 并重新启动
更新 grub 重启
这个问题的解决方案对我来说已经走了很长一段路。我基本上每隔一天从头开始处理整个问题。
我在路上发现的问题有:
- 我检查了我的智能统计每天都在比较。即使不断抛出异常,错误计数也没有增加。
- 我的SSD实际上是导致内核异常的原因,这个脚本对我帮助很大了解哪个 ATA 设备实际上是机箱中的哪个硬盘驱动器
- 我的 SSD 和另外两个驱动器完全位于一个速度设置错误(UDMA)
root@msa-nas1:~# sudo hdparm -I /dev/sd{a,b,c,d,e,f,g} | grep -i udma DMA:mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA:mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA:mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA:mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA:mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 udma6 DMA:mdma0 mdma1 mdma2 udma0 *udma1 udma2 udma3 udma4 udma5 udma6 DMA:mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 udma6
- dmesg 日志显示了一些关于 40 线电缆的奇怪消息,尽管这些消息实际上已经不存在了,我买了两条不同的新电缆,没有任何帮助。
[1.193091]ata5.01:ATA-8:闪迪SD6SF1M128G1022I,X231200,最大UDMA/133 [1.193095]ata5.01:250069680扇区,多1:LBA48 NCQ(深度0/32) [1.193743]ata5.00:由于 40 线电缆,仅限于 UDMA/33 [1.193746]ata5.01:由于 40 线电缆,仅限于 UDMA/33
- Grub 为最后两个驱动器加载了一个有趣的内核:
pata_atiixp
.我正在等待 AHCI 驱动程序。
[1.022724]scsi4:pata_atiixp [1.022834]scsi5:pata_atiixp [1.022887]ata5:PATA最大UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xf100 irq 14 [1.022888]ata6:PATA最大UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xf108 irq 15
- 我检查了功耗,并比较了它是否超过了功率单位,结果并没有。差得很远。
- 我用另一台机器上的完全相同型号的SSD更换了。完全相同的型号。仍然是同样的错误。
- 固态硬盘!!实际上速度非常慢,因此有关 UDMA 输出的 hdparm 实际上是正确的。
root@msa-nas1:~# hdparm -t -T /dev/sdf /dev/sdf: 计时缓存读取:2.00 秒内 2144 MB = 1072.18 MB/秒 计时缓冲磁盘读取:3.60 秒内 8 MB = 2.22 MB/秒
我试过联系 SandDisk,是他们的硬盘给了我例外,但没有任何成功。我真的找不到有完全相同问题的人,但是很多人都有类似的问题,最后我尝试了其中很少有建议的解决方案,结果是一些事情的混合。现在这一切对我来说完全有意义,我想后来每个人都知道得更清楚了。
答案2
像这样的 ATA 错误肯定是由硬件故障引起的。
您可以使用“smartctl -a”来检查重新分配的扇区或设备日志中的错误。您还可以检查属性 UDMA_CRC_Error_count 以检查电缆或适配器是否有故障。
如果 ata 设备是 RAID 的一部分,我会通过将其从 RAID 中删除并使用 bonnie++ 检查性能问题或至少使用 hdparm -t 将其与其他设备进行比较来自行检查它。
如果您需要查找哪个设备是 ata5,请尝试使用以下命令: ls -l /sys/block/ | grep ata
它应该为您提供一个 ata 设备列表,您可以在其中找到您的设备。