为了测试目的,模拟驱动器上的 SMART 错误?

为了测试目的,模拟驱动器上的 SMART 错误?

我们正在使用 Smartmontools 和 Nagios 以及 check_smartmon 或其他 Nagios 插件来监控服务器上的磁盘。它似乎可以正常工作,因为没有错误。但我如何知道它是否真的有效?

模拟磁盘上的错误并通过整个 Nagios 管道观察错误将会很棒。从 Linux 或 FreeBSD 命令行,有没有办法在不损坏磁盘的情况下触发磁盘驱动器或阵列上的 SMART 故障?

我发现了一个关于smartmontools 支持邮件列表,但不清楚是否曾经添加过此功能。

答案1

如果驱动器固件支持,hdparm可以通过其--make-bad-sector选项手动破坏某些扇区。请注意,这将真的破坏一个部门,这意味着:

  • 在后续读取时,该扇区将被“发现”为不可读,并且 SMART 属性 197 相应增加 -Current Pending Sector
  • 在后续写入时,将使用备用扇区重新映射该扇区,同时 SMART 属性 5 相应增加 -Reallocated Sector Count

请注意hdparm区分“正常”和“标记”损坏:在前者中,任何读取都会超时,就好像该扇区真的坏了一样;在后者中,任何读取都会立即中止。

请务必理解,使用上述方法,您真的损坏的扇区,伴随相对的重新分配事件 - 即,您以某种方式“损坏”您的驱动器。

最后,您可以使用该选项在重新分配扇区之前恢复它--repair-sector

回到smartmontools:您可以使用旧驱动器来模拟此类错误,让它smartd有机会提醒您并检查配置的有效性smartctl

答案2

在没有实际损坏需要检查的情况下,无法模拟硬盘损坏智能工具“力量”。 智能工具确实是一个好工具,它工作正常,并且始终安全可靠。你能用一些有坏扇区的硬盘来代替吗?

相关内容