syslog中的这些磁盘错误是什么意思?

我刚刚重新启动了我的监控服务器一段时间,下面开始填写屏幕:

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 

我已经知道我需要更换硬盘(数据成本>硬盘成本),但是我想知道自己的错误。

是的,我们的监控服务器没有RAID,只有一个硬盘…不要看着我…

 sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed 

看起来驱动器有坏扇区,无法重新分配这些(可能是因为它已经用完了备用扇区)。 smartctl -a /dev/sda的输出会给你更多关于硬盘状态的信息。

Lassie说“arf arf arf!arf!”。 这是愚蠢的,因为这与蒂米没有任何关系。 这就是为什么你不采取从狗的系统pipe理员build议。

该驱动器正在给你一个“未被发现的读取错误 – 自动重新分配失败”,这基本上意味着“我试图读取,我失败了,我试图恢复(再次读取扇区,应用一些ECC,并将数据移动到一个没有被破坏的部门),而且没有成功“。 这可能意味着(正如mgorven所说)磁盘已经充满了重新分配的扇区,因为磁盘已经死了一段时间,但是我也认为这可能意味着它根本无法恢复扇区(重复读取+ ECC未能获得一个好看的数据块)。

无论哪种方式,是的,驱动器非常非常,仙人掌。 你的数据看起来并不健康。

现在制作一个dd镜像或该磁盘的rsync副本,除非你有一个完整的备份,允许方便的还原那个盒子。 并开始寻找一个兼容的工作更换磁盘。

顺便说一下,UDMA / 66,是一个十岁的PATA磁盘?

我知道这是旧的,但以防万一有人仍然阅读这个post:“DD也会尝试读破碎的部门(S)” – gddrescue在这里是有用的。 它不(好吧,它确实,但只有一次)。

正如已经提到的,它可能意味着你的驱动器即将结束它的生命,但不一定立即 – 你应该在磁盘上运行一个fsck ,并尝试修复错误(请参阅smartmontools wiki来获得修复坏块的build议),并且磁盘可能正常一会儿再长一点。

但是,您应该开始运行smartd (作为smartmontools包的一部分),并关注其报告和/或设置电子邮件通知。 您也可以通过创build由smartd-runner调用的脚本(在/etc/smartmontools/run.d/ )来添加自己的自定义通知。