Ir ao conteúdo
  • Cadastre-se
alexandre.mbm

S.M.A.R.T.: qual é a real importância dos atributos Current_Pending_Sector e Offline_Uncorrectable?

Recommended Posts

Tenho descoberto o poder do smartmontools como solução de monitoração de um HD que começara a apresentar problemas.

 

Eis os atributos S.M.A.R.T. de um HD Maxtor que fora reparado com o SeaTools for DOS e parece estar estabilizado:

$ sudo smartctl -A /dev/sda[sudo] password for alexandre:smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-30-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===SMART Attributes Data Structure revision number: 10Vendor Specific SMART Attributes with Thresholds:ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE  1 Raw_Read_Error_Rate     0x000f   117   069   006    Pre-fail  Always       -       145772147  3 Spin_Up_Time            0x0003   095   095   000    Pre-fail  Always       -       0  4 Start_Stop_Count        0x0032   094   094   020    Old_age   Always       -       6176  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       2  7 Seek_Error_Rate         0x000f   089   060   030    Pre-fail  Always       -       888483419  9 Power_On_Hours          0x0032   075   075   000    Old_age   Always       -       22652 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0 12 Power_Cycle_Count       0x0032   094   094   020    Old_age   Always       -       6224187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       1751189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0190 Airflow_Temperature_Cel 0x0022   059   046   045    Old_age   Always       -       41 (Min/Max 32/41)194 Temperature_Celsius     0x0022   041   054   000    Old_age   Always       -       41 (0 23 0 0 0)195 Hardware_ECC_Recovered  0x001a   049   040   000    Old_age   Always       -       5738209197 Current_Pending_Sector  0x0012   045   043   000    Old_age   Always       -       1135198 Offline_Uncorrectable   0x0010   045   043   000    Old_age   Offline      -       1135199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       9200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0202 Data_Address_Mark_Errs  0x0032   058   211   000    Old_age   Always       -       42

Resta-me descobrir o que pode implicar eu confiar em ficar com esses valores Current_Pending_Sector e Offline_Uncorrectable. Para isso, vou contar-lhes a história do que tem acontecido com o disco rígido em questão.

 

História desse disco rígido

 

O disco está partido com dual boot: Windows Vista + Ubuntu. Uma partição NTFS para Windows, três partições para o GNU/Linux: /, /home e swap. Mais alguns espaços vazios. Raramente era dado boot no Windows; coisa de até trimestres, talvez. O que me faz pensar que a mecânica do dispositivo pode ter adquirido vícios ou "faltas de mobilidade".

 

O caso é que o sistema Ubuntu 12.04.4 LTS começara a ser excessivamente instável. Certamente, arquivos corrompidos. Executáveis. Relatórios de erro começaram a reclamar-me do hardware. As duas partições Linux estavam sofrendo de badblocks não remapeados. O atributo S.M.A.R.T. Reallocated_Sector_Ct era ZERO (0).

 

Eu até me animei a aprender as ferramentas de administração disponíveis (fsck, tune2fs, smartcl, dd, badblocks) e, quem sabe, isolar os badblocks sem necessidade de formatação. Mas desisti. O correto era seguir o conselho uníssono: fazer backup realizar procedimentos de reparação mais destrutivos. Foi o que fiz. De memória, tento registrar abaixo:

 

1) O teste curto do SeaTools for DOS falhou e o programa sugeriu o teste longo.

 

2) O teste longo do SeaTools for DOS disse ter feito várias reparações. Foi um bocado. Tudo apresentando-se como tranquilamente reparado. Certamente foi a partir desse momento que o dispositivo ganhou o status de OK nos diagnósticos S.M.A.R.T.

 

Certamente, tais reparações foram destrutivas de dados nas partições que ainda existiam. Por descuido, não ter atentado para a questão, depois delas eu tentei utilizar o sistema antigo, como veremos adiante.

 

3) Antes de reiniciar no Ubuntu, o teste curto foi executado pelo menos uma segunda vez e PASSOU. Então eu fiz a besteira de ir usar o Ubuntu. Ele pode ter lido coisa que não era para ler... e o que eu sei é, no smartctl eu percebi os problemas não estavam sanados ou mesmo estabilizados.

 

O badblocks não destrutivo ainda tinha retorno para cada partição Linux.

 

Quanto à partição NTFS, o que posso dizer é no passado o CHKDSK já fazia correções. Eu achava que era o ntfs3g em modo escrita corrompendo o a partição ou "resetando" algo do trabalho do CHKDSK.

 

4) SeaTools for DOS (que eu me lembre) fez o teste curto OK. Mas o teste longo não foi adiante. Estranhamente — e para meu susto! — o comportamento foi como se a placa de vídeo tivesse defeito: o programa congelava e a tela ganhava sujos coloridos permanentes.

 

5) Fiz o "apagamento completo" da unidade, com o SeaTools for DOS.

 

6) Usando Ubuntu a partir de um pendrive, o badblocks não destrutivo PASSOU. O apagamento fizera efeito. Parece tinha sido com ele que Reallocated_Sector_Ct passara de 0 para 2.

 

Por via das dúvidas eu fiz um dd escrevendo /dev/zero em /dev/sda. E depois fiz lendo /dev/sda para /dev/null. Acho que foi isso que eu fiz. Sem mais parâmetros. Não lembro.

 

Tenho a impressão de que Reallocated_Sector_Ct recebeu o novo valor exatamente quando Current_Pending_Sector e Offline_Uncorrectable desceram de 1140 para 1135. Também não tenho certeza disso. Em todo caso, os valores desses três atributos S.M.A.R.T. sempre tem estado muito estranhos. Vejam só: o SeaTools for DOS fez pra lá de 50 reparações, o badblocks reclamava pra lá de 10 blocos ruins numa partição, e pra lá de 15 em outra, e hoje, com somente duas realocações, o disco tem se comportamento como "sadio" (à exceção dos atributos S.M.A.R.T. que permanecem com valores indesejados). Eu tenho uma teoria a respeito disso. No final dessa postagem, eu a exponho.

 

7) Um badblocks destrutivo PASSOU seus quatro padrões, sem qualquer erro!

 

Então eu decidi particionar e estou usando o Ubuntu 14.04 LTS! Só tem ele agora. Faz mais de 24 horas. O S.M.A.R.T mantém-se estável com os valores indesejados acima. Na prática, é como se o disco não tivesse problemas.

 

Para dar um pouco mais de segurança, coloquei o /home como btrfs. Para o / fui mais tradicional e escolhi ext4.

 

Solicitação ao leitor

 

Tenho aprendido o smartmontools e quero configurá-lo como se estivesse monitorando um servidor. Quem tiver dica ou mini-tutorial sobre isso, por favor, fique à vontade. Prefiro receber os e-mails de notificação a ter alertas ou notificações na Área de Trabalho. Depois eu compartilharei algumas hiperligações interessantes, aqui, sobre isso.

 

Questões

 

A propósito, qual será a real importância, no meu caso, dos atributos S.M.A.R.T. Current_Pending_Sector e Offline_Uncorrectable?

 

Eles seriam contadores que não necessariamente representam uma quantidade real?

 

Acho que li em algum lugar que setores (blocos?) não remapeados fariam esses atributos, em determinadas situações, serem incrementados indefinidamente até que houvesse a devida realocação. Talvez na seguinte situação: o setor ruim é remapeado para um setor spare que também é ruim, com impossibilidade de um segundo remapeamento.

 

Talvez Current_Pending_Sector e Offline_Uncorrectable sejam hoje, nesse estado em que o dispositivo está, apenas setores "invalidados" (que nunca mais serão buscados para leitura ou gravação), pela quantidade de setores ruins ter sido superior à quantidade de setores reserva.

 

O que acham?

 

Antes que alguém pergunte: não há atualização de firmware para este modelo de HDD. Fui pesquisar isso como um possível caminho para ter Current_Pending_Sector e Offline_Uncorrectable zerados novamente.

 

@Henrique - RJ, por favor, dê uma olhada nisso. Eu li uma postagem sua que fez parecer que você conhece significados práticos desses atributos S.M.A.R.T.

 

Acho que posso concluir o seguinte...

 

Eu não estou compreendendo tudo que está acontecendo com o HD. O que posso dizer é que o funcionamento prático dele está aparentemente normal.
 
A ferramenta da Seagate/Maxtor disse ter feito umas 50 reparações. Para além disso, eu sobrescrevi ele completamente algumas vezes. Apagamento completo.
 
Os relatórios de auto-diagnóstico apontam somente 2 realocamentos de setor.
 
Os mesmos relatórios "contam" aqueles mais de 1000 setores ou blocos ilegíveis. Mas isso está até parecendo apenas fazer parte de um "histórico de ocorrências" que não pode ser apagado.
 
Uma varredura por blocos defeituosos não reclama mais qualquer bloco.
 
Parece razoável considerar que os relatórios de auto-diagnóstico tem contadores de ocorrências que não podem ser reiniciados, e que na verdade o disco teve apenas 2 setores defeituosos que foram devidamente "isolados" e agora estão devidamente esquecidos pela controladora.
 
Sendo assim, o dispositivo está em estado ideal. O limite de setores ruins proposto pelo fabricante é 36. É normal ter 2 setores defeituosos. Todo o alarme se deu porque eles não estavam sendo realocados (remapeados) quando deveriam ser. Por certo é isso...
 

A maior quantidade de blocos ruins que fora detectada antes, por algumas varreduras, por certo era uma cadeia de falsos positivos dentro de um sistema de arquivos corrompido. O apagamento completo reiniciou a gravação em toda a superfície do disco e isso deve ter reduzido o escopo para a detecção acertada do que realmente estava defeituoso na superfície do disco.

 

Update

 

Vou monitorá-lo diariamente, com o smartmontools, e logo corrigir manualmente o que aparecer. Uma coisa eu sei: provavelmente o BTRFS vai garantir dados íntegros no /home. Dados que por desventura se corrompam no EXT4 do / poderão ser "reinstalados" em outros setores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz tudo que sei é fruto de experimentos pessoais sem embasamento técnico profissional especializado.

 

Aliás é o que costuma ser nos fóruns da área de TI.

 

Muita pesquisa, leitura e testes.

 

Um hobby

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, quanto ao "pending sector" são setores que o firmware do HD detectou com dificuldade de leitura/gravação e que estão em fase de testes para avaliar se serão realocados ou não.

 

Quanto ao "offline" acho que possa ser algum erro ou dificuldade nos testes com os setores pendentes quando fora do sistema operacional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Henrique - RJ, o que escrevi em "Acho que posso concluir o seguinte..." faz sentido?
 
Update
 
Está confirmado. Eu consegui interpretar as flags tal como fazem Ashampoo HDD Control 2, DriveSitter ou HDD Guardian, e atestar que Current_Pending_Sector e Offline_Uncorrectable são contadores de eventos.

$ ./parse-flags.sh  1 Raw_Read_Error_Rate     WOPE__   117   069   006    Pre-fail  Always       -       145772147  3 Spin_Up_Time            WO____   095   095   000    Pre-fail  Always       -       0  4 Start_Stop_Count        _O__CS   094   094   020    Old_age   Always       -       6176  5 Reallocated_Sector_Ct   WO__CS   100   100   036    Pre-fail  Always       -       2  7 Seek_Error_Rate         WOPE__   089   060   030    Pre-fail  Always       -       888767487  9 Power_On_Hours          _O__CS   075   075   000    Old_age   Always       -       22665 10 Spin_Retry_Count        WO__C_   100   100   097    Pre-fail  Always       -       0 12 Power_Cycle_Count       _O__CS   094   094   020    Old_age   Always       -       6224187 Reported_Uncorrect      _O__CS   001   001   000    Old_age   Always       -       1751189 High_Fly_Writes         _O_ECS   100   100   000    Old_age   Always       -       0190 Airflow_Temperature_Cel _O___S   061   046   045    Old_age   Always       -       39 (Min/Max 32/44)194 Temperature_Celsius     _O___S   039   054   000    Old_age   Always       -       39 (0 23 0 0 0)195 Hardware_ECC_Recovered  _O_EC_   047   040   000    Old_age   Always       -       182875568197 Current_Pending_Sector  _O__C_   045   043   000    Old_age   Always       -       1135198 Offline_Uncorrectable   ____C_   045   043   000    Old_age   Offline      -       1135199 UDMA_CRC_Error_Count    _OPECS   200   200   000    Old_age   Always       -       9200 Multi_Zone_Error_Rate   ______   100   253   000    Old_age   Offline      -       0202 Data_Address_Mark_Errs  _O__CS   058   211   000    Old_age   Always       -       42 W = PRE_FAILURE_WARRANTY O = ON_LINE_COLLECTION P = PERFORMANCE_ATTRIBUTE E = ERROR_RATE_ATTRIBUTE C = EVENT_COUNT_ATTRIBUTE S = SELF_PRESERVING_ATTRIBUTE

Resumindo:

Posso assumir que eles estão contando vários falsos positivos que são passado. O disco foi de fato reparado pelo SeaTools for DOS e somente 2 setores estavam de fato ruins na superfície do disco. Várias gravações¹ e leituras² realizados sem erros por todo o disco, após a reparação seguida de apagamento completo, corroboram essa tese.
 

1 ‒ apagamentos/destruições completas, com padrões diferentes de ZERO

2 ‒ verificando com sucesso os padrões recentemente gravados

 
Update 2
 
Já existia o comando interpretando as flags, mas usando outra legenda:

$ sudo smartctl -A -f brief /dev/sda[sudo] password for alexandre:smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-30-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===SMART Attributes Data Structure revision number: 10Vendor Specific SMART Attributes with Thresholds:ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE  1 Raw_Read_Error_Rate     POSR--   117   069   006    -    145772147  3 Spin_Up_Time            PO----   095   095   000    -    0  4 Start_Stop_Count        -O--CK   094   094   020    -    6176  5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    2  7 Seek_Error_Rate         POSR--   089   060   030    -    888779186  9 Power_On_Hours          -O--CK   075   075   000    -    22666 10 Spin_Retry_Count        PO--C-   100   100   097    -    0 12 Power_Cycle_Count       -O--CK   094   094   020    -    6224187 Reported_Uncorrect      -O--CK   001   001   000    -    1751189 High_Fly_Writes         -O-RCK   100   100   000    -    0190 Airflow_Temperature_Cel -O---K   061   046   045    -    39 (Min/Max 32/44)194 Temperature_Celsius     -O---K   039   054   000    -    39 (0 23 0 0 0)195 Hardware_ECC_Recovered  -O-RC-   047   040   000    -    184184229197 Current_Pending_Sector  -O--C-   045   043   000    -    1135198 Offline_Uncorrectable   ----C-   045   043   000    -    1135199 UDMA_CRC_Error_Count    -OSRCK   200   200   000    -    9200 Multi_Zone_Error_Rate   ------   100   253   000    -    0202 Data_Address_Mark_Errs  -O--CK   058   211   000    -    42                            ||||||_ K auto-keep                            |||||__ C event count                            ||||___ R error rate                            |||____ S speed/performance                            ||_____ O updated online                            |______ P prefailure warning

Descobri ao ler próximo da linha 1020 do ataprint.cpp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já não afirmaria com tanta certeza que foram remapeados apenas 2 setores.

 

Aparentemente foi pouca coisa remapeada pois a coluna "value" continua em 100 ( não diminuiu ).

 

Você pode tentar obter uma previsão de como poderá ficar o disco no futuro executando o comando scan no gratuito MHDD com suas configurações em OFF que ele te mostrará faixas de demora de leitura indo de 3 a 500 milessegundos. Os setores que ficarem mais próximos de 500 ms serão os mais propensos a defeito.

 

No HD que uso ( WD IDE de 80GB ) obtive os seguintes resultados após meia hora de escaneamento:

 

< 3ms = 443526

< 10ms = 169414

< 50ms = 8

< 150ms = 0

< 500ms = 0

> 500ms = 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente foi pouca coisa remapeada pois a coluna "value" continua em 100 ( não diminuiu ).

 

O que exatamente significa a coluna VALUE? E as demais colunas?

 

Andei lendo sobre o que poderia significar cada uma dessas colunas, e percebi que os fabricantes não obedecem a um padrão. Existem algoritmos, de cada um deles, para determinar a "saúde" do dispositivo segundo o RAW_VALUE do atributo em função (matemática) do THRESH.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu entender o fabricante do teu HD deu a alguns itens do SMART o valor máximo de 100 e a outros itens outros valores máximos diferentes que, com o uso, podem vir a diminuir e ou a se superar.

 

Quando certos itens têm seu valor máximo diminuído indica que está havendo degradação do mesmo podendo ficar abaixo do limite mínimo, coluna "Threshold", ( limite ) considerado normal.

 

Certos itens podem ter seu valor ( coluna " value ") máximo superado indicando melhora no mesmo.

 

Quanto mais os dados brutos ( coluna "raw " ) sobem a tendência para certos itens é de que está havendo degradação do mesmo e se diminui há melhora.

 

Essas conclusões eu cheguei após muita observação dos diversos SMARTs de HDs diferentes com o passar do tempo.

 

Como o HD de meu PC foi comprado usado com mais de 3 anos, eu o monitoro com um programinha gratuito da empresa russa ACE Lab chamado SMART Vision ( Windows ) que mostra as variações nas colunas "value", "worst" (pior situação a que chegou ) e "raw".

 

A coluna, "raw value", é a mais sensível e por isso mais importante para avaliar como o HD está indo.

 

Mas o SMART dos HDs pode também não ter sensibilidade para certos defeitos e não acusar absolutamente nada em um disco comprometido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelos esclarecimentos. Levarei tudo em consideração, mesmo que você não dê certeza de algumas coisas. Para quem se interessou pelo S.M.A.R.T. Vision Utility:
 
Download e vídeo demonstrativo
 


 
Site da ACEL Labs
 
Outro software que talvez faça a mesma coisa (estimativas) é o Ashampoo HDD Control 2:
smart_5.zoom80.jpg
Ele também mostra as flags, mas como caracteres. O HDD Guardian as mostra de maneira mais elegante, além de também ter um gráfico em barras para THREST, VALUE e WORST:
 
advanced-smart_attributes_with_info.png

Se eu fosse usar um monitorador gráfico em Windows, talvez eu usasse esse.

 

Update

 

A prova de que são contadores de eventos:

$ dmesg | grep -i -E '([Ii]\/[Oo] error)' | sed 's/^\[[\.0-9 ]*\] //g' | uniqend_request: I/O error, dev sda, sector 70947100$ Git/smart-flags/with-offset.sh  5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    0190 Airflow_Temperature_Cel -O---K   058   046   045    -    42 (Min/Max 28/42)197 Current_Pending_Sector  -O--C-   041   041   000    -    86198 Offline_Uncorrectable   ----C-   041   041   000    -    86                            ||||||_ K auto-keep                            |||||__ C event count                            ||||___ R error rate                            |||____ S speed/performance                            ||_____ O updated online                            |______ P prefailure warning$ dmesg | grep -i -E '([Ii]\/[Oo] error)' | sed 's/^\[[\.0-9 ]*\] //g' | uniqend_request: I/O error, dev sda, sector 70947100$ dmesg | grep -i -E '([Ii]\/[Oo] error)' | sed 's/^\[[\.0-9 ]*\] //g' | uniqend_request: I/O error, dev sda, sector 70947100$ Git/smart-flags/with-offset.sh  5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    0190 Airflow_Temperature_Cel -O---K   058   046   045    -    42 (Min/Max 28/42)197 Current_Pending_Sector  -O--C-   040   040   000    -    94198 Offline_Uncorrectable   ----C-   040   040   000    -    94                            ||||||_ K auto-keep                            |||||__ C event count                            ||||___ R error rate                            |||____ S speed/performance                            ||_____ O updated online                            |______ P prefailure warning

Os valores aumentam mas o setor ruim que está sendo acessado é o mesmo.

 

Os valores são mais baixos do que aqueles inicialmente divulgados porque o script with-offset.sh, como o próprio nome diz, trabalha com offsets.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×