smartmontools 7.5版本发布:磁盘健康监控工具的重大更新
smartmontools是一款开源的磁盘监控工具套件,主要用于监控硬盘和固态硬盘的健康状态。它包含两个主要组件:smartctl(用于查询磁盘信息的命令行工具)和smartd(用于持续监控磁盘状态的守护进程)。该项目支持多种接口类型的存储设备,包括ATA/SATA、SCSI/SAS和NVMe等。
主要功能改进
1. 输出格式与JSON增强
新版本在JSON输出格式方面进行了多项改进,使自动化处理更加方便:
- 新增了
endurance_used
字段,显示ATA/SCSI/NVMe设备的耐久度使用情况 - 增加了
spare_available
字段,显示ATA/NVMe设备的备用块可用情况 - 恢复了SCSI设备的
model_name
字段(之前版本意外移除) - 为NVMe设备增加了
-j -c
选项的支持 - 在
-j -n
选项中新增了power_mode
相关字段(仅限ATA设备)
2. NVMe设备支持增强
7.5版本显著加强了对NVMe设备的支持:
- 支持按命名空间显示SMART/健康信息(
-H -A
选项) - 改进了NVMe自检功能,修复了单命名空间设备的自检问题
- smartd现在支持NVMe属性日志
- 对于单命名空间设备,smartd会忽略NSID重复检查
- 不再记录与"Set Feature"相关的NVMe错误信息日志的严重警告
3. 设备健康监控改进
- 新增对NVMe设备"Available Spare"值的检查(
-p
选项) - 新增对NVMe设备"Percentage Used"和"Media and Data Integrity Errors"值的检查(
-u [-f]
选项) - 改进了温度检查逻辑,不再包含NVMe设备中的个别传感器读数
- 修复了ATA错误日志中计数为零但索引非零时的错误显示问题
设备支持与兼容性
1. 新增设备支持
- 增加了对JMB39x协议变体的支持(用于QNAP-TR002 NAS设备)
- 改进了对多种USB/NVMe控制器的支持
- 新增实验性的NVMe/SAT自动检测选项
2. SCSI设备改进
- 修复了模式页偏移和VPD查询的范围检查问题
- 修复了VPD页面解析时的缓冲区溢出问题
- 改进了VPD页面中多个标识符的处理
3. FARM日志改进
- 修正了"Write Power On"时间的单位
- 修复了ATA"Assembly Date"的字节序问题
- 解决了可能的段错误问题
- 新增
-q noserial
选项可抑制FARM中的序列号和WWN - 新增
-T permissive
选项可覆盖重新贴牌驱动器的错误否定检查
系统兼容性与构建改进
1. 跨平台支持
- 新增对OpenBSD的NVMe支持
- 在Linux上移除了对已弃用的
-d marvell
设备类型的自动检测 - 增加了对MidnightBSD的检测支持
- 移除了对没有
sigaction()
的平台的支持
2. 构建系统改进
- 现在构建过程是可重现的(使用相同的SOURCE_DATE_EPOCH、构建配方和工具链)
- 不再支持automake 1.13以下版本
- 自定义make规则在
make V=0
时会被静默 - 增强了
dist-*
目标以创建可重现的源代码包 - 移除了大多数GNU make特定语法(macOS的可重现构建除外)
3. 特定平台改进
- Linux:
smartd.service
避免了关于未设置环境变量的警告 - macOS:支持DMG镜像的可重现构建
- Windows:增加了WMI超时时间
- Windows:支持安装程序的可重现构建
- Windows:修复了安装程序签名可能损坏卸载程序的问题
- Windows:改进了
update-smartd-drivedb.ps1
脚本的GPG调用逻辑
使用建议与注意事项
对于系统管理员和存储设备维护人员,升级到smartmontools 7.5版本可以带来更全面的设备健康监控能力,特别是对NVMe设备的支持得到了显著增强。在使用时应注意:
- 对于NVMe设备,新版本提供了更详细的健康信息,建议更新监控配置以利用这些新特性
- 在自动化脚本中,可以利用增强的JSON输出格式更可靠地解析设备信息
- 对于使用重新贴牌驱动器的环境,新的
-T permissive
选项可以帮助绕过错误的支持检查 - 在构建自定义版本时,新的可重现构建功能可以确保构建过程的一致性
总的来说,smartmontools 7.5版本在功能完整性、设备兼容性和构建可靠性方面都做出了重要改进,是存储设备监控领域的一次重要更新。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考