Работает ли выравнивание износа нормально без TRIM?

Независимо от того, идет ли речь о UEFI, телефонах или твердотельных накопителях, Samsung, очевидно, не особенно хорош в реализации стандартов. К сожалению, несколько лет назад я купил твердотельный накопитель Samsung SSD 840 PRO Series для своего ноутбука, которым я пользуюсь с тех пор (это было до того, как была опубликована вся информация об их нестандартных реализациях). Это действительно хороший SSD, за исключением асинхронной обрезки, которая не работает должным образом, то есть она удаляет данные, которые не должна удалять. Из-за этого Linux не использует Trim на нем, поэтому данные людей не теряются (что произошло до того, как они отключили Trim на некоторых моделях твердотельных накопителей Samsung).

Потому что я довольно часто использую этот SSD: насколько сильно отключенная функция Trim влияет на способность SSD выравнивать износ?

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

Эта статья в Википедии гласит:

Каждый производитель дисков определяет набор атрибутов и устанавливает пороговые значения, превышающие которые атрибуты не должны проходить при нормальной работе. Каждый атрибут имеет необработанное значение, значение которого целиком зависит от производителя привода (но часто соответствует количеству или физической единице, например градусам Цельсия или секундам), нормализованное значение, которое варьируется от 1 до 253 (где 1 представляет наихудший случай и 253, представляющий лучшее) и наихудшее значение, которое представляет самое низкое зарегистрированное нормализованное значение. Начальное значение атрибутов по умолчанию - 100, но оно может варьироваться в зависимости от производителя.

Прежде всего: насколько уместно это, учитывая, что его заголовок "Известные атрибуты SMART ATA"? Это относится к твердотельным накопителям, которые подключены через SATA?

Почему значения варьируются от 1 до 253? Что с 0, 254 и 255? Используются ли значения выше 100?

SMART-данные моего SSD выглядят так (согласно gnome-disks):

Нет значений больше 100.

У меня много внешних жестких дисков, но только один SSD (который является внутренним), поэтому я не могу сравнить его данные SMART с данными других SSD, для которых я знаю, что их использование отключено. Но я предполагаю, что необработанное значение счетчика износа моего SSD, равное 245, означает, что ячейки памяти SSD были записаны в среднем в 245 раз. Пожалуйста, скажите мне, правильно ли это, число считываний тоже, просто ли оно в 245 раз превышает указанное пространство хранения (256 ГБ) или указанное пространство хранения + зарезервированное пространство хранения (для замены неисправных частей).

Означает ли нормализованный уровень износа моего твердотельного накопителя 93, что это почти две трети его срока службы ({1, ..., 253}) или что он довольно хорошо ({1, ..., 100})?

И последний вопрос: почему Linux отключает Trim вместе с этими твердотельными накопителями, если только асинхронное Trim вызывает потерю данных?

Выход из $ sudo smartctl /dev/sda -a: http://pastebin.com/Prf7NzwN

Связанный вопрос, созданный мной в ответ на обсуждение в комментариях: https://unix.stackexchange.com/questions/333635/enabling-synchronous-trim-only

2 ответа

Решение

Чтобы ответить на основной вопрос, да, но ваш диск страдает от неоптимальной производительности. ( Я разместил данные SMART в GitHub Gist.)

Ваша статистика SMART показывает, что вы записали 21,5 ТБ на диск (всего записано 46248065971 LBA, по 512 байт каждый). Это составляет 86 записей на полный диск для записи на хост (при 256 ГБ необработанного NAND). Однако вы упомянули, что базовый NAND диска был записан более 245 раз. Другими словами, диск записал почти в три раза больше данных, которые вы фактически отправили на диск. Это называется усилением записи.

Чтобы объяснить, что происходит, я собираюсь обобщить часть содержания в другом ответе, который я написал. Флеш-память NAND состоит из серии блоков, каждый из которых содержит несколько страниц. Данные могут быть записаны на отдельные страницы, но должны быть стерты целыми блоками, а страницы, содержащие данные, не могут быть переписаны до тех пор, пока не будут стерты. Чтобы избежать ненужного стирания блоков и перезаписи данных, твердотельные накопители распределяют записи по разным блокам и помечают старые данные как недействительные; накопитель пытается избежать стирания блоков, пока все страницы в каждом блоке не будут помечены как недействительные. Это ломается без достаточного количества свободных страниц, и в этом случае привод вынужден стирать блоки, содержащие действительные данные, и перезаписывать эти данные в другом месте, чтобы освободить место для новых данных. Поскольку это означает, что одни и те же данные записываются в базовую NAND более одного раза, это нежелательное поведение называется усилением записи.

Отсутствие TRIM означает, что диск будет обрабатывать удаленные данные как действительные, уменьшая объем свободного пространства, доступного для диска. Диск в конечном итоге ведет себя так, как будто он полностью заполнен, даже если это не так.

Чтобы ответить на ваш вопрос в том виде, в котором он написан, накопитель должен продолжать правильно изнашиваться, распределяя записи по NAND в максимально возможной степени. Зная Samsung, я был бы очень удивлен, если бы их алгоритмы не делали это правильно на полном диске. Тем не менее, он постоянно переписывает уже записанные данные, что снижает производительность и снижает выносливость. Учитывая, что TRIM недоступен, вам лучше всего предусмотреть избыточное резервирование диска или выделить менее полной (256 ГБ) емкости для разделов (например, 200 ГБ). Тем не менее, вам нужно будет безопасно стереть диск, чтобы это работало, а это значит, что сначала нужно будет выполнить резервное копирование всего, а потом восстановить. Учитывая ограниченную емкость накопителя, я также не уверен, сможете ли вы хоть сколько-нибудь значительно уменьшить размер раздела, не исчерпав себя.


Что касается вашей интерпретации данных SMART:

  • Да, на Samsung и многих других твердотельных накопителях необработанное значение для счетчика выравнивания износа представляет собой среднее число операций записи по всему NAND на диске. Это означает, что NAND вашего диска видел в среднем 245 полных циклов записи. См Samsung SSD "Wear_Leveling_Count" значение.
    • Это основано на сырой емкости NAND, включая любое свободное место.
    • Чтение не засчитывается в это число (если только SSD не должен перезаписывать данные из-за нарушения чтения).
  • Точный диапазон для нормализованных значений зависит от производителя привода, но на большинстве приводов счетчик уровня износа находится в диапазоне от 0 до 100. По оценкам, ваш накопитель имеет около 93% оставшегося ресурса при записи. Большинство других нормализованных значений на этом диске также находятся в масштабе от 0 до 100. (NAND на 840 PRO подходит для 3500 циклов записи, а 245 циклов составляют 7% от этой цифры.)
  • Нормализованные значения атрибутов 254 и 255 считаются зарезервированными и не должны появляться ни на одном диске.

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

Если до того, как блок 4321 был восстановлен, контроллер SSD был проинформирован о том, что нынешнее содержимое сектора 12345 никому никогда не понадобится, тогда контроллер SSD мог бы просто позволить этой информации исчезнуть в эфире при массовом стирании блока. Однако если контроллер SSD не был проинформирован о том, что содержимое блока больше не требуется, тогда контроллеру SSD придется сделать копию блока где-то еще перед массовым стиранием блока 4321. Хотя эта дополнительная операция копирования не приведет к любой вред, кроме времени и энергии, затраченных на его выполнение, а также небольшого износа чипа, который может привести к тому, что контроллер узнает, что ему не нужно беспокоиться о копировании содержимого страницы при восстановлении блока, что улучшит производительность, снизит энергопотребление, и уменьшить износ. Беспроигрышный вариант.

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