识别 RAID 中的故障硬盘

识别 RAID 中的故障硬盘

我有一台运行定制版 Debian 的服务器。它连接了一个 Sun Storage RAID。它提供的工具非常有限,而且不允许安装新工具。:(

我在以下位置看到此消息dmesg

end_request: critical target error, dev sda, sector 556782970
sd 0:0:0:0: [sda] Unhandled sense code
sd 0:0:0:0: [sda]  Result: hostbyte=0x10 driverbyte=0x08
sd 0:0:0:0: [sda]  Sense Key : 0x4 [current] 
sd 0:0:0:0: [sda]  ASC=0x44 ASCQ=0x0
sd 0:0:0:0: [sda] CDB: cdb[0]=0x28: 28 00 21 2f d5 7a 00 00 08 00
end_request: critical target error, dev sda, sector 556782970

因此,看起来扇区 556782970 中有一个坏块,但我不知道它属于哪个硬盘,因此我无法更换它。

  • arcconf getlogs命令没有发现任何与驱动器有关的问题。

  • 我照做了arcconf task start 1 logicaldrive 0 verify_fix,但是没有帮助。

  • e2fsck检查了一下。它尝试修复一些 inode,但上述问题仍然存在。(我猜是物理问题)。

更多信息:http://pastebin.com/cJ2bUywj

工具不可用:( smartctl badblocks

答案1

如果您实际使用 arcconf,您可以看到如下物理驱动器状态:

arcconf getconfig 1 PD

查找状态为“故障”的驱动器,以识别已标记为故障的驱动器。供您参考,输出将如下所示:

  Device #6
     Device is a Hard drive
     State                              : Failed
     Block Size                         : Unknown
     Supported                          : Yes
     Reported Channel,Device(T:L)       : 0,15(15:0)
     Vendor                             : *MISSING*
     Model                              : 
     Firmware                           : 
     Total Size                         : 0 MB
     Write Cache                        : Unknown
     FRU                                : None
     S.M.A.R.T.                         : No
     S.M.A.R.T. warnings                : 0
     SSD                                : No
     MaxCache Capable                   : No
     MaxCache Assigned                  : No

答案2

根据这一end_request: critical target error, dev sda, sector 556782970行,我假设 /dev/sda 是问题所在。您可以使用以下命令找到该设备的序列号:

ls -l /dev/disk/by-id | grep "sda$"

答案3

虽然可能有一个答案可以让您在操作系统中获得信息,但是如果您在启动期间访问它,控制器固件很可能会告诉您。

我注意到您的剪切和粘贴操作中还有一件事,那就是您的电池显示“故障”。我想知道条带是否因为写入缓存电池坏了而报告故障?虽然它报告和实际坏的 inode 可能意味着您有两个问题。

尽管我使用 Adaptec 控制器的经验通常是在电池没电时,它会禁用写入缓存作为预防措施。

相关内容