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

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

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

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

Номер версии структуры данных атрибутов SMART: 10
Специфичные SMART-атрибуты поставщика с пороговыми значениями:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE ОБНОВЛЕНО WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   118   099   006 Пред-сбой Всегда -       169074425
  3 Spin_Up_Time            0x0003   095   092   000    Pre-fail Всегда -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       26
  5 Reallocated_Sector_Ct   0x0033   100   100   036 Пред-сбой Всегда -       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 Пред-сбой Всегда -       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 Неизвестный_атрибут 0x0032   100   100   000    Old_age   Always       -       1
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Tempera__el 0x0022   071   060   045    Old_age   Always       -       29 (срок службы мин. / Макс. 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_Неисправимый 0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

Версия журнала ошибок SMART: 1
Ошибки не зарегистрированы

Моя интерпретация этого состоит в том, что у нас не было никаких поврежденных секторов или других признаков того, что какой-либо из дисков активно выходит из строя.

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

9 ответов

Решение

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

Для дисков 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.

Добавьте эти флаги, чтобы атрибуты 1 и 7 (Raw_Read_Error_Rate и Seek_Error_Rate) интерпретировались как состоящие из 24-битного счетчика ошибок и 32-битного общего счетчика.

      -v 1,raw24/raw32 -v 7,raw24/raw32

-vозначает--vendorattribute=

Указание raw24/raw32 — это способ указать smartctl интерпретировать и отображать необработанную информацию в соответствии с общим форматом. см. справочную страницу .

согласно руководству Seagate здесь. Значение необработанных 7 байтов каждого атрибута следующее:

      Attribute ID 1: Raw Error Rate  
Raw [3 – 0] = Number of sector reads  
Raw [6 - 4] = Number of read errors  

Attribute ID 7: Seek Error Rate  
Raw [3 – 0] = Number of seeks  
Raw [5 – 4] = Number of seek errors

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

Подавляющее большинство времени вы начнете видеть плохие сектора. Это верный признак того, что диск начинает выходить из строя. СМАРТ спас меня много раз. Я использую программный 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 часов использования.

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

Я столкнулся с этим сегодня для диска Seagate X20. Как отметил ДХАНАНДЖАЙ РАУТ, в соответствии с руководством по значениям Seagates SMART: Raw_Read_Error_Rate (#1), а также Seek_Error_Rate (#7) кодируются как 48-битные значения, где первые 4 байта/32 бита представляют собой общее количество секторов/поиск DHANANJAY RAUT последние 2 байта/16 бит — это счетчик ошибок.

Получитьsmartctlчтобы правильно прочитать эти значения и показать только количество ошибок, вам нужно использовать-vвариант такой:-v 1,raw48:54Значение: интерпретируйте атрибут 1 как 48-битное поле и используйте байты 4 и 5 как 16-битное целое число.

Например, чтобы проверить диск/dev/sda, команда smartctl должна выглядеть так:

      smartctl -a -v 1,raw48:54 -v 7,raw48:54 /dev/sda

Чтобы автоматизировать вычисления этого ответа, используйте онлайн калькулятор javascript:

https://yksi.ml/

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

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

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

  • Поиск ошибок
  • Необработанная частота чтения
  • Аппаратное обеспечение ECC восстановлено

Для дальнейшего чтения о расчете нормализованных (от 0 до 100 значений), см. Эту статью.

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

Другие вопросы по тегам