NVMe 健康测试

Nun*_*uno 5 centos smart healthcheck smartctl nvme

在我拥有的带有 HDD 或 SSD 的服务器上,我有一个定期运行的 cron:

/usr/sbin/smartctl --test=short/long /dev/sd1
Run Code Online (Sandbox Code Playgroud)

(对于每个磁盘)

当它运行时,它只是查看 的输出/usr/sbin/smartctl -c /dev/sd1,循环直到它不再包含:

[0-9]+% of test remaining.
Run Code Online (Sandbox Code Playgroud)

然后检查它是否完成且没有错误:

(   0)  The previous self-test routine completed
Run Code Online (Sandbox Code Playgroud)

smartctl但是,从版本 7.0 开始,似乎尚不支持 NVMe 测试:https : //www.smartmontools.org/wiki/NVMe_Support

它确实这么说

smartd 守护进程跟踪运行状况 (-H)、错误计数 (-l error) 和温度 (-W DIFF,INFO,CRIT)

但实际运行测试的是什么?我不确定 和 的输出是否会-H更新-l,除非我们运行短/长测试?

我还阅读了有关 的内容nvme-cli,但我似乎没有找到用它在磁盘上运行运行状况测试的方法。

有任何想法吗?

这里使用 CentOS 7。

sho*_*hok 4

SMART自检是为机械磁盘而设计的。SATA SSD 几乎完全反映了早期 HDD 接口级行为,支持此类自检,但实际上在运行时并没有做太多事情。NVMe 驱动器完全放弃了此类 SMART 自检例程。

对于基于闪存的磁盘,我们应该真正跟踪单元磨损、备用块计数和重新分配的扇区,而不是依赖 NVMe 驱动器不支持的旧自测试例程。

  • 据我所知,“smartd”应该能够监控 NVMe SSD 的运行状况,并在驱动器本身报告不健康状态时发出警报。 (2认同)