Eu tenho um SSD Samsung 970 EVO que tem sido usado 24 horas por dia, 7 dias por semana, nos últimos 4,5 anos, executando o openSUSE. É meu primeiro SSD e não tenho certeza de quão bem minha experiência com HDDs se traduz em SSDs. Eu substituo os HDDs no primeiro erro, mas me pergunto se o mesmo deveria se aplicar aos SSDs.
Nunca tive nenhum problema com minha unidade e esperava que a SMART me avisasse se ela estivesse prestes a falhar. De qualquer forma, decidi fazer um teste smartctl e, para minha surpresa, encontrei um endereço que não podia ser lido:
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 - -
[...]
Após mapear o LBA para o arquivo correspondente, a tentativa de copiar o arquivo falhou, conforme esperado.
Então li todo o SSD para ter uma ideia melhor da gravidade do problema, via
dd bs=4k conv=noerror if=/dev/nvme0n1 of=/dev/null status=progress
Isto encontrou seus próprios problemas (3 ou 4 deles), que não incluíam o LBA original. Então tentei novamente copiar o primeiro arquivo impactado e agora funcionou. Aí fiz outro teste, li o SSD novamente, fiz outro teste.
Agora as coisas parecem bem, exceto que há um monte de Unrecovered Read Error
s, e não tenho certeza se algo deve ser feito a respeito.
Houve 4 arquivos afetados, nenhum dos quais é realmente importante. Para 2 deles eu tinha backups. Depois que os arquivos foram disponibilizados, fiz uma comparação e eles eram idênticos aos seus backups.
Último status:
# 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 - - - - -
Não consegui encontrar uma página abrangente sobre como usar SSDs, especialmente como evitar erros ou lidar com eles, então aqui estão minhas perguntas:
- Devo substituir meu SSD imediatamente?
- Faz diferença que eu obtenha um sobressalente disponível de 96%?
- Dado que os erros de teste desapareceram, importava que eu tivesse lido todo o SSD? Em geral, adianta ler todo o SSD de vez em quando?
- Quão ruins são os erros de leitura não recuperados nas informações de erro (Log NVMe 0x01 Log NVMe) ? (Os arquivos correspondentes que testei parecem OK.)
Meu entendimento é que, ao ler continuamente o disco, o firmware, após várias tentativas, conseguiu mapear todos os setores defeituosos para os de reposição, então agora você não tem setores defeituosos e todos os seus dados são legíveis.
Quanto aos 96% de peças sobressalentes disponíveis, um pouco de matemática: se as 64 entradas de erro no log representam setores recuperados que representam 4% da capacidade sobressalente, isso significa que você tem em todos os 1600 setores sobressalentes. Isso significa que você ainda tem 1.536 peças sobressalentes disponíveis.
Aconselho continuar prestando atenção aos dados SMART do disco, mas na minha opinião você pode continuar a usá-lo. Se o número de setores defeituosos, recuperados ou não, continuar a crescer, então será hora de substituí-los. Enquanto isso, certifique-se de ter bons backups, apenas para garantir.