Available spare threshold ssd что это

Обновлено: 05.07.2024

Что такое атрибуты SMART и как они могут быть полезны?

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

Описание некоторых атрибутов SMART Health Info отображается в следующей таблице. Эти атрибуты могут отличаться в зависимости от выбранного SSD-накопителя Intel или другого диска. Некоторые из этих атрибутов могут не поддерживаться вашим SSD-накопителем или диском.

Атрибуты SMART для SATA

Id

Атрибут и описание (SATA)

Количество секторов, переудвижных секторов

В нем отсчитываются номера снятых с производства блоков после выхода с производства (количество дефектов возросло).

Количество часов с отключением питания

Raw value reports the cumulative number of power-on hours over the life of the device.

Примечание. Статус включаемой/выключяемой функции УПРАВЛЕНИЯ питанием (DIPM) влияет на количество часов, о которые сообщили.

Количество циклов питания

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

VailableReserved Space

Сообщает оставшееся количество резервных блоков. Нормализованное значение начинается с 100 (64h), что соответствует 100% доступности зарезервированного пространства. Пороговое значение для этого атрибута — 10% доступности.

Количество сбойов программы

В raw value отсчитываются общее количество сбойов программы. Нормализованное значение, начиная с 100, показывает процент сбой оставшегося допустимого значения программы.

Количество сбойов стирки

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

Непредвиденное отключение питания

Отчеты о количестве нестандатных отключений, накопитель издает отчеты о времени работы SSD-накопителя. "Нестандерный выключение" - это отключение питания без НЕПОСРЕДСТВЕННОго ожидания в качестве последней команды (вне зависимости от активности PLI с помощью конденсаторов). Также она известна как "отключение отката питания" для одного магнитного диска.

Количество конечных обнаружений ошибок

Отчеты о количестве ошибок, с которыми сталкиваются во время проверки адресов логических блоков (LBA) на пути данных SSD. Нормализованное значение начинается с 100 и декрементов по 1 для каждого обнаруженного несоответствия тегов LBA. Пороговое значение : 90.

Количество неустанных ошибок

В raw-значении отсчитываются количество ошибок, которые не могут быть восстановлены с помощью кода коррекции ошибок (ECC).

Temperature (Температура) — воздушный поток (корпус)

Отчет о температуре корпусе SSD в градусах Цельсия. Простое значение:

  • Byte 0 = Текущая температура (°C)
  • Byte 2 = Новейшая минимальная температура (°C)
  • Byte 3 = Новейшая максимальная температура (°C)

Нормализовано значение : 100. Температура корпусов рассчитывается на основании смещения от внутреннего датчика температуры.

Безопасное количество выключения (отключение от отката питания)

В оккупном значении сообщается накопительное количество ненадежных (по-тому) событий выключения в течение всего времени службы устройства. Безопасное выключение происходит тогда, когда устройство выключено без ожидания НЕМЕДЛЕННОЙ является последней командой.

Temperature (температура) — внутреннее устройство

Отчет о внутренней температуре SSD-системы. Показания температуры — это значение, прямое от внутреннего датчика. Исходным значением является текущая температура. Нормализованное значение — это мин уравнения результатов (150-ток-терм, 100).

Количество ошибок CRC

Общее количество ошибок, с которыми сталкиваются ошибки интерфейса SATA.

Записи в хост

Raw value reports the total number of sectors written by the host system. Raw value increases by 1 for every 65 536 sectors written by the host.

Время рабочей нагрузки, износ носите информации

Измеряет износ, который износа можно увидеть на SSD-качестве (после сброса timed Workload Timed Workload Timer, атрибут E4) в процентах от максимальных циклов номинальной нагрузки.

Время рабочей нагрузки, коэффициент чтения/записи хоста

Процент операций загрузки/загрузки, которые являются операциями чтения (после сброса timed workload timed Timed Workload Timer, атрибут E4).

Timed Workload Timed Workload Timed Timed Workload Timed Timed Workload Time

Измеряет время, запамянутее (количество минут) с момента запуска этого времени рабочей нагрузки.

Доступное пространство для зарезервированного пространства

Сообщает оставшееся количество резервных блоков. Нормализованное значение начинается с 100 (64h), что соответствует 100% доступности зарезервированного пространства. Пороговое значение для этого атрибута — 10% доступности.

Индикатор износа носитла

Отчет о количестве циклов, которые прошли в медиафайле NAND. Нормализованное значение снижается линейно со 100 до 1 по мере увеличения среднего числа циклов стирки с 0 до максимальных номинальных циклов. Как только нормализованное значение достигает 1, их количество не уменьшается, хотя вероятно, на устройство может быть наложен значительный дополнительный износ.

Общее количество LBAS в письменной области

Кол-во секторов, написанных хостом.

Общее количество прочитано LBAs

Кол-во секторов, прочитано ведущим.

Атрибуты SMART для NVMe*

Id

Атрибут и описание (NVMe)

Критическое предупреждение

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

  • Бит 0: Доступная запасная не выше порогового значения
  • Бит 1. Температура превышает допустимые значения
  • Бит 2. Надежность снижается из-за чрезмерных насчетов носите информации или внутренних ошибок
  • Бит 3. Носите информации находится в режиме только чтения
  • Бит 4. Ошибка резервной системы с энергоэкономией (например, ошибка теста конденсатора потери питания)
  • Биты 5–7: Зарезервировано

Любое из критически важных предупреждений может быть связано с асинхронным уведомлением о событии.

Температура

Сообщает общую текущую температуру устройства в Кельвине.

Доступные запасные части

Содержит нормализованный процент (от 0 до 100%) оставшейся доступной запасной емкости. Начинается от 100 и декрементов.

Доступное пороговое значение запасных частей

Пороговое значение установлено на 10%.

Оценка использования в процентах

(допустимые значения превышают 100%). Значение 100 указывает на то, что расчетная изостойкость устройства была пополнена, но может не указывать на неисправность устройства. Значение может превышать 100. Проценты с более чем 254 должны быть представлены как 255. Это значение должно быть обновлено один раз в час питания (если контроллер не находится в режиме сна).

Чтение единиц данных(в LBAS)

Содержит число 512 единиц данных, которые хост считает у контроллера. это значение не содержит метаданных. Это значение оценивается в тысячах (то есть значение 1 соответствует 1000 считыванным 512 bytes) и округлено. Если размер LBA является значением, кроме 512 бит, контроллер должен преобразовать количество считыванных данных в 512 бит.

Записи единиц данных(в LBAS)

Содержит 512 единиц данных, которые хост списыл контроллеру. это значение не содержит метаданных. Это значение сообщается в тысячах (то есть, значение 1 соответствует 1000 единицам из 512 написанных bytes) и округлено. Если размер LBA является значением, кроме 512 бит, контроллер должен преобразовать объем данных, написанный в 512 бит. Для набора команд NVM в это значение должны включаться логические блоки, написанные как часть операций записи. Это значение не должно повлиять на написание неустанных команд.

Команды чтения хоста

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

Команды записи хоста

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

Контроллер время работы (через несколько минут)

Содержит время работы контроллера с командами I/O. Контроллер загружен, когда есть выдающаяся команда для очереди под контроллером. (В частности, команда была выдана в результате записи точки входа в очередь ввода/выхода в очередь отправки, и соответствующая запись очереди завершения еще не была размещена в связанной очереди ввода/завершения.) Это значение будет отчитанося в течение нескольких минут.

Циклы питания

Содержит количество циклов питания

Часы работы с питанием

Содержит количество часов работы с питанием. Это не относится к времени, когда питание контроллера было при низком энергосхеме.

Небезопасные отключения

Содержит количество небезопасного выключения. Этот подсчет будет приращен после того, как не будет получено уведомление о выключении системы (CC.SHN) до отключения питания.

Ошибки мультимедиа

Содержит количество ошибок, когда контроллер обнаружил невозвратимую ошибку целостности данных. В это поле включены ошибки, такие как неугрешимые ошибки ECC, ошибка проверки CRC или некорректное несоответствие тега LBA.

Количество входов в журнал сведений об ошибках

Содержит количество входов в журнал Информации об ошибках за время работы контроллера.

Предупреждение о времени перепада температур в композитном режим

Содержит количество времени в минуты, за которые контроллер работает, и температура композита превышает или равна полю (Warning Composite Temperature Threshold) (WCTEMP) и ниже критического порогового значения температуры (CCTEMP) в структуре идентифицирующих данных контроллера.

Критическое время композитной температуры

Контроллер имеет время в несколько минут, а температура композитной температуры (Composite Temperature Threshold) повышается до критического значения (CCTEMP) в структуре идентифицируемой структуры данных контроллера.


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

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

У Intel есть накопитель P4618 6.4 TB, который представляется системе как два накопителя по 3.2 TB. Аналогичное встречается и среди жестких дисков. Накопители Seagate с технологией MACH.2 — это два диска, «заключенные» в одном корпусе и объединенные единым контроллером.

Контроллер — достаточно сложное устройство, которое в зависимости от предназначения диска выполняет различные задачи по управлению данными. Например, базы данных часто требуют от накопителя запись непосредственно в энергонезависимую память, минуя кэш, и в этом случае серверный SATA SSD будет быстрее, чем пользовательский NVMe. Из-за большой вариативности контроллеров не будем вдаваться в детали конкретных устройств, а поговорим об общих принципах работы современного твердотельного накопителя.

Особенности записи


Блоки и страницы в NAND-памяти. Источник
Хранилище твердотельного накопителя состоит из множества полевых транзисторов, соединенных друг с другом. При таком подходе чтение и запись выполняются страницами данных, размер которых обычно 4 КиБ. Таким образом, изменение одного бита на диске приводит к необходимости перезаписать всю страницу данных. Эта проблема называется усилением записи (Write Amplification).

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

  1. Чтение данных из страницы в буфер.
  2. Изменение данных в странице.
  3. Очистка страницы данных.
  4. Запись обновленных данных из буфера.

Износостойкость


Выравнивание износа. Источник
Современные накопители построены на базе ячеек TLC, ресурс которых в разы меньше, чем у накопителей с ячейками SLC и MLC. Если какая-то программа в ОС будет постоянно перезаписывать маленький файл, а контроллер будет «наивно» обновлять одну страницу данных, то вскоре блок с этой страницей исчерпает ресурс. Исчерпание ресурса будет отображено в показателях накопителя, что неизбежно приведет к беспокойству системного администратора.

Во избежание сильного износа единичных блоков накопителя применяются технологии выравнивания износа (Wear Leveling). При этом обновление данных выполняется без очистки страницы накопителя и выглядит так:

  1. Чтение данных из страницы в буфер.
  2. Изменение данных в странице.
  3. Запись обновленных данных из буфера в «чистую» страницу.
  4. Старая страница помечается как «грязная».

Балансировка износа

В каком-то смысле производитель накопителей обманывает нас дважды. Первый раз использует десятичные приставки вместо двоичных: 480 ГБ — это 447 ГиБ. А второй раз, когда фактический объем накопителя больше, чем доступно пользователю. Часть объема зарезервирована производителем для внутренних нужд контроллера. Такой резерв называется запасной областью (spare).

Таким образом, у контроллера всегда есть немного свободного пространства, которое может быть использовано для внутренних процессов. Хотя точных данных нет, в различных источниках утверждается, что для контроллера резервируется от 7 до 28 % объема накопителя.

Увеличение объема зарезервированной области уменьшает доступный объем, но чаще всего повышает производительность диска. Для увеличения spare-области достаточно оставить часть накопителя неразмеченным. Однако если хочется экстрима и сделать все «по уму», то можно уменьшить объем видимого пользователю пространства через ключ -N утилиты hdparm.

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


Процесс «сбора мусора». Источник
Помимо балансирования износа, в контроллерах в фоновом режиме часто проходит процесс «‎сбора мусора» (garbage collection). В ходе него с нескольких блоков собираются актуальные страницы и помещаются в один блок. Затем исходные блоки очищаются, так как в них не осталось страниц с данным.

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

Для решения этой проблемы в каждом из протоколов есть команда, позволяющая уведомить контроллер об удалении файла. Для NVMe — это deallocate, для SATA — TRIM, а для SCSI — unmap. Суть каждой их этих команд одинакова: пометить страницы с удаленным файлом как «грязные».

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

Это легко подтверждается с помощью эксперимента. Проводим Secure Erase для накопителя и запускаем тесты на случайное чтение с глубиной очереди 64. Затем «забиваем» накопитель с помощью последовательной записи, желательно дважды. И повторяем тесты.

Размер блока Чистый Забитый
4M 3400 MiB/s 3376 MiB/s
8M 3399 MiB/s 3336 MiB/s

В наших тестах использовался SSD-накопитель Micron 7300 1.92 TB, подключенный по PCIe 3.0 x4. Третья версия PCI Express по четырем линиям способна пропускать 3940 МБ/с или 3757 МиБ/с. Мы, конечно, не достигли предела, но надо полагать, это из-за накладных расходов на протокол NVMe. Тем не менее, видно, что чтение с диска без данных «упирается» в предел 3400 МиБ/с. После заполнения диска на 15% результаты тестов стали хуже.

Несмотря на то, что контроллер накопителя всегда пытается сделать как лучше, иногда системному администратору стоит взглянуть на показатели диска своими глазами.

Показатели

Вне зависимости от интерфейса накопителя SSD имеют набор показателей состояния, которые могут быть считаны системным администратором. Для SATA-накопителей используются показатели S.M.A.R.T., которые не стандартизированы. Отсутствие стандарта приводит к появлению различных трактовок одного показателя.

Рассмотрим вывод утилиты smartctl на примере Intel S4510.


Для нашего диска интересны следующие параметры:

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

Показатели S.M.A.R.T — это особенность протокола SATA. Для NVMe-накопителей есть NVMe log, который также считывается программой smartctl. Аналогичный вывод можно получить с помощью команды nvme smart-log.


В выводе NVMe накопителя меньше непонятных показателей, но все равно есть место разночтениям. Легко предположить, что параметр percentage_used отвечает за объем занятого пользователем пространства на диске, но это не так. Этот параметр эквивалентен Media_Wearout_Indicator и обозначает износ накопителя.

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

Перепрошивка

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

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

Хотя NVMe можно перепрошить через команды fw-download и fw-commit, чаще всего обновление прошивки производится через утилиты, предоставляемые производителем накопителя. Во избежание потенциально деструктивных действий мы не будем публиковать точные команды, а порекомендуем обратиться к официальной инструкции от производителя.

Заключение

Контроллеры накопителей — сложные устройства, которые управляют не менее сложными процессами, которые проходят внутри твердотельных накопителей. Мы рассмотрели только самые интересные процессы в общих чертах.

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

На примере твердотельного NVMe PCIe накопителя Intel SSD 600p (SSDPEKKW256G7X1) рассмотрим команды SMART.
S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
Смотрим с помощью утилиты CrystalDiskInfo:
Всего хост-чтений/записей: это объем данных, записанных операционной системой.



Context Navigation

Table of Contents

About NVMe

VM Express, NVMe, or Non-Volatile Memory Host Controller Interface Specification (NVMHCI), is a logical device interface specification for accessing non-volatile storage media attached via PCI Express (PCIe) bus. Some links related to the standard and vendor-specific implementations provided below:

Smartmontools NVMe support

Smartmontools supports NVMe starting from version 6.5. Please note, that currently NVMe support is considered as experimental. Currently implemented features:

  • Basic information about controller name, firmware, capacity ( smartctl -i )
  • Controller and namespace capabilities ( smartctl -c )
  • SMART overall-health self-assessment test result and warnings ( smartctl -H )
  • NVMe SMART attributes ( smartctl -A )
  • NVMe error log ( smartctl -l error[,NUM] )
  • Ability to fetch any nvme log ( smartctl -l nvmelog,N,SIZE )
  • The smartd daemon tracks health ( -H ), error count ( -l error ) and temperature ( -W DIFF,INFO,CRIT )

Currently NVMe support is implemented on Linux, FreeBSD, NetBSD, Windows and OSX. Details about supported version/driver combinations are provided in the next section.

NVMe support in the different OS

NVMe pass-through support of USB to NVMe br >

Sample smartctl output

Sample smartctl -x output:

Development notes

Development and debugging could be performed using ​ QEMU fork which can emulates NVMe device with most of the features supported, including SMART log pages, namespaces, etc. Tested with Linux and FreeBSD, full list of the options could be found in the ​ source code. The NVMe emulation in the ​ upstream version of QEMU (2.7.0) is still more limited (single namespace, no log pages).

​ VirtualBox 5.1.0 or later also provides basic NVMe emulation.

See list of the NVMe related tickets if you want to improve smartmontools NVMe support.

Great people share their wisdom without asking for anything in return…


Apple isn’t sharing any information about their SMART API’s so I had to dig a little and this is the first result (spoiler alert) from my hack:

Here is an older one from my MacBook Pro:

The temperature on my MacBook Pro is lower. Only 22 °Celsius. I was also unpleasantly surprised by the fifteen ‘Unsafe Shutdowns’ on it. This has to be a driver issue. Never had a single freeze, lockdown or sudden reboot.

The high number of ‘Unsafe Shutdowns’ on the hack is easily explainable. As you know, I do a lot of testing and then things can go wrong. And they do go wrong with a couple of beta kernel drivers.

Share this:

Like this:

Related

26 thoughts on “ Apple NVMe SMART Monitor Under Control… ”

I have SMART status unavailable for my disks in system information, although I’ve set it in BIOS and can access is via third party software (HWMonitor).

What could be the reason? Is there a patch for it (DSDT or kext)?

No idea what this may be. Never seen it myself. Anyway. It should work in Windows. The problem is OS X. Are all your drives NVMe?

What model of MacBook Pro 2016 do you have? And what Apple SSD model?

We have two, but the one that I use is the 2.7GHz MacBookPro13,3 with 512GB Samsung (APPLE SSD SM0512L) with CXS6AA0Q firmware and AMD with 4GB.


It looks like Samsung-based NVMe SSDs in MacBook’s have better NVMe SMART support, because my APPLE AP0256J SSD doesn’t support Error Log for example, also it has different “available spare threshold”.
BTW IMHO some values from your first listing look strange – Data Units Written = 214 TB? Hm…

The durability goes up with the capacity and I believe that all Apple SSD’s support error logs, but nobody knows how to read it.

Ah right. I see. The thousands separators are were missing. Thanks for pointing that out.

Model Number: APPLE SSD AP0256J
Firmware Version: 12.93.01
Total NVM Capacity: 0
Unallocated NVM Capacity: 0
Controller ID: 0
Number of Namespaces: 2
Namespace 1 Size: 251,000,193,024 [251 GB]
Namespace 1 Capacity: 251,000,193,024 [251 GB]
Namespace 1 Utilization: 251,000,193,024 [251 GB]
Namespace 1 Formatted LBA Size: 4096
Firmware Updates: 1 Slot
Maximum Data Transfer Size: 256 Pages
Warning Comp. Temp. Threshold: 0
Critical Comp. Temp. Threshold: 0
Namespace 1 Features (0x00): 0
Log Page Attributes: 0
Error Log Page Entries (max): 0

—-
1 unsafe shutdown was real unsafe shutdown

@supersonic, I am curious about your readings above. You have (had) only 10 hours of power-on, yet 1.5TB of data written and only 86% remaining lifespan of the SSD.
I have a MacBook Pro (2017) 13 that is one week old, with the following readings:

My drive is 4x bigger than yours (I have 1TB) and so I think my readings are in the same ballpark.

Here’s my question: Are these for real? I am certain I have not done stuff in one week of ownership that amounts to this much SSD use! How old was your MacBook when you made these readings? Which model do you have?

Thanks a lot in advance.

@pejx72
Sorry for the delay with response.

> How old was your MacBook when you made these readings?
About 2 weeks.

> Which model do you have?
MacBook Pro 13″ 2016 (w/o TouchBar), purchased Jan 20, 2017

Когда-то само понятие «SSD» было неразрывно связано с компанией Intel, фактически создавшей в свое время отрасль. Даже ADATA, Kingston и ряд других «конкурентов» не обладали ничем, а просто покупали модели, клеили на них этикетки и перепродавали. Но затем компания начала утрачивать позиции… Недавно она выпустила наследников Intel 540s и 600p – Intel 545s и 760p. Мы выясним возможности последнего.

Недорогие RTX 3060 - крипта растет, а видяхи дешевеют

MSI RTX 3070 сливают дешевле любой другой, это за копейки

Программная часть

В SMART накопителя присутствует 15 параметров:

450x692 117 KB. Big one: 674x1036 67 KB

реклама

  • 03 – Available Spare – остаток резервной области в процентах (исходно – 100%), используемой как подменный фонд, для замены вышедших из строя ячейки;
  • 04 – Available Spare Threshold – минимальное значение Available Spare, при котором следует озаботится выводом накопителя из эксплуатации (в данном случае – 10%);
  • 05 – Percentage Used – процент износа (исходно – 0%);
  • 06 – Data Units Read – объем прочитанных с массива флеш-памяти данных (изменение на единицу соответствует 512 байт данных);
  • 07 – Data Units Written – объем записанных в массив флеш-памяти данных (изменение на единицу соответствует 512 байт данных);
  • 08 – Host Read Commands – объем прочитанных по интерфейсу PCIe данных с накопителя (изменение на единицу соответствует 256 байт данных);
  • 09 – Host Write Commands – объем записанных по интерфейсу PCIe данных на накопитель (изменение на единицу соответствует 256 байт данных);
  • 0B – Power Cycles – количество включений;
  • 0C – Power On Hours – количество отработанных часов;
  • 0D – Unsafe Shutdowns – количество неожиданных отключений питания.

Накопитель поддерживается фирменным программным пакетом Intel SSD ToolBox с прекрасно переведенным на русский язык интерфейсом.

Читайте также: