RAID中的哪个驱动器有坏扇区?

我使用LSI MegaRaid SAS控制器在一个虚拟驱动器中安装了4个物理驱动器。 看起来(至less)其中一个驱动器有坏道,因为:

  • 尝试备份某些文件时发生io错误
  • 运行badblocks报告一些坏道

我希望解决这个问题就像换掉有问题的磁盘和重buildRAIDarrays一样简单。 我以为LSI MegaRaid WebBIOS将允许我识别有问题的磁盘,但我找不到任何选项来检查坏扇区。

以下是WebBIOS的截图: 在这里输入图像说明

任何人都可以提供有关如何确定有问题的磁盘的任何build议吗?

Smartmontools具有扩展function,可以通过LSI(以及其他RAID)arrays轮询SMART数据的驱动器。 通常情况下,这不是你可以做的,因为RAID抽象模糊了与驱动器的直接接口。

Smartmontools可能未安装在您的机器上。 然而,它是大多数发行版的大多数“主要版本库”本地的,甚至有一个Windows版本: http : //sourceforge.net/projects/smartmontools/files/

它可以用来轮询LSI MegaRAID控制器背后的驱动器,如下所示:

smartctl -a -d megaraid,N /dev/sdX

其中“-a”表示显示所有磁盘数据,-d表示设备types(megaraid是您的情况下的types),后面跟N表示该控制器中的驱动器号。 要访问插槽0中的驱动器,可以在这里说0。 如果你想轮询你所有的四个驱动器,运行这个命令四次,用0到3代替N. sdX本身就是RAID抽象,正如在操作系统中正常看到的一样。 你的可能是sda。

您将看到每个驱动器的长输出,并且您要查找的是要么报告的一般SMART故障(您可能没有find,因为您的控制器不拒绝驱动器),或报告“脱机不可纠正的扇区”或“待定部门“。 任何超过0在这个领域的驱动器是坏的。 对这些领域不应该施加任何怜悯,因为需要大量失败的读取来增加一个值。

您也可以像这样执行一个短期或长期的testing(同样的规则适用):

smartctl -t [long|short] -d megaraid,N /dev/sdX

如果RAID把错误传递给你,那么显然有些错误是不能被默认纠正的。

如果读取错误,这意味着这些块的所有冗余副本都被破坏了。 故障驱动器不会popup,因为没有备件。

如果出现写入错误,则意味着一个驱动器继续报告写入错误,并且由于RAID当前不是多余的,所以RAID无法popup。 您不应该在冗余设置中看到写入错误,所以如果这样做,请更换控制器。

如果你可以添加更多的磁盘,创build第三个镜像 – 恢复将会抱怨,你将需要检查文件系统,但是最终应该尽可能保留完整的数据,我希望任何好的控制器然后踢出所有破碎的磁盘。

一旦你回到了一个干净的设置,设置计划检查,以避免这些错误发生问题。

如果您正在使用Linux或Windows,请启动您的系统并使用megacli实用程序。

 megacli -pdlist -aALL 

在结果中检查“固件状态”行。 退化的磁盘将显示为:

 Firmware state: Offline