为什么用 nvme-cli 看盘
nvme-cli 是 NVMe 固态盘的专用管理工具:list 列设备、smart-log 读健康与磨损、error-log 看错误记录。相比通用的 smartctl,它对 NVMe 的字段支持更细,是判断“这块盘还能不能用”的关键证据。最值得盯的三个字段是 percentage_used(已消耗寿命百分比)、media_errors(介质错误数)与 critical_warning 是否非零。
基本信息
| 适用平台 | Linux(需要 nvme-cli 包,部分操作需 root) |
|---|---|
| 常用命令 | nvme list、nvme smart-log、nvme error-log、nvme id-ctrl |
| 关键字段 | percentage_used、media_errors、critical_warning、temperature、available_spare |
| 交叉工具 | smartctl、lsblk、dmesg |
| 注意 | 云主机上的 NVMe 可能是虚拟化或透传设备,字段口径以厂商为准 |
典型使用场景
- 判断 SSD 是否接近寿命上限,为换盘决策提供依据
- 排查 IO 错误与超时,区分是盘的问题还是链路问题
- 上架前核对型号与固件版本
- 容量与性能规划时确认设备真实能力
- 云主机磁盘异常时收集证据,便于与厂商沟通
常用示例
常用示例
sudo nvme list # 设备、型号、固件、容量一览
sudo nvme smart-log /dev/nvme0 | head -n 20 # 健康与磨损字段
sudo nvme smart-log /dev/nvme0 | grep -Ei 'critical|temperature|percentage_used|media_errors'
# 关键字段解读:
# percentage_used 已消耗寿命百分比,接近 100 意味着该换盘
# media_errors 介质错误累计数,不为 0 需要警惕
# critical_warning 非 0 表示厂商定义的严重警告
sudo nvme error-log /dev/nvme0 | head -n 40 # 错误日志,看是否有持续性错误
sudo nvme id-ctrl /dev/nvme0 | head -n 10 # 控制器信息与固件版本
lsblk -d -o NAME,SIZE,MODEL,ROTA # 与块设备视图交叉核对
sudo smartctl -a /dev/nvme0 | head -n 20 # 需要时用 smartctl 交叉验证关键字段读法
| 字段 | 含义 | 判断 |
|---|---|---|
| percentage_used | 已消耗的寿命百分比 | 接近 100 说明寿命将尽,应计划更换 |
| media_errors | 介质错误累计数 | 不为 0 要关注增长速率 |
| critical_warning | 厂商定义的严重警告位 | 非 0 立即处理 |
| temperature | 当前与最高温度 | 长期偏高会加速老化并影响性能 |
| available_spare | 可用备用块比例 | 明显低于 100% 说明已在消耗备用块 |
| 与 smartctl 的关系 | 两个工具交叉验证 | 结论更可靠 |
云主机上的 NVMe 可能是虚拟化或透传设备:部分字段由厂商自定义或以抽象值呈现,做换盘或扩容决策前先确认这块设备是不是直通盘。
media_errors 偶发加一不必立刻换盘:应结合增长速率与厂商阈值评估;但若同时出现 critical_warning 非零或写入报错,就按故障盘处理并尽快备份数据。