将大文件(50+GB)从 NVMe 磁盘复制到 SATA 7200rpm HDD 磁盘时,我在完全修补的 Ubuntu 20.04 上的日志中看到以下错误:
Aug 08 00:45:59 host kernel: ata6.00: exception Emask 0x20 SAct 0x0 SErr 0x0 action 0x6 frozen
Aug 08 00:45:59 host kernel: ata6.00: irq_stat 0x20000000, host bus error
Aug 08 00:45:59 host kernel: ata6.00: failed command: WRITE DMA EXT
Aug 08 00:45:59 host kernel: ata6.00: cmd 35/00:08:30:a2:e0/00:00:e8:00:00/e0 tag 23 dma 4096 out
res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x20 (host bus error)
Aug 08 00:45:59 host kernel: ata6.00: status: { DRDY }
Aug 08 00:45:59 host kernel: ata6: hard resetting link
Aug 08 00:46:00 host kernel: ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Aug 08 00:46:00 host kernel: ata6.00: configured for UDMA/133
Aug 08 00:46:00 host kernel: ata6: EH complete
ata6.00
是正在写入的磁盘。
该问题是间歇性的。有时 24 小时不出现,有时每小时出现几次。通常磁盘会恢复,但有时文件系统会损坏,需要卸载、修复(如果可能)并重新安装。
我尝试过的:
- 我试过 3 个不同品牌的硬盘。都有同样的问题。
- 我怀疑是硬件问题。我更换了主板和 SATA 电缆。但这些都无济于事。
- 我有另一台配置相同的服务器。那里没有出现此问题。工作量相同。
- 我还有另一台配置完全不同的服务器(Intel 与 AMD)。问题就出在那里。工作量相同。
- 我通过 禁用了 NCQ
echo 1 > /sys/block/sda/device/queue_depth
。没有帮助。
我没主意了……
这些都是数据中心级组件。根据我采取的步骤,我认为这不是硬件制造缺陷。
这可能与软件/操作系统/BIOS 有关吗?
还有什么想法我应该尝试吗?
答案1
也许这更多的是工作温度的问题?随着磁盘的不断使用,其物理位置和热增益与损耗比变得太高,导致行为不稳定?
在像您这样的较新的内核上,驱动器温度可以放在 sysfs 中的以下路径中:
/sys/class/hwmon/*
请务必确认drivetemp
模块已加载modprobe drivetemp
。
您可以考虑监视这里的文件并再次开始大文件复制,内核文档这里提供了有关如何解释这些文件的指示。
它们包括有用的值,例如工作最小/最大温度,一些驱动程序还可以提供警报指示器,这些警报是因故障而触发的芯片相关警报。
答案2
升级到 Ubuntu 21.04 似乎可以解决这个问题。但不知道为什么。服务器现在运行稳定,没有任何 ATA 问题。