我刚刚在带有 NVMe 驱动器的服务器上设置了 CentOS 7,但很惊讶无法smartctl
在它们上运行:
# smartctl -a /dev/nvme0
/dev/nvme0: Unable to detect device type
Please specify device type with the -d option.
# smartctl -a /dev/nvme0 -d nvme
/dev/nvme0: Unknown device type 'nvme'
然后我注意到 CentOS 附带了 Smartmontools 版本 6.2,而Smartmontools从6.5版本开始支持NVMe。
如何在 CentOS 7 上将 Smartmontools 升级到版本 6.5?
他们的下载页面仅提供适用于 CentOS 7 的 Smartmontools 6.2。
理想情况下,我不想从源代码进行编译,我更喜欢 RPM,或者更好的第三方存储库,其中包含最新的 Smartmontools,以获得定期更新。
选择
如果您知道另一个工具(最好包含在 CentOS 7 中),它可以让我从 NVMe 驱动器获取 SMART 信息,我也愿意接受建议。
答案1
好的,我找到了 2 个替代方案。
获取可在 CentOS 7 上运行的预编译二进制文件
尽管他们的包页面仅提供适用于 CentOS 7 的 Smartmontools 6.2,他们的SVN 构建页面提供了在 CentOS 上运行的二进制文件。
正确的存档有一个.linux
后缀,例如我选择:
smartmontools-6.6-0-20170503-r4430.linux-x86_64.tar.gz
该档案包含smartctl
一个像魅力一样工作的二进制文件。
使用 nvme 命令行工具
CentOS 7 附带一个nvme
命令(yum 包名为nvme-cli
)。
它可以列出 NVMe 驱动器:
# nvme list
并且可以读取SMART信息:
# nvme smart-log /dev/nvme0
和额外的SMART信息(不知道为什么分开):
# nvme smart-log-add /dev/nvme0