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

Jam*_*mes 3 raid lsi bad-blocks megaraid hardware-raid

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

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

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

以下是 WebBIOS 的屏幕截图: 在此处输入图片说明

任何人都可以就如何识别有问题的磁盘提供任何建议吗?

Spo*_*ler 8

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 的驱动器都是坏的。不应该对这些字段给予任何怜悯,因为需要大量失败的读取才能将任一值增加 1。

您还可以像这样执行短期或长期测试(适用上述相同规则):

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

  • 始终一次更换一个驱动器,除非您非常擅长(并喜欢)恢复损坏的阵列。几乎任何按磁盘阵列成员资格都是如此。 (2认同)

Sim*_*ter 5

如果 RAID 将错误传递给您,那么显然有些错误无法默默纠正。

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

如果出现写入错误,则意味着一个驱动器继续报告写入错误,并且 RAID 无法弹出它,因为它当前不是冗余的。在冗余设置中您永远不会看到写入错误,因此如果您看到,请更换控制器。

如果您可以添加更多磁盘,请创建第三个镜像——恢复会报错,您将需要检查文件系统,但您最终应该尽可能多地保留完整的数据,我希望有任何好处控制器然后踢出所有损坏的磁盘。

回到干净的设置后,设置计划检查以在这些错误成为问题之前捕获它们。

  • @ user121391,驱动器应该在写入时重新映射坏扇区,静默。如果驱动器报告写入错误,则意味着它已用完要重新映射到的扇区,因此大量扇区已损坏。这通常是立即将驱动器踢出的原因。向上传播写入错误意味着*没有*驱动器可以写入该扇区。那要么是控制器损坏并写入无效扇区(-> 更换控制器),要么是您的所有驱动器都存在严重问题,需要调查整个设置。 (2认同)