Como usar o smartctl na prática?

2

Eu estava usando casualmente smartctl para espiar meus discos sem realmente mergulhar. Depois de ler um comentário no Hacker News Eu decidi programar diariamente testes longos e curtos semanais.

Como realmente fazer bom uso deles?

Quando vejo os resultados de smartctl -a /dev/sda , vejo muitas informações que não são imediatamente óbvias:

# smartctl -a /dev/sda
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Crucial/Micron MX100/MX200/M5x0/M600 Client SSDs
Device Model:     Crucial_CT500MX200SSD4
Serial Number:    160311862C1C
LU WWN Device Id: 5 00a075 111862c1c
Firmware Version: MU03
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Form Factor:      < 1.8 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3 T13/2161-D revision 4
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Mon Sep  3 10:49:49 2018 CEST
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:  (0x80) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Enabled.
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:                ( 1271) 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:        (   2) minutes.
Extended self-test routine
recommended polling time:        (   7) minutes.
Conveyance self-test routine
recommended polling time:        (   3) minutes.
SCT capabilities:              (0x0035) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       0
  5 Reallocate_NAND_Blk_Cnt 0x0032   100   100   010    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       16446
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       44
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Ave_Block-Erase_Count   0x0032   094   094   000    Old_age   Always       -       139
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       29
180 Unused_Reserve_NAND_Blk 0x0033   000   000   000    Pre-fail  Always       -       5548
183 SATA_Interfac_Downshift 0x0032   100   100   000    Old_age   Always       -       0
184 Error_Correction_Count  0x0032   100   100   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   058   049   000    Old_age   Always       -       42 (Min/Max 23/51)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
202 Percent_Lifetime_Used   0x0030   094   094   001    Old_age   Offline      -       6
206 Write_Error_Rate        0x000e   100   100   000    Old_age   Always       -       0
210 Success_RAIN_Recov_Cnt  0x0032   100   100   000    Old_age   Always       -       0
246 Total_Host_Sector_Write 0x0032   100   100   000    Old_age   Always       -       15420692355
247 Host_Program_Page_Count 0x0032   100   100   000    Old_age   Always       -       481912759
248 Bckgnd_Program_Page_Cnt 0x0032   100   100   000    Old_age   Always       -       1753257160

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     16446         -
# 2  Short offline       Completed without error       00%     10532         -
# 3  Short offline       Completed without error       00%      8040         -
# 4  Vendor (0xff)       Completed without error       00%      3608         -
# 5  Vendor (0xff)       Completed without error       00%       597         -
# 6  Vendor (0xff)       Completed without error       00%       585         -
# 7  Vendor (0xff)       Completed without error       00%       520         -
# 8  Vendor (0xff)       Completed without error       00%       161         -
# 9  Vendor (0xff)       Completed without error       00%        98         -
#10  Vendor (0xff)       Completed without error       00%        65         -

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  Completed [00% left] (57881389-57946924)
    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.

Especificamente, não há indicação clara de

  • erros
  • histórico de testes

Além de executar um smartctl -a /dev/sdX de tempos em tempos e esperar reconhecer quaisquer eventos incomuns, existe uma prática recomendada para análise?

    
por WoJ 03.09.2018 / 10:59

2 respostas

4

Se você configurou smartmontools para que ele possa enviar um e-mail para você, você receberá um e-mail se algum dia encontrar um problema.

Além disso, os erros e registros ficam visíveis na saída de smartctl . Eu tenho a tendência de olhar primeiro para o campo “Offline_Uncorrectable”, pois diferente de zero significa que há defeitos no meio que o drive não pode fazer nada (no seu caso, com um SSD, isso geralmente significa que o drive rodou sem flash de substituição para células que morreram). Outros atributos indicam erros de leitura ou gravação, mas seu significado pode depender da causa do erro.

Erros de unidade também são registrados no log de erros:

SMART Error Log Version: 1
No Errors Logged

e teste os resultados no log de teste:

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     16446         -
# 2  Short offline       Completed without error       00%     10532         -
# 3  Short offline       Completed without error       00%      8040         -
# 4  Vendor (0xff)       Completed without error       00%      3608         -
# 5  Vendor (0xff)       Completed without error       00%       597         -
# 6  Vendor (0xff)       Completed without error       00%       585         -
# 7  Vendor (0xff)       Completed without error       00%       520         -
# 8  Vendor (0xff)       Completed without error       00%       161         -
# 9  Vendor (0xff)       Completed without error       00%        98         -
#10  Vendor (0xff)       Completed without error       00%        65         -

Aqui, você deseja realizar testes marcados como "Concluído sem erro", com um campo de tempo de vida que não está muito longe da vida útil atual do inversor (dependendo do cronograma de testes). No seu caso, o tempo de vida da unidade é de 16446 horas e você tem um teste que acabou de ser concluído. Você também deseja ver testes off-line estendidos regularmente, pois é quando certos atributos são atualizados ( por exemplo, offline incorrigíveis).

Eu costumo usar smartctl -x em vez de smartctl -a , isso mostra ainda mais informações.

    
por 03.09.2018 / 11:10
1

A tecnologia inteligente começou em discos magnéticos há cerca de doze anos, registrando internamente os possíveis problemas na superfície. Você está usando o disco SSD que é baseado em uma tecnologia bastante diferente (conhecida como ROM Programável Erasable Electricaly). Os dados são escritos em blocos chamados setores no disco magnético enquanto no SSD os dados são escritos em blocos maiores e antes do bloco ser escrito (de fato programado) ele deve ser apagado. Apagar o bloco causa o pequeno dano aos elementos de bloco e, portanto, o firmware tenta espalhar as gravações (= apagamentos = danos) em todos os blocos porque a quantidade de wirites no mesmo bloco é limitada (SLC cerca de 100.000 vezes, MLC sobre 5000 vezes, TLC cerca de 300 apenas tempo).

Bem, os erros relatados com o smartctl têm outro significado para ambas as tecnologias básicas. No disco magnético, você precisa verificar o Current_Pending_Sector que indica os dados incorretos (ilegíveis) ( ID 197 ) e Reallocated_sector_count ( ID 5 ) que indicam a superfície magnética ruim e também o ID 194 Temperature_Celsius . Enquanto no SSD, o ID 5 é renomeado para Reallocate_NAND_Blk_Cnt , o que mostra o número de blocos fora do tempo de vida.

Em ambos os casos, a simples existência de alguns blocos (setores) ruins não significa necessariamente que o disco esteja fora. O problema pode ser quando muitos blocos defeituosos aparecem de repente ou se o número deles cresce dia a dia.

O tempo de vida do disco magnético pode ser estendido com a escolha cuidadosa de uma boa marca e tipo para o uso supostamente (servidor 24x7, desktop, videorecorder) e suportando-o tão bem quanto possível (ventilador para diminuir a temperatura, suficiente de poder, estritamente horizontal ou posição vertical).

O tempo de vida do disco SSD pode ser estendido com a escolha do SLC (mais lento, mas melhor) - hoje você pode comprar apenas o MLC, mas mesmo esses podem ter mais tempo de vida do que o TLC. E faça qualquer restrição possível de gravações desnecessárias. Então você tem que sair da troca (pagefile.sys) para um disco magnético como o diretório do usuário (casas) e arquivos de log. No linux você pode adicionar extra as opções de montagem noyime, nodiratime. E muitas vezes fazem backups! Verificar o smart regularmente pode ser útil, mas não pode devolver os dados perdidos.

    
por 03.09.2018 / 13:47