我刚刚第一次重新启动了我的监控服务器,以下内容开始填充屏幕:
Jul 11 23:52:30 monit kernel: [ 25.255908] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jul 11 23:52:30 monit kernel: [ 25.256170] ata1.00: BMDMA stat 0x24
Jul 11 23:52:30 monit kernel: [ 25.256278] ata1.00: failed command: READ DMA
Jul 11 23:52:30 monit kernel: [ 25.256410] ata1.00: cmd c8/00:c0:20:68:35/00:00:00:00:00/e0 tag 0 dma 98304 in
Jul 11 23:52:30 monit kernel: [ 25.256416] res 51/40:9f:41:68:35/00:00:00:00:00/e0 Emask 0x9 (media error)
Jul 11 23:52:30 monit kernel: [ 25.256809] ata1.00: status: { DRDY ERR }
Jul 11 23:52:30 monit kernel: [ 25.256933] ata1.00: error: { UNC }
Jul 11 23:52:30 monit kernel: [ 25.304388] ata1.00: configured for UDMA/66
Jul 11 23:52:30 monit kernel: [ 25.304430] ata1: EH complete
. . .
Jul 11 23:52:30 monit kernel: [ 25.552451] sd 0:0:0:0: [sda] Unhandled sense code
Jul 11 23:52:30 monit kernel: [ 25.552462] sd 0:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jul 11 23:52:30 monit kernel: [ 25.552475] sd 0:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]
Jul 11 23:52:30 monit kernel: [ 25.552490] Descriptor sense data with sense descriptors (in hex):
Jul 11 23:52:30 monit kernel: [ 25.552498] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Jul 11 23:52:30 monit kernel: [ 25.552529] 00 35 68 41
Jul 11 23:52:30 monit kernel: [ 25.552543] sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
Jul 11 23:52:30 monit kernel: [ 25.552559] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 00 35 68 20 00 00 c0 00
Jul 11 23:52:30 monit kernel: [ 25.552587] end_request: I/O error, dev sda, sector 3500097
Jul 11 23:52:30 monit kernel: [ 25.556607] ata1: EH complete
我已经知道我需要更换 HDD(数据成本 > HDD 成本),但我想知道我自己的知识是什么实际上错了。
是的,我们的监控服务器没有RAID,只有一块HDD。。。别看我。。。
答案1
sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
看起来驱动器有坏扇区,并且无法重新分配这些扇区(可能是因为备用扇区用完了)。输出smartctl -a /dev/sda
将为您提供有关驱动器状态的更多信息。
答案2
Lassie 说:“啊!啊!啊!”这很蠢,因为这没有什么与蒂米有关或者这就是为什么你不接受狗给系统管理员的建议。
驱动器显示“未恢复的读取错误 - 自动重新分配失败”,这基本上意味着“我尝试读取,但失败了,我尝试恢复(多次读取扇区,应用一些 ECC,并将数据移动到未损坏的扇区),但失败了”。这可能意味着(正如 mgorven 所说)磁盘已经塞满了重新分配的扇区,因为磁盘已经坏了一段时间,但我还认为这可能意味着它根本无法恢复扇区(重复读取 + ECC 无法获得好看的数据块)。
不管怎样,这个驱动器确实非常糟糕。您的数据看起来也不太健康。
答案3
我知道这已经过时了,但万一有人还在读这篇文章:“DD 还会尝试读取损坏的扇区”—— gddrescue 在这里很有用。它没有(好吧,它确实有,但只有一次)。
答案4
正如前面提到的,这可能意味着您的驱动器即将报废,但不一定是立即报废 - 您应该fsck
在磁盘上运行并尝试修复错误(请参阅smartmontools 维基以获得修复坏块的建议)并且磁盘可能还能再正常一段时间。
但您应该开始运行smartd
(作为smartmontools
软件包的一部分)并关注其报告和/或设置电子邮件通知。您还可以通过创建/etc/smartmontools/run.d/
由 调用的脚本(在 中)来添加您自己的自定义通知smartd-runner
。