查nvme ssd的available spare字段必须用smartctl -a -d nvme /dev/nvme0n1,因默认模式不识别nvme协议;省略-d nvme将导致id 254等关键字段缺失,且需同时关注available spare(id 254)与threshold(id 253),二者独立于percentage used(id 255)。

查 NVMe SSD 的 Available Spare 字段必须用 smartctl -a -d nvme
直接运行 smartctl -a /dev/nvme0n1 会失败或返回不完整数据,因为默认模式不识别 NVMe 协议。必须显式指定设备类型为 nvme,否则 Available Spare(ID 254)等关键字段不会出现在输出中。常见错误是沿用 SATA 习惯省略 -d nvme,结果看到的全是空值或旧缓存数据。
Available Spare 和 Available Spare Threshold 要一起看
这两个值都在 SMART 属性列表里,但意义完全不同:
-
Available Spare(ID 254):当前可用备用块占总备用块池的百分比,正常值在 100 左右,低于 10 就危险 -
Available Spare Threshold(ID 253):厂商设定的告警阈值,通常是 10 或 5,不是固定值,不同型号可能不同 - 真正触发硬件级告警的条件是
Available Spare ,而不是单纯看 <code>Available Spare是否低于 50
别被 Percentage Used 带偏,它和备用空间无关
Percentage Used(ID 255)反映的是 NAND 寿命消耗,不是剩余备用块。两者独立:
-
Percentage Used = 90表示寿命已耗尽 90%,但Available Spare可能仍是 100(还没出现坏块) -
Available Spare = 5表示重映射资源快枯竭,但Percentage Used可能才 30(寿命还很充裕) - 企业级盘(如 Solidigm D5-P5430)可能在
Percentage Used较低时就因写放大激增导致Available Spare快速下降,这时得优先处理后者
确认设备名和权限问题比参数更重要
实际执行时常卡在这几步:
- 设备名错:
nvme0n1是盘,nvme0n1p1是分区,SMART 必须作用于盘本身,不能输错成分区 - 权限不足:普通用户执行会报
Permission denied,必须加sudo;部分系统还需加载nvme-cli模块 - 驱动未就绪:某些老内核(smartctl 可能返回
Read NVMe Identify Controller failed,此时换用nvme smart-log /dev/nvme0n1更可靠
最易忽略的一点:Available Spare 是动态值,受最近写入负载影响明显。刚做完大文件拷贝或数据库 bulk insert 后读一次,和空闲一小时后再读,结果可能差 5–10 个百分点。别单次读数就下结论,建议间隔 10 分钟重复采样两次再判断趋势。











