从 smartctl 自我测试不再在 SSD 上失败可以得出什么结论?

从 smartctl 自我测试不再在 SSD 上失败可以得出什么结论?

我有一块三星 970 EVO SSD,在过去 4.5 年里,它一直在 24/7 地运行 openSUSE。这是我的第一块 SSD,我不确定我的 HDD 经验是否适用于 SSD。第一次出现错误时我会更换 HDD,但我想知道 SSD 是否也应该如此。

我的硬盘从来没有出过任何问题,我期望 SMART 能够告诉我硬盘是否即将出现故障。无论如何,我决定运行 smartctl 测试,令我惊讶的是,它发现了一个无法读取的地址:

smartctl -t long /dev/nvme0n1
smartctl -a /dev/nvme0n1

[...]
Num  Test_Description  Status                       Power_on_Hours  Failing_LBA  NSID Seg SCT Code
 0   Extended          Completed: failed segments            11636    742642300     1   7   -    -
[...]

将 LBA 映射到相应文件后,尝试复制文件失败,正如预期的那样。

然后我读取了整个 SSD,以便更好地了解问题的严重程度,通过

dd bs=4k conv=noerror if=/dev/nvme0n1 of=/dev/null status=progress

这发现了自己的问题(3 或 4 个),其中不包括原始 LBA。所以我再次尝试复制第一个受影响的文件,现在成功了。然后我又运行了一次测试,再次读取 SSD,再运行一次测试。

现在一切似乎都很好,除了有一堆Unrecovered Read Errors,我不确定是否应该对它们做些什么。

有 4 个文件受到影响,但都不是很重要。其中 2 个我有备份。文件可用后,我进行了比较,发现它们与备份完全相同。

最后状态:

# smartctl -a /dev/nvme0n1

smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.6-1-default] (SUSE RPM)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 970 EVO 1TB
Serial Number:                      S467NX0KC42742T
Firmware Version:                   2B2QEXE7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 1,000,204,886,016 [1.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      4
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,000,204,886,016 [1.00 TB]
Namespace 1 Utilization:            718,928,310,272 [718 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            002538 5c81b21b20
Local Time is:                      Wed Dec 27 08:39:23 2023 EET
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     85 Celsius
Critical Comp. Temp. Threshold:     85 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     6.20W       -        -    0  0  0  0        0       0
 1 +     4.30W       -        -    1  1  1  1        0       0
 2 +     2.10W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3      210    1200
 4 -   0.0050W       -        -    4  4  4  4     2000    8000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        33 Celsius
Available Spare:                    96%
Available Spare Threshold:          10%
Percentage Used:                    1%
Data Units Read:                    67,636,923 [34.6 TB]
Data Units Written:                 112,642,849 [57.6 TB]
Host Read Commands:                 987,052,850
Host Write Commands:                1,832,390,531
Controller Busy Time:               5,409
Power Cycles:                       141
Power On Hours:                     11,648
Unsafe Shutdowns:                   90
Media and Data Integrity Errors:    53
Error Information Log Entries:      1,180
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               33 Celsius
Temperature Sensor 2:               43 Celsius

Error Information (NVMe Log 0x01, 16 of 64 entries)
Num   ErrCount  SQId   CmdId  Status  PELoc          LBA  NSID    VS  Message
  0       1180     1  0x33e1  0x4502  0x000    826830178     1     -  Unrecovered Read Error
  1       1179    12  0x924d  0xc502  0x000   1536005282     1     -  Unrecovered Read Error
  2       1178    12  0x024c  0xc502  0x000   1536005282     1     -  Unrecovered Read Error
  3       1177     7  0x2187  0x4502  0x000   1536005282     1     -  Unrecovered Read Error
  4       1176    12  0x724b  0x4502  0x000   1417094690     1     -  Unrecovered Read Error
  5       1175     1  0x3167  0x4502  0x000   1099791128     1     -  Unrecovered Read Error
  6       1174     4  0xe343  0xc502  0x000    888097434     1     -  Unrecovered Read Error
  7       1173     4  0x3342  0xc502  0x000    888097436     1     -  Unrecovered Read Error
  8       1172     4  0x5341  0x4502  0x000    888097434     1     -  Unrecovered Read Error
  9       1171    12  0x91ca  0xc502  0x000    888097436     1     -  Unrecovered Read Error
 10       1170    12  0xb1c9  0xc502  0x000    888097436     1     -  Unrecovered Read Error
 11       1169    11  0x81a9  0x4502  0x000    888097436     1     -  Unrecovered Read Error
 12       1168    10  0x1251  0xc502  0x000    888091288     1     -  Unrecovered Read Error
 13       1167    10  0x924f  0xc502  0x000    888091290     1     -  Unrecovered Read Error
 14       1166    10  0xb24e  0x4502  0x000    888092344     1     -  Unrecovered Read Error
 15       1165    10  0x224d  0x4502  0x000    888091320     1     -  Unrecovered Read Error
... (48 entries not read)

Self-test Log (NVMe Log 0x06)
Self-test status: No self-test in progress
Num  Test_Description  Status                       Power_on_Hours  Failing_LBA  NSID Seg SCT Code
 0   Extended          Completed without error               11644            -     -   -   -    -
 1   Extended          Completed without error               11640            -     -   -   -    -
 2   Extended          Completed: failed segments            11637    832111576     1   7   -    -
 3   Extended          Completed: failed segments            11636    742642300     1   7   -    -
 4   Short             Completed without error               11636            -     -   -   -    -

我找不到有关如何使用 SSD 的综合页面,特别是如何防止错误或处理错误,因此我的问题如下:

  • 我应该立即更换我的 SSD 吗?
  • 我得到可用备件96%?
  • 既然测试错误现在已经消失,读取整个 SSD 是否重要?一般来说,偶尔读取整个 SSD 是否有用?
  • 有多糟糕未恢复的读取错误错误信息(NVMe 日志 0x01 NVMe 日志)?(我测试的相应文件看起来没问题。)

答案1

我的理解是,通过不断读取磁盘,固件经过多次尝试后成功将所有坏扇区映射到备用扇区,因此现在没有坏扇区并且所有数据均可读取。

至于 96% 的可用备用扇区,需要进行一些数学运算:如果日志中的 64 个错误条目代表恢复的扇区,这些扇区代表 4% 的备用容量,则意味着您总共拥有 1600 个备用扇区。这意味着您仍然有 1536 个备用扇区可用。

我建议继续关注磁盘的 SMART 数据,但我认为您可以继续使用它。如果坏扇区的数量(无论是否恢复)继续增加,那么是时候更换它了。与此同时,请确保您有良好的备份,以防万一。

相关内容