蓝易云|CentOS 下查看 SSD 寿命(SMART/NVMe 一次打透)🧠
在 Linux 侧评估 SSD 寿命,核心看两类数据:写入量(已写 TB)与磨损百分比(剩余寿命/已用寿命)。SATA/SSD 走 SMART,NVMe 走 NVMe SMART Log;两套口径不同,但都能落到“还能撑多久”的运维决策上🙂
1)先确认盘符(避免看错盘)✅
lsblk -o NAME,MODEL,SIZE,ROTA,TYPE,MOUNTPOINT解释:
ROTA=0通常表示固态盘;先把目标设备(如/dev/sda或/dev/nvme0n1)锁定,避免误判。
nvme list解释:
仅对 NVMe 生效;能直接看到控制器与命名空间(如
/dev/nvme0n1),后续读日志更精准。
2)安装必备工具(CentOS 7/8/Stream 通用)🧰
sudo yum -y install smartmontools解释:
安装
smartctl,用于读取 SATA/SAS 盘 SMART;属于最通用的健康检查工具集。
sudo yum -y install nvme-cli解释:
安装
nvme命令,用于读取 NVMe SMART/寿命指标;NVMe 不建议只靠 smartctl“硬读”。
3)SATA SSD:用 smartctl 直接看“磨损/写入量”📌
sudo smartctl -a /dev/sda解释:
-a输出完整 SMART/日志;重点关注包含Media_Wearout_Indicator、Wear_Leveling_Count、Total_LBAs_Written等字段(不同厂商名字可能不一致)。
sudo smartctl -a /dev/sda | egrep -i 'Wear|Media|LBAs_Written|Percent|Realloc|Uncorrect|CRC'解释:
用筛选把关键项“聚焦”;运维看寿命就看这几行,效率更高。
4)NVMe SSD:看“Percentage Used”最直观 🚀
sudo nvme smart-log /dev/nvme0解释:
Percentage Used:已用寿命百分比(越大越接近寿命末期)。Data Units Written:累计写入量(单位为 NVMe 规范定义的数据单元)。Critical Warning:不为 0 需立刻进入“风险响应”。
sudo nvme smart-log /dev/nvme0 | egrep -i 'critical_warning|percentage_used|data_units_written|media_errors|num_err_log_entries'解释:
直接提取“决策字段”:是否告警、磨损到多少、写了多少、是否出现介质错误。
5)把“写入量”换算成 TB(给你可交付的数字)📈
SATA:LBA → TB(常见每 LBA=512B)
sudo smartctl -a /dev/sda | awk '/Total_LBAs_Written/ {lba=$NF} END{printf "Approx Written: %.2f TB\n", lba*512/1024/1024/1024/1024}'解释:
把
Total_LBAs_Written乘 512 字节,再换算 TB;用于给老板/客户一个“已写入 X TB”的确定口径。注意:少数盘的扇区大小可能不是 512B,此时以
smartctl显示的逻辑扇区为准。
NVMe:Data Units Written → TB(1 单元=1000×512B)
sudo nvme smart-log /dev/nvme0 | awk '/data_units_written/ {u=$3} END{printf "Approx Written: %.2f TB\n", u*1000*512/1024/1024/1024/1024}'解释:
NVMe 的
Data Units Written按规范换算;得到的 TB 适合做容量规划与寿命评估。
原理解释表(看到这张就会判寿命)🧾
| 指标(重点红字) | 常见来源 | 含义 | 运维建议 |
|---|---|---|---|
| Percentage Used | NVMe smart-log | 已用寿命% | ≥80% 进入更换窗口;=100% 视为寿命耗尽风险 |
| Media Wearout / Wear Leveling | smartctl | 磨损/均衡信息 | 数值异常或快速上升:重点排查写放大与业务写入模型 |
| Total Written TB | 两者皆可换算 | 累计写入量 | 结合厂商 TBW/DWPD 做容量与更换计划 |
| Critical Warning | NVMe | 关键健康告警 | 非 0:立刻备份、迁移、准备更换 |
| Reallocated/Uncorrect | SMART | 重映射/不可纠正错误 | 出现即应提高告警等级,结合业务容错策略决策 |
决策流程(不纠结,按流程办事)🔁
flowchart TD A[识别盘符] --> B[读取 SMART/NVMe 日志] B --> C{<span style="color:#e53935;font-weight:700;">Critical Warning</span> 或 错误项异常?} C -- 是 --> D[备份/迁移 + 计划更换] C -- 否 --> E{<span style="color:#e53935;font-weight:700;">Percentage Used</span> ≥ 80%?} E -- 是 --> F[纳入更换窗口 + 监控频率加密] E -- 否 --> G[例行巡检 + 记录写入增长趋势]实话实说的建议
如果你发现寿命指标“还行”,但业务仍频繁卡顿/IO 抖动,问题往往不在寿命本身,而在写放大、队列深度、文件系统参数、日志型业务写入模式。你把smartctl -a或nvme smart-log的关键输出贴出来(打码序列号即可),我可以帮你给出更精准的“是否该换盘 + 为什么 + 怎么降写入”的结论🙂