Назад | Перейти на главную страницу

Как интерпретировать эти данные smartctl (smartmon)

У нас есть Linux-сервер, который интенсивно используется в течение 3 лет. Мы запускаем на нем несколько виртуализированных серверов, некоторые из которых плохо себя ведут, и в течение значительного времени емкость сервера io превышалась, что приводило к плохому iowait. У него есть 4 накопителя Barracuda sata по 500 Гб, подключенных к RAID-контроллеру 3com. На 1 диске установлена ​​ОС, а на остальных 3 установлены raid-5.

Теперь у нас есть дискуссия о состоянии дисков и о том, действительно ли они выходят из строя.

Вот часть вывода для 1 из 4 дисков. У всех них относительно схожая статистика:

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
  1 Raw_Read_Error_Rate     0x000f   118   099   006    Pre-fail  Always       -       169074425
  3 Spin_Up_Time            0x0003   095   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       26
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   077   060   030    Pre-fail  Always       -       200009354607
  9 Power_On_Hours          0x0032   069   069   000    Old_age   Always       -       27856
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       1
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       26
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       1
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   060   045    Old_age   Always       -       29 (Lifetime Min/Max 26/37)
194 Temperature_Celsius     0x0022   029   040   000    Old_age   Always       -       29 (0 21 0 0)
195 Hardware_ECC_Recovered  0x001a   046   033   000    Old_age   Always       -       169074425
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

Я считаю, что у нас не было никаких плохих секторов или других признаков того, что какой-либо из дисков активно выходит из строя.

Однако высокие значения Raw_Read_Error_Rate и Seek_Error_Rate указываются как признаки того, что диски умирают.

Для дисков Seagate (и, возможно, некоторых старых дисков от WD) Seek_Error_Rate и Raw_Read_Error_Rate - это 48-битные числа, где наиболее значимые 16 бит - это количество ошибок, а младшие 32 бита - количество операций.

% python
>>> 200009354607 & 0xFFFFFFFF
2440858991
>>> (200009354607 & 0xFFFF00000000) >> 32
46

Таким образом, ваш диск выполнил 2440858991 поиск, из которых 46 были неудачными. Мой опыт работы с дисками Seagate показывает, что они, как правило, выходят из строя, когда количество ошибок превышает 1000. YMMV.

«Частота ошибок поиска» и «частота ошибок прямого чтения» RAW_VALUES практически бессмысленны для кого-либо, кроме поддержки Seagate. Как указывали другие, необработанные значения таких параметров, как «количество перераспределенных секторов» или записи в журнале ошибок накопителя, с большей вероятностью указывают на более высокую вероятность отказа.

Но вы можете взглянуть на интерпретированные данные в столбцах VALUE, WORST и THRESH, которые предназначены для чтения как индикаторы:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH
  7 Seek_Error_Rate         0x000f   077   060   030

Это означает, что ваша частота ошибок поиска в настоящее время считается «хорошей на 77%» и сообщается SMART как проблема, когда она достигает «30% хорошо». Когда-то он был на уровне «60% хорошего», но с тех пор волшебным образом восстановился. Обратите внимание, что интерпретируемые значения рассчитываются логикой SMART привода внутри, и точный расчет может быть опубликован или не опубликован производителем и обычно не может быть изменен пользователем.

Лично я считаю диск, содержащий записи журнала ошибок, "неисправным" и настоятельно рекомендую заменить его, как только они возникнут. Но в целом данные SMART оказались довольно слабым индикатором для прогнозирования отказов, поскольку исследовательская статья, опубликованная Google раскрытый.

По моему опыту, у Seagates странные числа для этих двух атрибутов SMART. При диагностике Seagate я обычно игнорирую их и более внимательно смотрю на другие поля, такие как количество перераспределенных секторов. Конечно, в случае сомнений замените диск, но даже новые Seagates будут иметь высокие значения этих атрибутов.

Я понял, что это обсуждение немного устарело, но хочу добавить свои 2 цента. Я обнаружил, что разумная информация является неплохим показателем готовности к отказу. Когда сработает умный порог, замените привод. Вот для чего нужны эти пороги.

В подавляющем большинстве случаев вы начнете видеть сбойные сектора. Это верный признак того, что диск начинает выходить из строя. SMART меня много раз спасал. Я использую программный RAID 1, и он очень полезен, поскольку вы просто заменяете неисправный диск и восстанавливаете массив.

Я также еженедельно провожу короткие и длинные тесты для самопроверки.

smartctl -t short /dev/sda
smartctl -t long /dev/sda 

Или добавьте его /etc/smartd.conf и отправьте вам электронное письмо, если есть ошибки

/dev/sda -s L/../../3/22 -I 194 -m someemail@somedomain
/dev/sdb -s L/../../7/22 -I 194 -m someemail@somedomain

Обязательно установите logwatch и перенаправьте root на адрес электронной почты и проверяйте ежедневные электронные письма от logwatch. Там будут отображаться флаги срабатывания SMARTD, но это бесполезно, если никто не отслеживает их регулярно.

Приносим извинения за некромантию в этом посте, но, по моему опыту, поля «Raw Read Error Rate» и «Hardware ECC Recovered» для диска Seagate буквально идут повсюду и постоянно увеличиваются до диапазона триллионов, после чего они возвращаются к нулю, чтобы продолжить процесс снова. У меня есть Seagate ST9750420AS, у которого эта проблема возникла с первого дня, и он по-прежнему отлично работает даже после нескольких лет и более 3500 часов использования.

Я думаю, что эти поля можно безопасно игнорировать, если вы используете их в своем случае. Просто убедитесь, что два поля сообщают одно и то же число и постоянно синхронизируются. Если они не ... ну ... на самом деле это может означать проблему.

Да, эти поля выглядят плохо, но я не доверяю (больше) информации, сообщаемой smart (у моей тестовой машины есть диск, который должен быть мертв давно, если вы читаете данные с помощью smartctrl) Дело в том, что вы сообщили high iowait и накопителям 3 года. Этого должно хватить, чтобы сменить диски.

Для автоматизации расчетов этот ответ, воспользуйтесь онлайн-калькулятором javascript:

https://yksi.ml/

Это скажет вам:

  • Общее количество операций
  • Количество неудачных операций

Калькулятор действителен для Seagate:

  • Частота ошибок поиска
  • Частота ошибок необработанного чтения
  • Аппаратный ECC восстановлен

Для получения дополнительной информации о вычислении нормализованных значений (от 0 до 100) см. Эта статья.