我们都知道磁盘是有寿命的,超期服役后,服务器或物联网设备的磁盘会陆续报故障损坏,意外的损坏也带来诸多问题。本文主要讲解下nvme SSD的磁盘寿命消耗情况。
一、查看nvme盘写量
1.安装nvme工具
$ sudo apt update
$ sudo apt install nvme-cli smartmontools
2.查看磁盘历史总写情况
2.1 smart-log方式
# 确认挂载盘
$ ls /dev/ | grep nvme*
# 查看磁盘信息
$ sudo nvme smart-log /dev/nvme1
Smart Log for NVME device:nvme1 namespace-id:ffffffff
critical_warning : 0
temperature : 34 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 8%
data_units_read : 10,392,752
data_units_written : 186,419,551
host_read_commands : 41,493,825
host_write_commands : 3,038,321,478
controller_busy_time : 13,646
power_cycles : 329
power_on_hours : 8,573
unsafe_shutdowns : 75
media_errors : 0
num_err_log_entries : 0
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 37 C
Temperature Sensor 2 : 34 C
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0
# 计算磁盘
data_units_written 186,419,551*512/1000/1000/1000= 累计写入量95.4TB
2.2 smartctl方式
$ sudo smartctl -a /dev/nvme1
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 33 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 8%
Data Units Read: 10,392,753 [5.32 TB]
Data Units Written: 186,435,625 [95.4 TB] # 计算好的TB
Host Read Commands: 41,493,879
Host Write Commands: 3,038,388,026
Controller Busy Time: 13,647
Power Cycles: 329
Power On Hours: 8,574
Unsafe Shutdowns: 75
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 1: 37 Celsius
Temperature Sensor 2: 33 Celsius
二、磁盘寿命
1.设计寿命
我拿到的这个nvme型号,设计写寿命为600T的写入:
2.写放大
一般约为1.4倍,我们保守点按1.5写放大计算,得出大约:
600TB / 1.5 = 400TB # 累计实际可写规模
据此可以评估磁盘的寿命已经使用了百分之多少。
三、业务写入速度
切换到正常业务场景,按第一步方法查询磁盘累计写入量,并记录时间,第二天相同时间,再次查询磁盘累计写入量,两次累计写入量的差值即为此业务场景每天对磁盘总寿命的消耗(业务消耗相对稳定的情况下)。
结合业务使用频率和时间,即可自动进行磁盘的寿命报警,避免损坏造成的损失。
yan 24.8.20