Перш за все, я думаю, всі знають, що жорсткі диски виходять з ладу набагато більше, ніж хотіли б визнати виробники . Google провів дослідження, яке вказує на те, що деякі необроблені атрибути даних про те, що стан SMART звітів на жорстких дисках може мати сильну кореляцію з майбутнім збоєм накопичувача.
Ми виявляємо, наприклад, що після їх першої помилки сканування диски мають 39 разів більше шансів вийти з ладу протягом 60 днів, ніж диски без таких помилок. Перші помилки в перерозподілі, офлайн-перерозподілах та ймовірних підрахунках також сильно корелюються з більш високими ймовірностями відмов. Незважаючи на ці сильні кореляції, ми виявляємо, що моделі прогнозування відмов, що базуються лише на параметрах SMART, ймовірно, будуть сильно обмежені в точності прогнозування, враховуючи, що велика частка наших несправних дисків не показала жодних сигналів про помилки SMART.
Схоже, Seagate намагається затьмарити цю інформацію про свої накопичувачі, стверджуючи, що тільки їх програмне забезпечення може точно визначити точний стан свого накопичувача, і, до речі, їх програмне забезпечення не повідомить вам необмежені значення даних для атрибутів SMART. Western Digital не пред'являв такої претензії, наскільки я знаю, але, як видається, і їхній інструмент звітності про стан не повідомляє про вихідні значення даних.
Я використовував HDtune та smartctl від smartmontools для того, щоб зібрати необроблені значення даних для кожного атрибута. Я зрозумів, що це дійсно ... Я порівнюю яблука з апельсинами, коли йдеться про певні атрибути. Наприклад, я виявив, що більшість накопичувачів Seagate повідомляють, що вони мають багато мільйонів помилок читання, тоді як західний цифровий 99% часу показує 0 для помилок читання. Я також виявив, що Seagate повідомить про багато мільйонів помилок пошуку, тоді як Western Digital завжди здається, що повідомляє 0.
Питання : Як нормалізувати ці дані? Чи створює Seagate мільйони помилок, а Western Digital не створює жодної? У статті Вікіпедії про статус SMART йдеться про те, що виробники мають різні способи повідомлення цих даних.
Ось моя гіпотеза:
Я думаю, що я знайшов спосіб нормалізувати (чи це правильний термін?) Даних.
У накопичувачів Seagate є додатковий атрибут, якого у Western Digital накопичувачів немає (Hardware ECC Recovery). Коли ви віднімаєте кількість помилок читання з числа ECC Recovery, ви, ймовірно, отримаєте 0. Очевидно, що це еквівалентно західному цифровому коду, про який повідомляється "Помилка читання". Це означає, що Western Digital повідомляє лише про помилки читання, які він не може виправити, тоді як Seagate рахує всі помилки читання та повідомляє, скільки з них вдалося виправити.
У мене був накопичувач Seagate, де кількість помилок читання була меншою за кількість відновлених ECC, і я помітив, що багато моїх файлів стають пошкодженими. Ось як я придумав свою гіпотезу. Мільйони помилок пошуку, які створює Seagate, для мене досі залишаються загадкою.
Будь ласка, підтвердьте або виправте мою гіпотезу, якщо у вас є додаткова інформація.
Ось розумний статус мого західного цифрового накопичувача, щоб ви могли бачити, про що я говорю:
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
Редагувати: Ось привід Seagate, про який я говорив, що спричинив пошкодження даних. Це дані від 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
Те, що відновлений апаратний ECC перевищує показник помилок у режимі сирого читання, на мою думку, є протиінтуїтивним.
Це те, що я виявив "звичайний" привід Seagate, коли відновлений ECC відповідає рівню помилок читання:
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
Редагувати:
Хочу уточнити, що мені відомо, що Google взагалі вважає SMART марним. Я знаю, що кожен повинен створити резервну копію своїх даних. Однак я займаюся виправленням комп'ютерів інших народів. Більшість людей не мають резервного копіювання або мають RAID. Корпораціям не вигідно вирішувати проблеми з жорсткими дисками, тому вони просто запускають їх на RAID, поки вони не помруть. Мені здається корисним в моїй роботі перевірити стан SMART на жорсткому диску. Це займає як 30 секунд. Якщо мені пощастило, що поганий диск виявив натяк на збій, такий як помилки сканування або перерозподілені сектори, я знаю, щоб вивести диск з чортви звідти. Якщо такої підказки не існує, я, мабуть, витрачую багато годин на усунення повільності та пошкодження даних, поки нарешті не виявлю, що жорсткий диск поганий.
Я просто намагаюся налагодити цей процес.