一段时间以来,我第一次重新启动了监控服务器,屏幕上开始出现以下内容:
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,只有一个硬盘……别看我……
看起来驱动器有坏扇区并且无法重新分配这些扇区(可能是因为备用扇区用完了)。的输出
smartctl -a /dev/sda
将为您提供有关驱动器状态的更多信息。莱西在说“arf!arf arf!arf!”。这是愚蠢的,因为这与蒂米或威尔斯无关。这就是为什么您不接受狗的系统管理员建议的原因。
该驱动器给你一个“未恢复的读取错误 - 自动重新分配失败”,这基本上意味着“我尝试读取,我失败了,我试图恢复(多次读取该扇区,应用一些 ECC,并将数据移动到一个未损坏的扇区),但它没有用”。这可能意味着(正如 mgorven 所说)磁盘已经塞满了重新分配的扇区,因为磁盘已经死了一段时间,但我也认为这可能意味着它根本无法恢复扇区(重复读取+ ECC 未能得到好看的数据块)。
无论哪种方式,是的,驱动器非常非常仙人掌。您的数据看起来也不健康。
我知道这是旧的,但以防万一有人仍在阅读这篇文章:“DD 还将尝试读取损坏的扇区”- gddrescue 在这里很有用。它没有(好吧,它确实存在,但只有一次)。
立即制作该磁盘的 dd 映像或 rsync 副本++,除非您有完整备份可以方便地恢复该磁盘。并开始寻找兼容且可用的替换磁盘。
顺便说一句,UDMA/66,那是一张有十年历史的 PATA 磁盘吗?
正如已经提到的,这可能意味着您的驱动器寿命即将结束,但不一定立即 - 您应该
fsck
在磁盘上运行并尝试修复错误(请参阅smartmontools wiki以获取修复坏块的建议)并且磁盘可能没问题而更长的时间。但是你应该开始运行
smartd
(作为smartmontools
包的一部分)并关注它的报告和/或设置电子邮件通知。您还可以通过创建/etc/smartmontools/run.d/
由smartd-runner
.