Привет, Хабр! Любой, кто хоть раз сталкивался с неожиданной смертью флешки, жесткого диска или SSD-накопителя, расскажет вам, насколько важно отслеживать SMART-параметры и замерять скорость в бенчмарках. Независимо от системы. И если с Windows достаточно вбить в поиске CrystalMark, то пользователям Linux подобный лайфхак не подойдет. Зато подойдет этот текст, где вся история пропитана поисками.



Почему память не вечна?


Углубляться в физику производства чипов памяти и объем работ по литографии — удел отдельных энциклопедических записей. Нам достаточно вспомнить, как сильно нагревались некоторые металлические USB-флешки при записи больших архивов. Это было горячо, но многие твердотельные накопители работают без остановки, при температурах свыше 70°С. Ожидать, что такая нагрузка не скажется на долговечности SSD–накопителя, весьма опрометчиво.

За реальным примером износа далеко идти не нужно. В работающем 24/7 ноутбуке, заводской конфиг изначально включал лишь медленный жесткий диск. Пустой M.2 слот был заполнен самым доступным SSD на 240 Гигов, исправно служащим и по сей день в роли системного. С момента покупки прошло уже два года, а по данным CrystalDiskInfo остаток ресурса составляет всего 87%.



По ошибкам – критических значений пока не выявлено, но куда интереснее информация, полученная при запущенном фоном бенчмарке CrystalDiskMark. Результаты измерения скорости при стандартных значениях ячеек и объема данных вполне соответствуют SATA-SSD. Но температура платы достигала 70°С в пиковые моменты, что много для чипов памяти. Тем более, этот M.2–накопитель установлен в адаптере под слот форм-фактора 2.5”.

На скриншоте температуры системного диска вы могли заметить второй, существенно более холодный носитель. Это представитель бюджетной линейки NVMe PCIe SSD-накопителей в форм-факторе M.2, поддерживающий до 4-х линий по шине PCIe Gen 3.0. Всего в линейке есть три разновидности по объему: 250, 500 и 1000 ГБ, но младшая ограничена по скорости чтения и записи. Поэтому выгоднее брать одну из старших, как 500 ГБ модификацию в данном случае. Кстати, а как она себя проявит под нагрузкой?



До 60°С Kingston A2000 подобрался буквально пару раз при выполнении тестов на чтение. А вот запись сумела разогреть его до 69°С без особых проблем. Со второго прогона, выставив размер файла 0.5 ГБ, диск показал практически паспорт. Этот M.2-накопитель приобретался как раз для переноса на него системы Windows, но прежде стало интересно взглянуть, какие ощущения подарит работа операционной системы на быстром 2-х гигабайтном NVMe–накопителе, и насколько велика окажется разница в сравнении с диском SATA.

А для этого на свежий Kingston A2000 была установлена актуальная версия Ubuntu, скачанная с официального сайта и смонтированная на USB–флешку.



О параметрах S.M.A.R.T.


Сама аббревиатура S.M.A.R.T. литературно расшифровывается как система контроля и самодиагностики диска. Она выполняется контроллером памяти, который нередко указывается в спецификациях SSD–диска. Одна из задач контроллера в распределении нагрузки на ячейки памяти, для равномерного заполнения ресурса по операциям записи. А вообще причина в том, что жесткие диски и твердотельные накопители смертны.

Причем “смертны неожиданно”, если цитировать Воланда. Но так было раньше, до появления стандартизированных инструментов самодиагностики S.M.A.R.T., без которых трудно представить современную диагностику и прогнозирование износа оборудования. В пакет собираемой информации входят ошибки по чтению и записи на каждый блок, и еще около полусотни параметров, названных атрибутами.

Именно атрибуты S.M.A.R.T. позволяют утилите CrystalDiskInfo выводить остаток ресурса, температуру, общее число записанных на диск данных, а также суммарную наработку по часам. Для Ubuntu этот софт не выпускается, но владельцам компьютеров под управлением данной системы он и не требуется.

Бенчмарк и просмотр S.M.A.R.T. на Ubuntu


Классическая проверка жестких дисков и просмотр параметров S.M.A.R.T. в Ubuntu выполняются через терминал, с использованием Smartmontools. Ровно тем же инструментарием SmartCtl можно проверить данные с диска, не вводя команды в терминале. Для этого достаточно установить графическое приложение GSmartControl, находящееся в свободном доступе на популярных репозиториях.



По первоначальной задумке тут должен был оказаться блок с описанием результатов проверки, но в этом приложении набор доступных параметров слегка отличается от данных в CrystalDiskInfo. Как такового отчета увидеть не получится, лишь набор общей справочной информации, которую теоретически можно направить разработчику приложения тикетом на github. Данные S.M.A.R.T. попросту недоступны.



Зато при подключении SSD-диска 3-х летней давности, в меню приложения GSmartControl вся информация из S.M.A.R.T. доступна буквально парой кликов. Тут и актуальная температура, и счетчик исполнений циклов, и общее время работы. Подробнее о значениях каждого из параметров можно прочитать в постах у хабровчан, вбив аббревиатуру в поиск.



Сразу вопрос: а почему свежий NVMe–накопитель Kingston A2000 не распознается приложением GSmartControl? И главное, почему установленный через терминал Smartmontools выдает ту же ошибку доступа к данным самодиагностики?

Проблема в Ubuntu или диске?


В нашем случае, для Ubuntu актуальная версия Smartmontools датирована версией 7.1 из конца 2019 года. Под Windows и Linux, типа Fedora, доступна версия 7.2 от конца октября 2020 года. Но причина оказалась даже не в этом, а в отсутствии информации об SSD–диске Kingston A2000 в самой свежей версии базы драйверов под Linux-системы.



Для проверки, та же операция по обновлению базы была проведена на свежем дистрибутиве Fedora 33. В таблице релизов Smartmontools для этой системы заявлена актуальная версия приложения 7.2. А ручное обновление базы дисков, используемое GsmartTools, также выполняется через терминал, вводом команды: sudo/usr/sbin/update-smart-drivedb

Результат ожидаемо не привел к положительному результату. С одной стороны, разработчиков можно понять, но пользоваться хочется современным SSD–накопителем, не привязывая себя к определенной операционной системе. А в случае с Linux остается только попробовать другую актуальную модель из доступной линейки дисков: модель Kingston A400. Этот SATA-SSD выполнен в форм-факторе 2.5”, так что есть шанс узнать еще и данные по температуре у подобного твердотельника.



Получится у Linux прочитать S.M.A.R.T.–параметры диска Kingston A400?


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



Ура, победа! Твердотельный накопитель Kingston A400 распознается без каких-либо ограничений и все данные самодиагностики S.M.A.R.T. доступны в полном объеме. Значения ошибок и температура доступна к просмотру, причем и в классическом приложении Диски. Там же можно запустить бенчмарк чтения и записи, с ручным выставлением параметров объема ячейки и количества операций. В сочетании с GsmartControl получается удобное средство для контроля производительности дисковой подсистемы, в частности температурного.



В случае с твердотельным накопителем Kingston A400 емкостью 480 ГБ, пиковые значения температуры, по данным приложения GSmatControl, не превышали 60 °С. Результат действительно интересный. Согласно ему, выходит, что системный Kingston A400 выглядит предпочтительнее для Linux, как раз благодаря низкому тепловыделению. NVMe–накопитель грелся в Windows до 70-ти градусов и лучше использовать его с операционкой Microsoft.



Что интересно, за пару месяцев подготовки этого материала, не только разрушились надежды обнаружить с обновлением драйвера и поддержку Kingston A2000 в Linux, но и потерял свою актуальность дистрибутив из репозиториев Fedora для утилиты KDiskMark. Еще в феврале-марте никаких проблем с его установкой из штатного магазина не возникало, а теперь увы.



А жаль, ведь результаты записи в этом бенчмарке гораздо адекватнее значений, выводимых штатными “Дисками”, независимо от введенных значений. Запись упорно держится в районе 300 МБ/с, хотя визуально предпосылок к обрезанной скорости нет.

Какие итоги мы смогли вынести из увиденного?


Первый и самый очевидный вывод, по итогам поиска утилит мониторинга твердотельных дисков на Linux, оказался довольно очевиден: для новинок железа и подробного тестирования куда лучше подходит Windows. Операционка от Microsoft хорошо заточена под обновление драйверов отдельных компонентов, на нее ориентируются производители игрового железа и даже среди дисковых утилит там есть, из чего выбрать.

С Linux-системами все несколько сложнее. Там меньше конкуренция и ниже фокус внимания разработчиков софта. В нашей конкретной ситуации два SSD-накопителя, выпущенные в схожее время, проявили себя по-разному. Модель A400 распознается системами Ubuntu и Fedora, в утилитах Диски и GSmartControl доступен полный отчет по S.M.A.R.T. – параметрам, а вот модель A2000 так и не получила системных драйверов на апрель 2021 года. Узнать, как проявит себя ваш SSD-накопитель на актуальной сборке, получится лишь на практике. С другой стороны, даже SATA-SSD A400 хватает для быстрой и комфортной работы в качестве системного диска, а ощутить разницу с NVMe в прикладных задачах не так и просто.

Но объективная оценка и субъективное восприятие скорости работы системы и отдельных приложений – это тема отдельного материала. Например, сравнения Windows и Linux по части требовательности к ресурсам аппаратных компонентов и более внимательным сравнением нагрузки на дисковую подсистему. А заодно можно будет сравнить важность системных драйверов для SSD и их влияние на итоговые результаты. Подопытные для наших тестов уже под рукой, о результатах расскажем совсем скоро.





Что такое KIWY? Kingston Is With You — Kingston всегда с вами.
Продукция, решения и технологии Kingston широко применяются и используются по всему миру корпорациями, центрами обработки данных и обычными людьми каждый день – от авиации и космических станций до смартфонов, ПК и фоторамок. Самые неожиданные сферы использования решений Kingston узнайте тут.

Для получения дополнительной информации о продуктах Kingston обращайтесь на официальный сайт компании.

Комментарии (12)


  1. nerudo
    29.07.2021 10:36
    +1

    С учетом, что способ получения атрибутов стандартен, сами атрибуты стандартны и от диска к диску меняется лишь набор поддерживаемых — какая smartmon'у разница, что там вообще за диск? И зачем ему эта drivedb?


    1. edo1h
      29.07.2021 16:52
      +2

      сами атрибуты стандартны и от диска к диску меняется лишь набор поддерживаемых

      нет.


      И зачем ему эта drivedb?

      в первую очередь, как раз, для корректной обработки атрибутов smart, специфичных для накопителей.
      и да, это касается только sata (и, может быть, ide). у sas и nvme другой smart.


      opensource же, кто вам мешает заглянуть что там внутри?
      https://www.smartmontools.org/browser/trunk/smartmontools/drivedb.h


      1. nerudo
        29.07.2021 17:54

        Так я взглянул. Не вижу, как отсуствие того или иного накопителя в этом файле может помешать программе показать smart. В худшем случае — без расшифровки raw значений.


        1. edo1h
          29.07.2021 18:10
          +1

          не может помешать, соглашусь. а для nvme тем более.


          просто авторы статьи использовали наугад рецепты из гугла без понимания того, что они делают.


    1. Tangeman
      29.07.2021 19:12
      +2

      К сожалению, для SSD (если это не NVMe) нет стандартных атрибутов которые показывали бы реальное состояние "здоровья", у каждого вендора (а иногда и у каждой линейки моделей) свои и часто несовместимые — именно для этого и нужна drivedb — если заглянете туда, увидите что в некоторых устройствах одно и то же значение имеет разные id и иногда даже отличается семантика.


      Простой пример — у Samsung атрибут 177 — Wear Leveling Count (не у всех моделей), у SanDisk и у Kingston его скорее не будет (тоже зависит от модели). Просто пройдитесь smartctl по разным вендорам SSD — сразу станет ясно что нет ничего стандартного.


      Впрочем, даже если атрибуты известны — они не всегда отражают реальность, по моему опыту SSD почти всегда умирают внезапно — т.е. вплоть до смерти всё ок по всем атрибутам, потом вдруг "ой всё", иногда задолго до исчерпания паспортного ресурса. Чаще всего такое происходит с обычными потребительскими моделями (уже стопочка SanDisk и Kingston), но и суровые датацентровские (Samsung DCT) тоже не исключение.


      Ситуация усложняется тем что не все вендоры (и не для всех моделей) публикуют информацию об атрибутах, поэтому при их чтении smartctl получаем вот такое (со свежей drivedb и накопителем Kingston которому уже минимум года два):


      201 Unknown_SSD_Attribute   0x0023   100   100   005    Pre-fail  Always  -    100
      240 Unknown_SSD_Attribute   0x0032   100   100   000    Old_age   Always  -    5922

      а среди остальных нет ни одного который бы указывал на реальное использование ресурса кроме количества часов онлайн (количество записанных данных мало что даёт если неизвестен WAF, а в зависимости от использования он может быть весьма немаленьким).


      Бывает и наоборот — смарт во всю жалуется что "всё пропало", но накопитель работает без проблем ещё пару лет (уже перемещённый в некритичную систему, ради эксперимента).


      Так что ситауция мало изменилась по сравнению с обычными HDD — smart наверное лучше чем без него, но его "надёжность" всё ещё на уровне бросания монетки (по крайней мере для SATA/SAS, по NVMe у меня ещё нет статистики).


      1. edo1h
        30.07.2021 02:13

        К сожалению, для SSD (если это не NVMe) нет стандартных атрибутов которые показывали бы реальное состояние "здоровья", у каждого вендора (а иногда и у каждой линейки моделей) свои и часто несовместимые — именно для этого и нужна drivedb — если заглянете туда, увидите что в некоторых устройствах одно и то же значение имеет разные id и иногда даже отличается семантика.

        smartctl -l ssd /dev/sda

        работает вроде бы на всех, попадающихся в руки.


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

        скорее дело в неправильной трактовке показаний smart.
        «процент износа» не показывает насколько здоров диск, он показывает сколько процентов из расчётного ресурса израсходовано (например, память рассчитана на 1500 циклов erase, а было произведено 500, износ 33%). и этот процент вполне может быть больше 100.
        но некоторые накопители блокируют запись на диск после некоторого превышения объёма записи на диск.


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


        но и суровые датацентровские (Samsung DCT) тоже не исключение.

        честно говоря, я не почти сталкивался с выходом dc накопителей из строя, на памяти всего два случая:


        1. накопитель (ЕМНИП micron 5200 или 5300) начал «жаловаться» на перегрев, через несколько часов перестал работать. что именно произошло неизвестно, это был дедик в дц хостера, хостер просто заменил накопитель;
        2. буквально сегодня, читая именно это статью, я решил проверить рукой температуру моего домашнего samsung pm963 и он сдох. судя по следам, smd-элемент замкнул на массу на китайской плате-переходнике (там был очень небольшой зазор, от прикосновения плата накопителя чуть прогнулась и здравствуй, КЗ).
          image


  1. avbochagov
    29.07.2021 10:47
    +7

    Жалоба от производителя оборудования на то, что в Linux нет драйвера для этого оборудования.


    Странно, но мне кажется, что всё в ваших руках.


  1. Dinges
    29.07.2021 10:56
    +1

    Упс... Всегда забываю что есть бенчмарки для накопителей. Проведу-ка профилактику на досуге)


  1. NickSin
    29.07.2021 11:54
    +3

    Я чего-то не понял: в корпоративном блоге Kingston идёт жалоба на то, что в Linux нет нормальных дров на SSD от того же самого Kingston? Странная, однако, вещь)


  1. 13werwolf13
    29.07.2021 12:33
    +5

    Боже, какой позор.. производитель оборудования публично жалуется что не смог родить драйвер для своего оборудования..

    Kingston вы опять обделались..


  1. edo1h
    29.07.2021 16:43
    +1

    С момента покупки прошло уже два года, а по данным CrystalDiskInfo остаток ресурса составляет всего 87%.

    так «уже два года» или «всего 87%»?


    Но температура платы достигала 70°С в пиковые моменты, что много для чипов памяти.

    не температура платы, а температура контроллера. температура чипов памяти обычно сильно ниже температуры кон


    И главное, почему установленный через терминал Smartmontools выдает ту же ошибку доступа к данным самодиагностики?

    ту же — это какую? не вижу в статье ни параметров запуска smartctl, ни полученного ответа, вижу лишь стенания «ах, мы не умеем линукс» и куча каких-то скриншотов.


    мне известны два способа чтения данных смарта с nvme-накопителей:


    smartctl -x /dev/nvme0n1

    и


    nvme smart-log /dev/nvme0n1

    оба у меня работают со всеми имеющимися накопителями.


    Момент установки был волнителен как никогда.

    читается как захватывающий детектив (нет)


    Со второго прогона, выставив размер файла 0.5 ГБ, диск показал практически паспорт

    у вас ещё и с русским всё плохо (диск выставил размер файла?)


    Какие итоги мы смогли вынести из увиденного?

    не пишите больше статьи на хабр.


  1. kovserg
    29.07.2021 17:22

    Я вот так и не понял при каком условии из SMART данных надо срочно менять накопитель? Какой триггер? Какая метрика говорит что диск протянет не более месяца и в ближайшее время двинит кони вместе со всеми данными?