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