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

1051
UTF-8

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

Потому что я довольно часто использую этот 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 ГБ) или указанного дискового пространства + зарезервированное дисковое пространство (для замены неисправных частей).

Означает ли нормализованный уровень износа моего SSD, равный 93, срок службы его почти на две трети () или что он довольно неплохой ()?

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

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

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

0
Можете ли вы опубликовать вывод `smartctl / dev / sda`? (Дезинфицировать серийные номера по мере необходимости.) bwDraco 7 лет назад 0
@bwDraco Я добавил это к вопросу. UTF-8 7 лет назад 0

1 ответ на вопрос

0
bwDraco

Чтобы ответить на основной вопрос, да, но ваш диск страдает от неоптимальной производительности. ( Я разместил данные 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 считаются зарезервированными и не должны появляться ни на одном диске.
Какова мотивация для публикации данных на Github Gist? Избыточность? Я догадался, что он был перезаписан 245 раз из данных SMART на скриншоте. Я понятия не имею, правильно ли это. Можно ли указать ядру включить Trim, но не асинхронный Trim? UTF-8 7 лет назад 0
Gist, как правило, считается лучшим местом для размещения образцов текста, чем Pastebin. Да, ваша интерпретация данных SMART верна. Похоже, я не могу найти информацию о включении только синхронной обрезки. bwDraco 7 лет назад 0
Я думаю, что в новых ядрах Linux на этих твердотельных накопителях разрешено только синхронное усечение (асинхронное или усечение в очереди), но не совсем точно. Какая у вас версия ядра? bwDraco 7 лет назад 0
Я создал [этот другой вопрос] (http://unix.stackexchange.com/questions/333635/enabling-synchronous-trim-only) после того, как вы написали: «Кажется, я не могу найти информацию о включении только синхронной обрезки. " как я и раньше гуглил, и решение проблемы, вероятно, следует обсуждать отдельно от понимания значений SMART. Мой ноутбук работает под управлением Linux `4.4.0-57-generic`. UTF-8 7 лет назад 0
Я заметил, что синхронизация была включена все время, потому что в Ubuntu есть задание cron, которое выполняет `/ sbin / fstrim --all || правда` раз в неделю. Я изменил задание cron, чтобы оно запускалось один раз в день, и освободило место на моем SSD, чтобы у меня всегда было от 25 до 35 ГБ свободного места. Тем не менее, количество записанных LBA с тех пор увеличилось только до 47'336'457'217, что означает, что я написал 557 ГБ, тогда как число выравнивания износа с тех пор увеличилось до 253, что означает, что с тех пор было записано 2048 ГБ SSD. Усиление записи сейчас в 4 раза, а не в 3. Могу ли я что-то сделать с этим? UTF-8 7 лет назад 0
4 дня назад я изменил задание cron, чтобы оно записывало время до выполнения команды обрезки и время после ее завершения в текстовый файл. Выполнение команды каждый раз (довольно последовательно) занимает 35 секунд: https://paste.ubuntu.com/24042979/ Я также проверил, сколько времени занимает команда триммера для возврата, если она выполняется 2 раза подряд. Второй звонок возвращается немедленно. UTF-8 7 лет назад 0
@ UTF-8: усиление записи обычно хуже при случайном вводе / выводе. Кроме того, 25-35 ГБ не так много свободного места; это пространство может быть легко исчерпано (с точки зрения контроллера SSD) во время обычного использования SSD. Если вы не можете освободить больше места, вам нужно будет чаще выполнять TRIM, чтобы убедиться, что на контроллере есть свободное место; изменить его на ежедневный - это хороший первый шаг. Вы также можете запускать `fstrim` вручную после интенсивных задач записи. bwDraco 7 лет назад 0
Постоянные 35 секунд на TRIM являются признаком того, что у вас постоянно заканчивается свободное место на диске. Лучше всего запускать TRIM ежечасно. bwDraco 7 лет назад 0
Теперь я изменил его на почасовой и включил кэш записи для SSD в `gnome-disk`. Примерно 60 прошло с тех пор, как я написал свой вопрос, и я, по-видимому, написал примерно 600 ГБ за это время. Это означает, что около 10 ГБ в день - это больше, чем я предполагал в среднем за день, но только треть места, которое я оставляю свободным. Что вы имеете в виду под «с точки зрения контроллера SSD»? Что только целочисленное значение блоков может быть записано за раз, и счетчик записи LBA не заботится об этом? (Это заканчивается на `17`, что является плохим знаком.) UTF-8 7 лет назад 0
То, что контроллер считает свободным, отличается от того, что ОС считает свободным. Возможно, было бы лучше обсудить это в чате? http://chat.stackexchange.com/rooms/118/root-access bwDraco 7 лет назад 0
Для удобства читателей я добавил в закладки обсуждение чата [здесь] (http://chat.stackexchange.com/rooms/118/conversation/understanding-how-free-space-and-trim-impact-write-amplification ). bwDraco 7 лет назад 0

Похожие вопросы