Как узнать оставшийся ресурс SSD в Linux

  • Автор:

ssd-info-linux-000.png В одной из наших прошлых статей мы поднимали вопрос надежности SSD, где делали упор на такие параметры, как гарантированный объем записи - TBW и допустимое количество перезаписей в день - DWPD. Для оценки оставшегося ресурса вашего накопителя нужно знать несколько параметров: суммарный записанный объем данных и суммарное время работы, что позволит вычислить необходимые показатели и оценить режим работы диска. В Windows это сделать достаточно просто - к вашим услугам масса утилит любой сложности, но что делать пользователям Linux? Сегодня мы расскажем об этом.

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

Прежде всего следует установить утилиту для работы с атрибутами S.M.A.R.T., если вы, конечно, не сделали этого раньше:

apt install smartmontools

Теперь выясним какие дисковые устройства установлены в вашей системе, для этого выполните:

lsblk

В выводе нас интересуют только устройства с типом disk, в нашем случае это sda:

ssd-info-linux-001.pngЧтобы получить информацию из S.M.A.R.T. диска воспользуемся командой:

smartctl -a /dev/sda

где /dev/sda - имя нашего диска, которое мы выяснили на предыдущем шаге.

В полученном выводе прежде всего изучим общие данные о диске, в частности обратим внимание на размер логического сектора:

ssd-info-linux-002.pngПотом спустимся немного вниз и изучим таблицу S.M.A.R.T.-атрибутов:

ssd-info-linux-003.pngКолонки Value, Worst и Threshold содержат значения каждого из показателей в "попугаях": Value - текущее значение, Worst - наихудшее за все время. RAW_value - колонка с абсолютными значениями показателя. Атрибуты могут быть двух типов: Old_age - это параметры, которые просто растут (изменяются) со временем, критический порог отсутствует, например, это время работы диска в часах; Pre-fail - это параметры имеющие критическое значение, которое указано в колонке Threshold и приближение к ним указывает на предаварийное состояние диска. На скриншоте выше к таким параметрам относится Available_Reservd_Space - доступная резервная область, снижение значения которой указывает на износ диска.

Но вернемся к показателям ресурса. Western Digital заботится о своих пользователях и выводит подробную информацию, в частности атрибут 241 Total_Host_GB_Written содержит количество записанной на диск информации в гигабайтах, а атрибут 9 Power_On_Hours хранит количество отработанных часов.

Также интересно изучить показатели 233 NAND_GB_Written_TLC и 234 NAND_GB_Written_SLC, где показано количество записи в TLC и SLC ячейки соответственно. Как видим, работа SLC-кеша у современных дисков построена эффективно, количество данных, записанных непосредственно в TLC крайне мало. Второй момент - это мультипликация записи, как мы уже знаем, нельзя просто так записать данные в занятую ячейку, ее предварительно нужно очистить, но очистить отдельную ячейку также невозможно, это можно сделать только для блока, поэтому на одну операцию записи внутри SSD может потребоваться несколько, что мы и видим в данном случае.

Но для оценки износа мы всегда должны принимать объем данных, записанный хостом (241 Total_Host_GB_Written), так как именно на это значение ориентируется производитель, указывая TBW, внутренние параметры представляют в основном академический интерес.

К сожалению, не все производители включают в S.M.A.R.T. подробные и удобочитаемые данные, во многих случаях вы найдете тот же самый атрибут, но несколько в ином виде 241 Total_LBAs_Written. Это наследство жестких дисков, RAW-значение этого атрибута показывает количество записанных LBA-секторов (ниже показан S.M.A.R.T. от HDD):

ssd-info-linux-004.pngНо даже этой информации может не быть, к примеру Toshiba A100 отличается предельной лаконичностью, сообщить еще что-либо кроме времени работы, количества включений и температуры посчитали излишним:

ssd-info-linux-005.pngНо не будем впадать в уныние, получим расширенный набор информации из S.M.A.R.T.:

smartctl -x /dev/sda

В этот раз информации будет гораздо больше, в ней необходимо найти раздел Device Statistics в котором содержится искомый параметр Logical Sector Written, значение которого аналогично 241 Total_LBAs_Written и показывает количество записанных LBA-секторов:

ssd-info-linux-006.pngДля дальнейших расчетов нам нужно знать размер логического сектора, его можно получить из общей информации о диске в самом начале вывода:

ssd-info-linux-007.pngА дальше нам поможет несложная математика уровня "дружим с калькулятором", для получения суммарного объема записанных данных умножим количество секторов на размер сектора:

Total Host Written = Logical Sector Written * Sector Size

Для размера сектора в 512 байт, как в нашем случае, результат также будет в байтах, для размера сектора в 4 КБ - в килобайтах. Для перевода в единицы более высокого порядка результат нужное количество раз нужно разделить на 1024:

Total Host Written KB = Total Host Written / 1024
Total Host Written MB = Total Host Written KB / 1024
Total Host Written GB = Total Host Written MB / 1024

Для показанного выше диска путем таких несложных вычислений мы получим значение:

Total Host Written GB = 83290439828 * 512 / 1024 /1024 /1024 = 33 778 ГБ

Теперь можно оценить ресурс и условия эксплуатации диска, для данной модели TBW = 30 TB, а DWPD = 0.23. Как видим, гарантированный ресурс записи диск выработал, общее время работы составило 979 дней или 2,68 года, т.е. немного менее гарантийного срока. Ежедневный объем записи на диск составил 34,5 ГБ, а реальный DWPD равен 0,29. В целом условия эксплуатации диска можно назвать удовлетворительными, но на замену рекомендуется выбрать модель с более высоким TBW.

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