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

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

我在使用 LSI MegaRaid SAS 控制器的单个虚拟驱动器中安装了 4 个物理驱动器。似乎(至少)其中一个驱动器有坏扇区,因为:

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

我希望解决这个问题会像更换有问题的磁盘并重建 RAID 阵列一样简单。我以为 LSI MegaRaid WebBIOS 可以让我识别有问题的磁盘,但我找不到任何检查坏扇区的选项。

下面是 WebBIOS 的截图: 在此处输入图片描述

有人能提供一些关于如何识别有问题的磁盘的建议吗?

答案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

相关内容