![RAID 中的哪个驱动器有坏扇区?](https://linux22.com/image/690916/RAID%20%E4%B8%AD%E7%9A%84%E5%93%AA%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%9C%89%E5%9D%8F%E6%89%87%E5%8C%BA%EF%BC%9F.png)
答案1
Smartmontools 具有扩展功能,允许它通过 LSI(以及其他)RAID 阵列轮询驱动器以获取 SMART 数据。通常,您无法执行此操作,因为 RAID 抽象会掩盖与驱动器的直接接口。
您的机器上可能未安装 Smartmontools。但是,它已内置于大多数发行版的大多数“主存储库”中,甚至还有一个 Windows 版本:http://sourceforge.net/projects/smartmontools/files/
它可用于轮询 LSI MegaRAID 控制器后面的驱动器,如下所示:
smartctl -a -d megaraid,N /dev/sdX
其中“-a”表示显示所有磁盘数据,-d 表示设备类型(您的情况是 megaraid 类型),后面跟着 N,表示该控制器中的驱动器号。要访问插槽 0 中的驱动器,您需要在此处输入 0。如果您希望轮询所有四个驱动器,请运行此命令四次,将 N 替换为 0 到 3。sdX 是 RAID 抽象本身,通常在操作系统中可见。您的可能是 sda。
您将看到每个驱动器的长输出,而您要查找的是报告的一般 SMART 故障(您可能找不到,因为您的控制器不会拒绝驱动器),或报告的“脱机无法纠正的扇区”或“待处理扇区”。此字段中大于 0 的任何驱动器都是坏的。不应宽恕这些字段,因为需要大量失败的读取才能将任一值增加一。
您还可以像这样执行短期或长期测试(适用上述相同规则):
smartctl -t [long|short] -d megaraid,N /dev/sdX
答案2
如果 RAID 将错误传递给您,那么显然存在无法悄悄纠正的错误。
如果出现读取错误,则意味着这些块的所有冗余副本都已损坏。故障驱动器不会被弹出,因为没有备用驱动器。
如果出现写入错误,则意味着一个驱动器继续报告写入错误,并且 RAID 无法将其弹出,因为它当前不是冗余的。在冗余设置中,您永远不会看到写入错误,因此如果出现,请更换控制器。
如果您可以添加更多磁盘,请创建第三个镜像 - 恢复将会发出抱怨,并且您将需要检查文件系统,但您最终应该会得到尽可能多的完整数据,并且我希望任何好的控制器都能踢出所有损坏的磁盘。
一旦恢复到干净的设置,请设置定期检查以便在这些错误成为问题之前捕获它们。
答案3
如果您使用的是 Linux 或 Windows,则启动系统并使用 megacli 实用程序。
megacli -pdlist -aALL
在结果中检查“固件状态”行。降级的磁盘将显示为:
Firmware state: Offline