是什么导致我的系统日志中出现 ata 异常以及如何解决它们

是什么导致我的系统日志中出现 ata 异常以及如何解决它们

我有一个新系统,带有 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

我采取的修复步骤:

    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 设备列表,您可以在其中找到您的设备。

相关内容