Немного о SMART и утилитах для мониторинга

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

    Когда я в очередной раз рассказывал знакомому о том, почему показаниям SMART не следует безоговорочно верить и почему лучше не использовать классические «мониторилки СМАРТа» постоянно, пришла в голову идея записать сказанные слова в виде набора тезисов с пояснениями. Чтобы давать ссылки, вместо того, чтобы каждый раз пересказывать. И для ознакомления широкой аудитории.

    1) Программами для автоматического мониторинга атрибутов SMART следует пользоваться с большой осторожностью.

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

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

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

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

    Утверждение о возрастании рисков — это не теоретическое умозаключение, а практическое наблюдение. К примеру, известен баг, который имел место в прошивке HDD Samsung 103UI, где в процессе выполнения запроса атрибутов SMART, повреждались пользовательские данные.

    Поэтому, не настраивайте автоматическую проверку атрибутов SMART. Если только точно не знаете, что перед этим подаётся команда сброса кэша (Flush Cache). Или, если без этого не обойтись, настраивайте выполнение проверки максимально редко. Во многих программах мониторинга, настроенное по умолчанию время между проверками — порядка 10 минут. Это слишком часто. Всё равно такие проверки панацеей от неожиданного выхода диска из строя не являются (панацея — только резервирование). Раз в сутки — считаю вполне достаточным.

    Запрос температуры к запуску процессов вычисления атрибутов не приводит и может выполняться часто. Поскольку при правильной реализации это выполняется через протокол SCT. Через SCT отдаётся только то, что уже известно. Эти данные обновляются автоматически в фоновом режиме.

    2) Данные атрибутов SMART зачастую недостоверны.

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

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

    Он ответил, что общего правила, согласно которому устройства показывают или скрывают реальную картину не существует. И логика программистов, которые пишут прошивки жестких дисков, временами выглядит очень странно. Изучая прошивки разных моделей он увидел, что зачастую решение «скрыть или показать» принимается на основе набора параметров, которые вообще непонятно как связаны между собой и с остаточным ресурсом жесткого диска.

    3) Интерпретация показателей SMART вендор-специфична.

    Например, на Сигейтах не стоит обращать внимание на «плохие» raw значения атрибутов 1 и 7, пока остальные в норме. На дисках этого производителя, их абсолютные значения могут увеличиваться в процессе нормальной эксплуатации.

    image

    Для оценки состояния и остаточного ресурса жесткого диска, в первую очередь рекомендуется обращать внимание на параметры 5, 196, 197, 198. Причём, ориентироваться имеет смысл именно на абсолютные, сырые значения (raw), а не на приведённые. Приведение атрибутов может выполняться неочевидными способами, различными в разных алгоритмах и прошивках.

    Вообще, в среде специалистов по носителям информации, когда говорят про значение атрибута, обычно подразумевается именно абсолютное значение.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 40

      +1
      … Резко возрастает вероятность того, что что-то пойдёт не так. Например, будут повреждены данные в пользовательском буфере чтения или записи.

      Вот по-этому и нужно постоянно проверять smart. Чтобы устройство сдохло и было забраковано до того, как насосётся juicy data.


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


      Further reading: chaos monkey, storm, mangle, chaos engineering.

        0
        Проблема в том, что может сдохнуть не устройство, а данные. Причём данные ценные, а сдохнуть потихоньку. У меня как-то была история, когда при записи определённой последовательности байтов на диск один битик в этой последовательности записывался неверно. Обнаружил только потому, что из паранойи переносил данные с одного диска на другой не одной операцией, как все люди делают, а сначала скопировал, потом сравнил, потом исходные удалил (бы, если бы сравнение не выявило пару отличающихся файлов). Вылечилось заменой SATA кабеля. Но чуть не рехнулся, наблюдая это всё…
          0

          Обычный факап фирмвари. В серьёзных системах это не особая проблема, потому что система хранения данных считает crc и делает deep scrub периодически. Умершие данные будут просто помечены плохими и перезалиты. Если это будет происходить постоянно, то osd помрёт (что в этой ситуации, скорее, плюс). А predictive smart это дело запомнит и начнёт на такие устройства коситься. 10-20 устройств — и оно будет "красным" ещё до форматирования.

            0
            Ну, таких «серьёзных систем» относительно мало. В моём случае проблема была на вполне домашнем сервере. Полагаю, драйвер FreeBSD игнорировал прилетающие из-за плохого проводка SATA ошибки, хотя в протоколе SATA, кажется, какая-то контрольная сумма передаётся. Что обидно, под виндой на том же самом компе всё работало нормально, наверное, виндовый драйвер контрольную сумму проверял и повторял при необходимости.
              0

              В домашних условиях (читай, на одиноком линуксе), у нас есть (для не-SAS устройств, т.к. на SAS сектора по 520 байт как раз для CRC):
              1) файловые системы с чексуммами (ZoL, BTRFS).
              2) блочный стек с чексуммами внутри dm-integrity.


              Их достаточно, чтобы обнаружить bit rot.


              Если фря игнорит dma errors, то на помойку такие драйвера.


              Более того, для тривиального коррапта данных по факту записи (не bit rot), то можно поиграться с опцией -R у hdparm (write-read-verify).

          0
          Вот по-этому и нужно постоянно проверять smart. Чтобы устройство сдохло

          Дохнут с идеальным СМАРТом только так. Только резервирование.

          Правильный принцип — долбайте изо всех сил,

          Вы так всё вселенную разнесёте :) Если серьёзно, то вам тогда либо энтерпрайз только покупать нужно (и всё равно его тестировать), либо просеивать все выпускаемые лоу-энд диски, в поисках наиболее надёжных. Владельцы крупнейших хранилищ данных примерно так и поступают. На входе фильтруют все поступающие к ним жесткие диски, специально организовывают подобные процессы, отдельные люди за этим следят. Но это далеко не всегда рентабельно.

            0
            Лучше, если диск сдохнет за гарантийный период — можно будет требовать замену/деньги. Требование к резервированию это, разумеется, не отменяет.
              0

              Ну, минимальное нагрузочное тестирование при принятии железа в продакшен — это прямо 102 системного администрирования. Когда мне аптаймы серверов ещё были не пофигу, я так всегда делал. Новый сервер минимум сутки стоял на мемтесте и ещё всеми возможными бенчмарками вжигался насколько можно. Пару раз за карьеру фигню ловило — либо память битая, либо система охлаждения криво приклеена.

            0
            Самое главное то и не написано:
            SMART overall-health self-assessment test result: PASSED
            наличие такой строчки вовсе не говорит о том, что диск в порядке и не выйдет из строя в ближайшее время (это время может быть и меньше суток)
              0
              Счёл, что информации о том, что диск может неожиданно сдохнуть с идеальными показателями СМАРТ, в сети и так достаточно. И в общем-то упомянул, написав:
              Всё равно такие проверки панацеей от неожиданного выхода диска из строя не являются

              Но наверное вы правы, стоило на это обратить внимание отдельно.
              +1
              Раз в сутки — считаю вполне достаточным.

              О, ещё один повод у меня поныть на Хабре про недавно сдохший жёсткий диск) Регулярно посматривал SMART вручную. За день до смерти SMART был идеальный, в пятницу днём нарисовались 48 нестабильных секторов, к вечеру образовались полторы тысячи переназначенных секторов, а ещё ближе к ночи диск окончательно перестал определяться системой. Сдох меньше чем за полдня, такие вот дела

                0
                Вероятнее всего, ваш случай как раз из тех, когда диск начал сыпаться, но через СМАРТ об этом не сообщал до тех пор пока не оказался при смерти.
                  0
                  А у одного моего диска был баг в прошивке, когда начали появлятья нестабильные сектора и диск стал пытаться с этим что-то сделать он повреждал другие и всё очень быстро оказалось повреждено.
                  0
                  Я однажды просто перезагрузил сервер, после перезагрузки один диск вылетел из рейда. Диск вообще перестал опознаваться, после разобрал его, а там запилена поверхность.
                  \_(ツ)_/¯
                    0
                    «Но он же новый, свеже купленный!» — обычный аргумент.
                    «Люди не все умирают в старости. Утром бегал и улыбался, а вечером все что он знал и хотел сделать уже кануло в пустоту» — обычный ответ.
                    0
                    Была уже стать на хабре о том что СМАРТ срабатывает лишь в половине случаев. Лично сталкивался с тем что даже мониторинг не дает 100% гарантии и диск может выйти из строя по неизвестным причинам. Поэтому соответствующий вопрос: если отбросить экзотику из разряда «кто-то толкнул шкаф и диск сломался» какие причины могут в выходе из строя накопителя?
                      0
                      У меня на работе два самсунга 850 про на 2тб лежат. Они в блейде были в раиде 1 и в один момент он упал полностью. Всё благополучно(из критического один exchange только был, и это уже в конце рабочего дня случилось, ) решилось хотя и весь вечер пришлось копировать виртуалки (диски были забиты на 80%), при этом смарт у них идеальный, но если оставить диски на пару, тройку дней в сервере диски вылетают оба сразу. (проверял на некритичном мегаплане и бэкап свежий был ).
                      Вот теперь и не знаю что с ними делать, выкидывать жалко всё таки 2тб ссд, на работе использовать нельзя. А дома пока не придумал что с ними делать, учитывая их поведение. Продажу не рассматривал по этических причинам.
                        0
                        Ни разу не спец, но возможно имеет место проблема в плате на них. Отвал какого-либо чипа при нагреве (может памяти, может контроллера). В этом случае smart может быть хорошим, т.к. управляющее ПО просто падает, без возможности что-либо запомнить о своем плачевном состоянии.
                          0
                          Отваливаться могли по разным причинам, вполне могут быть исправны. Самсунги того поколения, если я не ошибаюсь, одни из наиболее надёжных современных дисков. Напишете точное название модели, возможно скажу более определённо. SMART заскриншотьте, либо Diag dump R.tester'а покажите — можно будет понять ещё больше.

                          А вообще, отличный вариант для офлайновых резервных копий. Храните их на полочке и снимайте поочерёдно копии важных данных то на один, то на другой, чередуя диски.
                            0
                            А что происходит с дисками, когда они живут в сервере раздельно, а не в одном логическом массиве? Если есть какие-то задачи, в которых нужен кеш и не критична его сохранность — можно переводить туда. Кеш для билд-сервера, например. Там падение не критично будет — просто запустить сборку заново.
                              0
                              У нас нечего такого нету, собственно поэтому по отдельности я их не пробовал.
                              И нужды особой нету, на хранилку всё далось унести, и уже идет потихоньку реорганизация IT с миграцией на новые HP SimpliVity
                            0
                            Естественный износ, производственные дефекты, нарушения условий эксплуатации, ошибки в конструкции и прошивке, всё это вместе в разных пропорциях. Прошу извинить, я не знаю как кратко и содержательно ответить на этот вопрос.
                            0
                            Раз уж пошла такая пьянка, может кто в курсе, как извлечь SMART из «аппаратного» RAID на потребительских чипсетах AMD?

                            Большинство программ вообще пасуют, парочка видит только первый диск массива. Штатная утилита мониторинга и управления RAID довольствуется одной строчкой типа «S.M.A.R.T. Status: OK». Так и живу, не зная как там диски себя чувствуют.
                              0
                              Для того, чтобы это было возможно, либо должен существовать API от производителя и он должен поддерживаться конкретной программой, либо драйвер чипсета должен поддерживать SAT или ATA passthrough.

                              Попробуйте посмотреть с помощью R.tester. Если не покажет, дайте точное название чипсета в его своей материнке или её модель, и точную версию драйвера, либо ссылку на страницу сайта производителя, где лежат этот драйвер и родная утилита. Я перешлю эти данные разработчику утилиты и он добавит поддержку, если только это вообще возможно.
                                0
                                Скачал, видит только первый диск. Вот моя плата (AMD 970 + SB950), три диска объединены в RAID5. Родная утилита называется RAIDXpert.
                                  +1
                                  Разработчику информацию переслал. Если в принципе есть возможность смотреть SMART через ваше железо и разработчик добавит её поддержку, сообщу вам в личку.
                                    0
                                    Спасибо.
                              0
                              Да, SMART он такой СМАРТ! У меня на одном из рабочих компов уже лет пять при каждом включении он твердит, что винт сдохнет буквально сей момент. Ждем-с…
                                0
                                Если интересно выяснить почему так, снимите диагностический дамп R.tester'ом. Выложите куда-нибудь и дайте ссылку. Посмотрим на основе чего такие выводы делаются.
                                Дамп можно снять либо кнопкой «Diag dump» в главном окне, либо «Save dump» в окне с результатом «Quick DIAG».
                                  0
                                  Я в конторе буду дней через неделю. Если не забуду к тому времени об этой переписке — сделаю. А так-то он меня особо не тревожит, там нет критических данных и работы в реал-тайм. Можно не спеша будет его поменять :)
                                    0

                                    Извиняюсь может знаете в чем можут быть проблема, когда диск цел но скорость на всей поверхности диска 10мб?

                                      0
                                      Смотря что за диск и чем тестировали. И как подключен. И к чему подключен. Для старых устройств это может быть наормальной скоростью работы.
                                        0
                                        Для старых дисков есть смысл посмотреть, в каком он режиме работает: PIO или DMA (так, кажется они обзывались?). В режиме PIO — тормоза.
                                    0
                                    Вот сильно помогла бы таблица с расшифровкой какими попугаями измерять значения Raw для разных дисков и производителей. Ибо попугаи на много порядков разные. Для некоторых дисков миллионы Reallocated — ничто, а для других, пара тысяч — труп. И логика не просматривается. Потому мне непонятно, как вы рекомендуете на Raw опираться. Среди десятка одинаковых дисков ещё можно сравнительным анализом, а среди разных? Особенно если они не живут у вас под надзором, а приезжают на диагностику, поделитесь алгоритмом?
                                      +1
                                      Raw значения попугаями измерять не надо. Это абсолютные значения. Просто смотрите их в утилите, способной отображать эти цифры в десятеричном виде и интерпретируйте. В R.tester это столбец «Value» в таблице отображения атрибутов SMART. Попугаи используются для перевода raw значения в приведённое, выводимое стандартно в качестве значения атрибута большинством утилит. Но зачем вам знать принцип этого отображения? Ориентируйтесь на raw, так будет вернее.

                                      Какого-то общего принципа интерпретации raw значений нет. Всё очень сильно моделезависимо. Как я писал, прошивка может не отражать реалокейты в СМАРТе, а у другого диска, при том же их количестве, будет показывать. Поэтому прямо опираться на SMART, если вам нужно оценивать состояние диска не очень хороший подход. Желательно, как минимум, SMART + тесты чтения-записи. В R.tester есть алгоритм быстрой диагностики состояния диска, там как раз используется SMART + тесты в совокупности. Но там только тесты чтения.

                                      Специалисты для оценки состояний дисков используют тесты + данные, получаемые через технопротокол, в SMART даже не заглядывают.
                                        0
                                        А не подскажите, почему программы странно иногда переводят hex в десятичные числа? Например из Crystal Disc Info:
                                        ID Cur Wor Thr RawValues(6) Attribute Name
                                        01 200 200 _51 000000000000 Read Error Rate
                                        03 129 127 _21 00000000119C Spin-Up Time
                                        04 _98 _98 __0 00000000082B Start/Stop Count
                                        05 200 200 140 000000000000 Reallocated Sectors Count
                                        07 200 200 __0 000000000000 Seek Error Rate
                                        09 _97 _97 __0 000000000B13 Power-On Hours

                                        Для Power-On Hours имеем B13, т.е. 2835 часов, но программа рисует какие-то 97 с колонке текущих… И так не только с этой прогораммой, со многими другими тоже.
                                          +1
                                          А не подскажите, почему программы странно иногда переводят hex в десятичные числа? Например из

                                          это не программы «переводят», а столбцы Cur Wor Thr содержат некие значения формируемые микропрограммой накопителя, которые обычно ничего не имеют общего с реальным счетчиком в RawValues. Это лишь некие значения, которые формируются по известному авторам конкретной фирмвари алгоритмам, которые при достижении в Cur значения Thr позволят вари посчитать, что SMART status BAD.

                                          В свое время пробовал немного описать о том, как происходит взаимодействие ПК с накопителем и что накопитель может отдать в SMART Важный момент, что в старой заметке не указал интервал мониторинга, который не стоит делать каждую минуту.
                                            0
                                            Присоединюсь с похожим вопросом про Power On Hours.
                                            Раньше пользовался SATA SSD Интел и Самсунг, и там это значение нормально показывалось, похоже на правду.
                                            Год назад начал использовать NVME Самсунг и за год почти непрерывной работы, счётчик насчитал всего лишь:
                                            Power On Hours: 1 022
                                            Линуксовые утилиты smartctl и nvme показывают одно и то же.
                                            Не понятно, то ли просто криво считается или накопитель часть времени находится как-то в спячке и это время не идёт в зачёт, там есть ещё счётчик:
                                            Controller Busy Time: 281
                                              0
                                              Затрудняюсь вам ответить. Вполне вероятно, что действительно пока он находится в спячке, это время не считается. Если очень хочется узнать — пришлите диагностический дамп, снятый R.tester, или выложите и дайте на него ссылку. Попробуем разобраться.
                                              0
                                              Потому что это не прямой перевод. Интерпретация raw значений вендоро-зависима. Надо знать как переводить. Посмотрите в R.tester.

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

                                        Самое читаемое