Antes de tudo, acho que todo mundo sabe que os discos rígidos falham muito mais do que os fabricantes gostariam de admitir . O Google fez um estudo que indica que determinados atributos de dados brutos que o status SMART dos relatórios de discos rígidos podem ter uma forte correlação com a falha futura da unidade.
Concluímos, por exemplo, que após o primeiro erro de verificação, as unidades têm 39 vezes mais chances de falhar em 60 dias do que as unidades sem esses erros. Os primeiros erros nas realocações, realocações offline e contagens probacionais também estão fortemente correlacionados a probabilidades de falha mais altas. Apesar dessas fortes correlações, descobrimos que os modelos de previsão de falhas baseados apenas nos parâmetros SMART provavelmente são severamente limitados em sua precisão de previsão, uma vez que uma grande fração de nossas unidades com falha não mostrou nenhum sinal de erro SMART.
A Seagate parece estar tentando ocultar essas informações sobre suas unidades, alegando que apenas o software pode determinar com precisão o status exato da unidade e a maneira como o software não informa os valores brutos dos atributos SMART. A Western Digital não fez tal afirmação ao meu conhecimento, mas sua ferramenta de relatório de status também não parece relatar valores de dados brutos.
Eu tenho usado HDtune e smartctl da smartmontools para reunir os valores de dados brutos para cada atributo. Descobri que de fato ... estou comparando maçãs com laranjas quando se trata de certos atributos. Descobri, por exemplo, que a maioria das unidades da Seagate relatam que existem muitos milhões de erros de leitura, enquanto o western digital 99% do tempo mostra 0 para erros de leitura. Também descobri que a Seagate relatará muitos milhões de erros de busca, enquanto a Western Digital sempre parece reportar 0.
P : Como normalizo esses dados? A Seagate está produzindo milhões de erros enquanto a Western Digital não está produzindo nenhum? O artigo da Wikipedia sobre o status SMART diz que os fabricantes têm maneiras diferentes de relatar esses dados.
Aqui está minha hipótese:
Acho que encontrei uma maneira de normalizar (esse é o termo certo?) Os dados.
As unidades da Seagate têm um atributo adicional que as unidades da Western Digital não possuem (ECC de hardware recuperado). Ao subtrair a contagem de erros de leitura da contagem recuperada do ECC, você provavelmente terminará com 0. Isso parece ser equivalente à contagem de "erros de leitura" relatada pela Western Digitals. Isso significa que a Western Digital reporta apenas erros de leitura que não podem ser corrigidos, enquanto a Seagate contabiliza todos os erros de leitura e informa quantos deles conseguiu corrigir.
Eu tinha uma unidade da Seagate em que a contagem de erros de leitura era menor que a contagem do ECC recuperado e notei que muitos dos meus arquivos estavam corrompidos. Foi assim que surgiu minha hipótese. Os milhões de erros de busca que a Seagate produz ainda são um mistério para mim.
Confirme ou corrija minha hipótese se você tiver informações adicionais.
Aqui está o status inteligente da minha unidade digital ocidental, apenas para que você possa ver do que estou falando:
james@ubuntu:~$ sudo smartctl -a /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD1001FALS-00E3A0
Serial Number: WD-WCATR0258512
Firmware Version: 05.01D05
User Capacity: 1,000,204,886,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Thu Jun 10 19:52:28 2010 PDT
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
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 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 179 175 021 Pre-fail Always - 4033
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 270
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 1468
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 262
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 46
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 223
194 Temperature_Celsius 0x0022 105 102 000 Old_age Always - 42
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
Edit: Aqui está a unidade Seagate que eu estava falando que estava causando corrupção de dados. Esses dados são do HDTune.
HD Tune: ST3250623A Health
ID Current Worst ThresholdData Status
(01) Raw Read Error Rate 45 38 6 77882492 Ok
(03) Spin Up Time 99 98 0 0 Ok
(04) Start/Stop Count 100 100 20 640 Ok
(05) Reallocated Sector Count 100 100 36 0 Ok
(07) Seek Error Rate 85 60 30 359872048 Ok
(09) Power On Hours Count 94 94 0 6028 Ok
(0A) Spin Retry Count 100 100 97 0 Ok
(0C) Power Cycle Count 100 100 20 689 Ok
(C2) Temperature 25 55 0 25 Ok
(C3) Hardware ECC Recovered 50 47 0 201555081 Ok
(C5) Current Pending Sector 100 100 0 0 Ok
(C6) Offline Uncorrectable 100 100 0 0 Ok
(C7) Ultra DMA CRC Error Count 200 199 0 1 Ok
(C8) Write Error Rate 100 253 0 0 Ok
(CA) TA Counter Increased 100 253 0 0 Ok
Power On Time : 6028
Health Status : Ok
O fato de o ECC de hardware recuperado ser maior que a taxa de erro de leitura bruta é contra-intuitivo na minha opinião.
Isso é o que eu considero uma unidade seagate "normal", onde o ECC recuperado corresponde à taxa de erro de leitura bruta:
HD Tune: ST380011A Health
ID Current Worst ThresholdData Status
(01) Raw Read Error Rate 62 46 6 79986164 Ok
(03) Spin Up Time 98 98 0 0 Ok
(04) Start/Stop Count 100 100 20 6 Ok
(05) Reallocated Sector Count 100 100 36 0 Ok
(07) Seek Error Rate 83 60 30 210309663 Ok
(09) Power On Hours Count 93 93 0 6516 Ok
(0A) Spin Retry Count 100 100 97 0 Ok
(0C) Power Cycle Count 99 99 20 1325 Ok
(C2) Temperature 25 52 0 25 Ok
(C3) Hardware ECC Recovered 62 46 0 79986164 Ok
(C5) Current Pending Sector 100 100 0 0 Ok
(C6) Offline Uncorrectable 100 100 0 0 Ok
(C7) Ultra DMA CRC Error Count 200 188 0 18 Ok
(C8) Write Error Rate 100 253 0 0 Ok
(CA) TA Counter Increased 100 253 0 0 Ok
Power On Time : 6516
Health Status : Ok
EDITAR:
Quero esclarecer que sei que o Google geralmente considera o SMART inútil. Eu sei que todos devem fazer backup de seus dados. No entanto, estou no negócio de consertar computadores de outras pessoas. A maioria das pessoas não possui backups ou RAID. Não é econômico para as empresas solucionar problemas de discos rígidos; portanto, eles apenas os executam em um RAID até morrerem. Acho útil na minha linha de trabalho verificar o status SMART do disco rígido. Demora cerca de 30 segundos. Se eu tiver sorte o suficiente para que uma unidade com defeito mostre uma dica de falha, como erros de verificação ou setores realocados, eu sei que a unidade é a solução. Se não houver essa dica, provavelmente gastarei muitas horas solucionando problemas de lentidão e corrupção de dados até finalmente descobrir que o disco rígido está com defeito.
Eu só estou tentando ajustar esse processo.