Como determinar o número de ciclos de gravação ou a vida útil esperada para SSD no Linux?


10

Estamos executando um SSD (Intel X25-M) em um servidor Linux (RHEL 5) há algum tempo, mas nunca fizemos nenhum esforço para descobrir quanta carga de gravação estava sob o ano passado. Existe alguma ferramenta no Linux para nos dizer aproximadamente quanto foi gravado no disco ao longo do tempo ou (ainda melhor) quanto desgaste ele acumulou? Apenas procurando uma dica para ver se está perto da morte ou não ...

Respostas:


13

Os SSDs da Intel mantêm estatísticas sobre o total de gravações e o tempo de vida útil provável.

O seguinte é de um Intel X25-M G2 160GB (SSDSA2M160G2GC)

# smartctl -data -A /dev/sda
smartctl 5.40 2010-10-16 r3189 [x86_64-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   000    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   000    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       1
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       6855
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       68
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       30
225 Host_Writes_32MiB       0x0030   200   200   000    Old_age   Offline      -       148487
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       3168
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       1
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       1950295543
232 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   098   098   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   099    Pre-fail  Always       -       0

O valor bruto Host_Writes_32MIB mostra quantas unidades de dados de 32MiB foram gravadas nesta unidade.

O valor Media_Wearout_Indicator mostra uma porcentagem normalizada de quanto tempo de vida útil útil da unidade está. Isso começa em 100 (ou 099, eu esqueço qual) e prossegue até 001, momento em que a Intel considera que a unidade excedeu sua vida útil. A Intel também usa o MWI como parte das reivindicações de garantia - quando o MWI atinge 001, a garantia expira.

O MWI atingindo 001 não significa que o inversor falhará imediatamente! A Intel terá tolerância incorporada para lidar com variações nas unidades de flash. Vi unidades durarem muito além desse ponto e estou testando ativamente alguns SSDs da série 320 da Intel para ver quanto tempo eles duram.

No entanto, como a garantia expira quando o MWI chega a 001, eu substituiria todas as unidades nesse momento.


Para referência futura, Media_Wearout_Indicatorcomeça em 100 para o meu SSD Intel 520 Series.
Pableu

Vale a pena notar que, mesmo que a unidade não "falhe" quando atingir 001, em algum momento depois (talvez um longo caminho depois), a capacidade de algumas unidades de reter dados quando a energia é perdida diminui para períodos alarmantes de tempo . Acho que houve alguns testes de resistência publicados online que mediram isso.
Sa289

6

As unidades Corsair também exportam um indicador similar de porcentagem de vida útil restante. No caso deles, é atributo 231:

231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0

(Observe que se o smartctl estiver exibindo isso como uma temperatura, você precisará atualizar o banco de dados do dispositivo. No meu sistema Debian, isso significa execução /usr/sbin/update-smart-drivedb)

Uma postagem no blog da Corsair parece mostrar que o valor nunca fica abaixo de 10%, então presumo que ele deva ser substituído em 10%.

Também tenho uma unidade OCZ com o mesmo controlador Sandforce que também exporta o mesmo valor SSD_Life_Left.


3

O Media_Wearout_Indicator é o que você está procurando. Para 100 significa que o seu ssd tem 100% de vida útil, o número mais baixo significa menos vida útil restante.

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

Saída do meu laptop

233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0

Se você quiser ver mais detalhes e atributos completos de sua unidade, poderá executar

# smartctl -data -A /dev/sda

e a saída

# smartctl -data -A /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-49-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
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
5 Reallocated_Sector_Ct 0×0032 100 100 000 Old_age Always – 0
9 Power_On_Hours 0×0032 000 000 000 Old_age Always – 232959027031342
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 279
170 Unknown_Attribute 0×0033 100 100 010 Pre-fail Always – 0
171 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
172 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
174 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 278
184 End-to-End_Error 0×0033 100 100 090 Pre-fail Always – 0
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always – 278
225 Load_Cycle_Count 0×0032 100 100 000 Old_age Always – 10752
226 Load-in_Time 0×0032 100 100 000 Old_age Always – 65535
227 Torq-amp_Count 0×0032 100 100 000 Old_age Always – 66
228 Power-off_Retract_Count 0×0032 100 100 000 Old_age Always – 65535
232 Available_Reservd_Space 0×0033 100 100 010 Pre-fail Always – 0
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
241 Total_LBAs_Written 0×0032 100 100 000 Old_age Always – 10752
242 Total_LBAs_Read 0×0032 100 100 000 Old_age Always – 21803
249 Unknown_Attribute 0×0013 100 100 000 Pre-fail Always – 357

http://namhuy.net/1024/how-to-check-ssd-life-left.html


É útil mencionar que, nesse caso, o valor normalizado deve ser usado.
Falcon Momot

1

Na verdade não. Se a unidade não mantiver estatísticas, você não saberia ao certo. Mesmo assim, o inversor abstraía os algoritmos de nivelamento de gravação e tentava otimizar as coisas ocultas, longe das chamadas e interfaces do sistema. Em outras palavras, a unidade pode facilmente mentir para você sobre onde os dados são realmente gravados na "mídia" para que você não saiba quais células estão obtendo atividade.

Isso ainda não garante quando / se você verá falhas ou erros. A unidade pode falhar amanhã, pode falhar em três anos.

A melhor opção é mantê-lo em uma configuração RAID e ter um plano para substituí-lo quando falhar (antes da outra unidade falhar) e garantir que seus backups estejam atualizados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.