Por que esta unidade SSD está falhando com setores defeituosos e era previsível?

15

Nota: esta pergunta foi encerrada anteriormente como off-topic. Você pode ler a discussão . Minhas razões para perguntar aqui são:

  • Esta unidade está em um servidor de cache de conteúdo offline para escolas na zona rural da Zâmbia.
  • Os servidores são criados a partir de imagens de disco e todo o conteúdo é substituível.
  • Tem que ser barato, porque as escolas da Zâmbia têm orçamento limitado e haverá muitas delas.
  • Ele também deve ser confiável, pois pode demorar 8 horas em qualquer estrada para substituir.
  • Não tenho permissão para perguntar aqui o que as unidades não são "lixo barato".
  • Então, estamos fazendo nossa própria pesquisa e experimentação em unidades que atendem a esses critérios.
  • Minha incapacidade de reparar os setores defeituosos substituindo-os (realocação automática) desafiava minhas suposições e eu queria saber o porquê.
  • Eu pensei que talvez uma SEGURANÇA ERASE pudesse consertar os setores defeituosos, mas queria opiniões de outras pessoas antes de eu estragar a unidade.
  • Eu pensei que poderia ter perdido algo nos dados SMART que poderia ter previsto a falha.

Este é um disco SSD Kingston de 240 GB que funcionou bem no local por cerca de 3 meses e, de repente, desenvolveu setores defeituosos:

smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.20-net6501-121115-1cw] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     KINGSTON SVP200S3240G
Serial Number:    50026B7228010E5C
LU WWN Device Id: 5 0026b7 228010e5c
Firmware Version: 502ABBF0
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ACS-2 revision 3
Local Time is:    Tue Mar  5 17:10:24 2013 CAT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

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

General SMART Values:
Offline data collection status:  (0x02) Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  48) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x0021) SCT Status supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   084   084   050    Pre-fail  Always       -       10965286670575
  5 Reallocated_Sector_Ct   0x0033   100   100   003    Pre-fail  Always       -       16
  9 Power_On_Hours          0x0032   000   000   000    Old_age   Always       -       46823733462185
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       127
171 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       0
174 Unknown_Attribute       0x0030   000   000   000    Old_age   Offline      -       131
177 Wear_Leveling_Count     0x0000   000   000   000    Old_age   Offline      -       1
181 Program_Fail_Cnt_Total  0x0032   000   000   000    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   000   000   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   000   000   000    Old_age   Always       -       49900
194 Temperature_Celsius     0x0022   033   078   000    Old_age   Always       -       33 (Min/Max 21/78)
195 Hardware_ECC_Recovered  0x001c   120   120   000    Old_age   Offline      -       235163887
196 Reallocated_Event_Count 0x0033   100   100   003    Pre-fail  Always       -       16
201 Soft_Read_Error_Rate    0x001c   120   120   000    Old_age   Offline      -       235163887
204 Soft_ECC_Correction     0x001c   120   120   000    Old_age   Offline      -       235163887
230 Head_Amplitude          0x0013   100   100   000    Pre-fail  Always       -       100
231 Temperature_Celsius     0x0013   100   100   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0000   000   000   000    Old_age   Offline      -       363
234 Unknown_Attribute       0x0032   000   000   000    Old_age   Always       -       208
241 Total_LBAs_Written      0x0032   000   000   000    Old_age   Always       -       208
242 Total_LBAs_Read         0x0032   000   000   000    Old_age   Always       -       1001

SMART Error Log not supported
SMART Self-test Log not supported
SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Agora, recebo blocos defeituosos em determinados lugares do disco:

root@iPad2:~# badblocks /dev/sda -v
Checking blocks 0 to 234431063
Checking for bad blocks (read-only test): 8394752 done, 1:15 elapsed
8394756 done, 1:21 elapsed
8394757 done, 1:23 elapsed
8394758 done, 1:24 elapsed
8394759 done, 1:27 elapsed
...
190882871one, 29:49 elapsed
190882888one, 29:53 elapsed
190882889one, 29:54 elapsed
190882890one, 29:56 elapsed
190882891one, 29:58 elapsed
done                                
Pass completed, 80 bad blocks found.

Eles parecem repetíveis e a realocação automática falha, portanto não podem ser corrigidos escrevendo neles:

root@iPad2:~# badblocks /dev/sda -wvf 8394756 8394756
/dev/sda is apparently in use by the system; badblocks forced anyway.
Checking for bad blocks in read-write mode
From block 8394756 to 8394756
Testing with pattern 0xaa: 8394756
done                                
Reading and comparing: done                                
Testing with pattern 0x55: done                                
Reading and comparing: done                                
Testing with pattern 0xff: done                                
Reading and comparing: done                                
Testing with pattern 0x00: done                                
Reading and comparing: done                                
Pass completed, 1 bad blocks found.

E eu recebo erros como este nos logs do sistema:

ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
ata1.00: irq_stat 0x40000000
ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:00:08:30:00/00:00:01:00:00/40 tag 0 ncq 4096 in
         res 51/40:08:08:30:00/00:00:01:00:00/40 Emask 0x409 (media error) <F>
ata1.00: status: { DRDY ERR }
ata1.00: error: { UNC }
ata1.00: configured for UDMA/133
sd 0:0:0:0: [sda] Unhandled sense code
sd 0:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:0:0: [sda]  Sense Key : Medium Error [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
        72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
        01 00 30 08 
sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
sd 0:0:0:0: [sda] CDB: Read(10): 28 00 01 00 30 08 00 00 08 00
end_request: I/O error, dev sda, sector 16789512
Buffer I/O error on device sda, logical block 2098689
ata1: EH complete

Agora não entendo por que a realocação automática está falhando neste disco. A smartctlsaída parece boa para mim. Apenas 16 setores foram realocados, não são muitos. Não vejo nenhuma razão legítima para que essa unidade se recuse a realocar setores. Esse modelo de SSD está quebrado ou mal projetado?

Notas:

  • O atributo 174 é "Perda inesperada de energia", de acordo com os documentos da Kingston.
  • 131 perdas de energia inesperadas são bastante ruins.
  • atributo 187 (Reported_Uncorrect) é 49900 de um máximo possível de 65535
  • a temperatura mais alta de todos os tempos é bastante alta a 78 ° C

Os contadores SMART mais interessantes estão ocultos pela Kingston nesta unidade. Mas podemos inferir o número de setores sobressalentes a partir do atributo 196. Reallocated_Event_Count, que possui a seguinte fórmula para o valor normalizado:

100 -(100* RBC / MRC)
RBC = Retired Block Count (Grown)
MRE = Maximum reallocation count

Como o valor normalizado é 100, isso implica que RBC << MRE, portanto não estamos nem perto de esgotar todos os setores disponíveis para realocação.

qris
fonte
3
Seus dados SMART não indicam problemas significativos. Você testou este disco em um controlador diferente com um cabo diferente para eliminar as outras possibilidades de problemas de hardware?
Michael Hampton
1
Ainda não tentei outro controlador / cabo, porque alguns setores lêem bem repetidamente e outros cometem erros repetidamente. Deduzo disso que a falha está na unidade, não no controlador ou no cabo.
QRIS
1
Sua dedução está errada porque exatamente o mesmo poderia acontecer com um cabo ou controlador defeituoso (embora o cabo deva ser um pouco mais irregular, mas vale a pena tentar mesmo assim).
precisa saber é
3
@gparent A dedução não está necessariamente errada; apenas a lógica que trouxe a conclusão. O impulso pode muito bem ser o culpado, mas suas razões para pensar assim têm pouca base. Em qualquer caso, ele deve testar em outro controlador / cabo, conforme sugerido.
Chris S
Sim, foi o que pensei que tinha acabado de dizer. Acho que você pode considerar com segurança quaisquer diferenças como parte de uma barreira do idioma, porque estou de acordo com seu comentário.
gparent

Respostas:

2

SSDs baratos parecem ter sérios problemas de qualidade. Você encontrará muitos usuários que têm problemas com sua unidade específica. No entanto, acho que os fornecedores também vendem unidades diferentes (por exemplo, com outros chips / controladores NAND) sob o mesmo rótulo. Portanto, cada unidade pode se comportar de maneira diferente.

Os valores SMART não dão indicação de que a unidade falhará em breve. Na minha experiência, é o mesmo: De repente, ocorrem erros na unidade e o disco falha.

Quais são as suas razões pelas quais você usa SSDs? Vejo as vantagens dos SSDs, pois não há peças mecânicas, elas são à prova de poeira e produzem menos calor. No entanto, também vejo muitas desvantagens.

por exemplo, o número de gravações em uma única célula de memória que, mesmo com o nível de desgaste, pode ser alcançado rapidamente em um volume ocupado, por exemplo, quando você estiver usando um sistema de arquivos com registro no diário.

E a eletrônica também é afetada por alta umidade ou altas temperaturas - o mesmo que com os discos rígidos convencionais.

Por que não usar discos rígidos convencionais mais baratos e (se a invasão não for necessária) forneça ao servidor unidades sobressalentes que não serão conectadas até que sejam necessárias como uma substituição (já presente no gabinete do servidor ou montada em um compartimento hot-swap, para que o disco pode ser usado em diferentes servidores). Eles poderiam ser preparados por um script no campo ou remotamente (se possível).

Desde que os discos rígidos convencionais não sejam energizados, o transporte para seu destino pode ser difícil ...

Se houver vários servidores escolares / clientes permanentes e uma rede confiável / redundante, talvez um sistema de arquivos distribuído também possa ajudar a criar um servidor de cache à prova de falhas (por exemplo, usando glusterfs).

Reiner Rottmann
fonte
Obrigado Brian, estou aceitando esta resposta, pois não tenho melhores. Minha experiência com discos rígidos é que setores podem ser realocados e, portanto, a recuperação é possível. Você está certo sobre os motivos do uso de SSDs. A prova de poeira é um grande problema para a Zâmbia. As unidades não serão gravadas frequentemente, a maior parte do conteúdo é estática. Os eletrônicos de estado sólido são menos afetados pelo calor e pela umidade do que a ferrugem. Ocorreram RAID em discos rígidos, mas esperávamos que os SSDs fossem mais confiáveis ​​e economizassem dinheiro. Talvez estivéssemos errados. E as escolas têm muito pouca conectividade, então o glusterfs está fora.
Q9 #