Как стать автором
Обновить

Тестирование SSD на надёжность: 3dnews vs JEDEC vs здравый смысл. Где правда, брат?

Время на прочтение 13 мин
Количество просмотров 50K
Всего голосов 61: ↑58 и ↓3 +55
Комментарии 56

Комментарии 56

3dnews сознательно взяли ту же методику, что и TechReport.com. В их статье об этом написано.

Тут скорее связываться нужно с автором из TechReport.com или автором Anvil's Storage Utilites. Нет, с ними не связывался.
Ещё интереснее было бы послушать разработчиков ПО контроллера диска. Без знания алгоритма его работы любые тестирования — гадание на кофейной гуще.

Например тест 3DNews показывает что диск и половины заявленного объёма не запишет, а производитель даёт гарантию 5 лет или 100 Тб. Видимо у них свои тесты.

Но сильно сомневаюсь в их желании беседовать на эту тему.
Иногда выгодно дать большую гарантию, несмотря на то, что диск на неё не рассчитан. Исходя из того, что мало кто обратится, т.к. технологии устареют, будет лень, обычные юзеры редко используют на полную катушку…
А где у них такое было? Наоборот на 3DNews типичные результаты тестирования получались в разы иногда больше чем на порядок выше заявленных производителями ресурсов.

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

P.S.
Спасибо inetstar за статью. Само собирался на эту тему писать, даже кусочки из собственных же тут оставленных комментариев по теме в черновик собирать начал. Но тут вы практически «все написали за меня».
Уважаемый Mad__Max,
А где у них такое было? Наоборот на 3DNews типичные результаты тестирования получались в разы иногда больше чем на порядок выше заявленных производителями ресурсов.
Это написано не в самой статье, а в результатах тестирования
Выносливость новой версии Western Digital Blue 3D NAND оказалась драматически низка: этот накопитель не только не смог перенести запись заявленного в условиях гарантии объёма, но и установил новый антирекорд надёжности – 82 Тбайт.
Значит комфорт не всем дискам одинаково полезен?
В этой статье хорошо описывает как раз почему — очень уж «комфортные» условия работы у дисков в таких тестах по сравнению с реальными условиями эксплуатации.
Вот и мне интересно почему. Почему он умер в таких комфортных условиях? И сколько реально проживет согласно приведенных выше поправок к методике тестирования?

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

Значит комфорт не всем дискам одинаково полезен?

Вы исходите из того, что ресурс ssd — это некоторая строго детерминированная величина, во время как, несколько я понимаю, это вероятностная характеристика. Просто на тест попался неудачный экземпляр, да и всё.
Делать какие-то выводы о надёжности модели можно лишь при достаточном объёме выборки (это видно, например, по статистике backblaze, где у небольших групп дисков регулярно случаются неожиданные флуктуации вычисленного afr)

В серверах не требуется такое долговременное хранение в отключенном состоянии
Действительно ли срок хранения зависит от того, включен ли накопитель?
Ну от температуры допустим понятно. Непонятно, есть ли зависимость от состояния включено/выключено. Накопитель производит регенерацию содержимого ячеек? В этом случае должно постоянно проводиться стирание/запись (с соответствующим ростом показателей в смарте). Ведь просто от включения накопителя утечка с затвора сама по себе не прекратится (максимум сменит направление).
Накопитель производит регенерацию содержимого ячеек? В этом случае должно постоянно проводиться стирание/запись (с соответствующим ростом показателей в смарте).
Контроллер во включенном состоянии периодически «тасует» данные, чтобы избежать неравномерного износа памяти. Этот процесс обеспечивает и обновление уровня заряда ячеек.
Это если данные постоянно перезаписываются. А если нет?
Тогда должен быть очень хороший контроллер, который будет отслеживать частые чтения + RAM-буфер для кеширования.
Извините, не понял, что контроллер должен будет делать с отслеженными чтениями?
Он будет перезаписывать ячейки зачитанные почти до потери разряда данными.
Если вы иногда отправляетесь в реально длительные путешествия, а накопитель в это время не используется, то советую оставаться в рамках паспортного ресурса, по истечении которого менять накопитель.

Т.е. если накопитель просто лежит на полке — он изнашивается? Как так?
Он не изнашивается, но может потерять информацию из-за утечки электронов из плавающих затворов.
Может стать нечитаемым, если пролежит слишком долго.

не изнашивается, а теряет информацию
электроны утекают из затвора и в какой-то момент заряд становится таким, что при чтении получится не тот бит, который был при записи
чем выше температура, тем быстрее происходит деградация
изношенные ячейки теряют заряд быстрее новых

Тогда просто перезаписать заново — и можно пользоваться дальше. Разве это повлияет на дальнейшую «износостойкость» ячеек?
Если сбросится область диска, где была служебная информация, то диск придётся нести в гарантию выкидывать.
В статье 3DNews, которую вы обсуждаете, есть ссылка на спецификацию JEDEC
Иными словами, если речь идёт о новом SSD, то данные на нём в выключенном состоянии могут храниться годами (при обычном диапазоне температур). И лишь когда речь заходит о накопителе, который уже выработал установленный производителем ресурс, указанные в спецификации «сроки хранения» начинают приобретать какой-то смысл. То есть, 52 недели (год) – это тот минимальной период времени, в течение которого обычный потребительский накопитель обязан по спецификации сохранять данные в выключенном состоянии после того, как он уже выработал весь определённый в спецификациях ресурс.

Они ошибаются? И вас есть инфа от производителей что жизненно важная для диска «служебная информация» хранится в ненадежной памяти? Логичнее хранить служебную информацию в контроллере, его память гораздо надежнее.

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

Что значит определение «паспортный ресурс»? Объём данных, на запись которого производителем рассчитан диск? Тогда совсем непонятно как перерывы в использовании окажут влияние на то, сколько данных можно записать после окончания «паспортного ресурса».

Меня, как похоже и автора вопроса, очень интересует такой момент — после включения питания заряд в ячейках, потерянный при хранении, восстановится? И что мешает ему теряться при наличии питания? Поясните пожалуйста.
То есть, 52 недели (год) – это тот минимальной период времени, в течение которого обычный потребительский накопитель обязан по спецификации сохранять данные в выключенном состоянии после того, как он уже выработал весь определённый в спецификациях ресурс.


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

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


Это при условии, что контроллер обладает такой памятью. Экономически это будет дороже. Почему-то в процессоры не встраивают, как правило, такую память.

Тогда совсем непонятно как перерывы в использовании окажут влияние на то, сколько данных можно записать после окончания «паспортного ресурса».


Мысль была в том, что если диск рассчитан на 50ТБ, а на него записали 200ТБ, то надолго такой винт без питания лучше не оставлять. Он может потерять всю информацию.

Меня, как похоже и автора вопроса, очень интересует такой момент — после включения питания заряд в ячейках, потерянный при хранении, восстановится?


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

И что мешает ему теряться при наличии питания?


При массированном чтении одной ячейки (сотни тысяч раз) заряд утекает.
Периодическая перезапись, которую делает сборщик мусора или иные алгоритмы.

У нового диска срок хранения заряда примерно равен гарантии или несколько выше.
«Мысль была в том, что если диск рассчитан на 50ТБ, а на него записали 200ТБ, то надолго такой винт без питания лучше не оставлять. Он может потерять всю информацию.»
Вот теперь понял мысль. Спасибо!
«При типичной температуре 50℃ эксплуатации под нагрузкой накопитель должен обеспечивать 58 недель ≈ 1 год хранения данных в отключенном состоянии при 25℃.»

Вопрос: если накопитель находится во включенном состоянии, то заряд не утекает? У меня сложилось впечатление, что при записи данных, в ячейки либо загоняется определённое количество электронов либо сливается всё (для простоты возьмём SLC). И далее ячейка держит этот заряд, а, поскольку затвор не «герметичен», заряд утекает. И независимо от того, есть ли напряжение на контроллере или нет.

Таким образом вопрос сводится скорее к «как происходит рефреш в ячейках?» — как в DRAM, с некоторой периодичностью или методом «очистить блок, записать заново»?
Думаю, этот процесс совмещён с борьбой против неравномерного износа памяти. Т.е. контроллер периодически тасует данные, чтобы не допустимть ситуации, когда, упрощённо говоря, где-то в одном месте протрётся «дырка», после чего весь накопитель можно будет выкинуть. Заодно и рефреш делается.
Думаю, этот процесс совмещён с борьбой против неравномерного износа памяти. Т.е. контроллер периодически тасует данные, чтобы не допустимть ситуации, когда, упрощённо говоря, где-то в одном месте протрётся «дырка», после чего весь накопитель можно будет выкинуть.

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

В итоге в DR лабораториях частые гости SSD которые были заполнены большим количеством статичных данных и в активной ротации блоков принимало участие слишком малое число блоков отчего и возник износ отдельных областей NAND памяти.

Кроме этого в АТА стандарте как-то не особо предусмотрена коммуникация ОС и SSD на предмет того, что грядет в ОС (например планируемое отключение). В связи с чем самовольные перезаписи в неудачные моменты — это дополнительные риски отказа устройства, которые заметно выше рисков получения нечитаемых данных из-за утечек зарядов.
После нескольких сот тысяч чтений заряд в любом случае теряется. Поэтому страница очищается, а данные записываются в другое место.

Не факт, что это реализовано во всех ссд. Думаю, что при активном сборщике мусора подобные записи происходят сами по себе.
После нескольких сот тысяч чтений заряд в любом случае теряется.
Исходя из чего вы решили что он теряется при чтении «в любом случае»? И откуда данные про «несколько сот тысяч»?

Просто интересно, насколько я знаю, в микроконтроллерах используется подобная электрически перепрограммируемая память для прошивки и хранения данных. И без каких либо «обновлений» там годами производится несколько «сот тысяч чтений» в секунду. И ни один известный мне производитель не устанавливает ограничение на число чтений. Только на циклы стирание-запись и хранение.
EEPROM — это совершенно другая память.
Везде, где для хранения информации используются электроны в плавающем затворе, есть этот феномен. Изучайте. А вот научная работа на эту тему. Там говорится, что после 50 000 чтений из одной ячейки уже данные теряются. Умные контроллеры с этим борются, перезаписывая информацию, применяя контрольные коды, схемы а-ля рейд.

Исходя из чего вы решили что он теряется при чтении «в любом случае»?

Ключевое слово для Гугла — read disturb.
Накопитель хранит для каждого блока счётчик считываний, и при превышении некоторого порога переносит данные в другое место.
На форуме ixbt проводили тесты (многократно вычитывали медленночитающиеся области, в какой-то момент скорость восстанавливалась), так что этот механизм присутствует как минимум в некоторых ssd (скорее всего, во всех или почти всех).

«При типичной температуре 50℃ эксплуатации под нагрузкой накопитель должен обеспечивать 58 недель ≈ 1 год хранения данных в отключенном состоянии при 25℃.»

Вопрос: если накопитель находится во включенном состоянии, то заряд не утекает?
Год при условии если накопитель уже выработал свой ресурс. Бытовой накопитель.

А что ему мешает утекать при поданном питании? Контроллер, когда ему нефик делать, многократно читает и сравнивает записанные данные. При частичной потере заряда чтение нестабильное. Дальнейшие действия на его усмотрение. Питания нет — проверять некому… я так думаю.
<Таким образом вопрос сводится скорее к «как происходит рефреш в ячейках?» — как в DRAM, с некоторой периодичностью или методом «очистить блок, записать заново»?
Думаю с некоторой периодичностью методом «очистить блок, записать заново». А разве есть другие варианты?
Лирическое отступление.
Насколько я понимаю, всё написанное в статье относится по большей части к накопителям, выработавшим паспортный ресурс. Ну или вплотную к этому приблизившимся. Для типичного случая эксплуатации SSD в пределах заявленного ресурса ничто из этого не актуально.
В самом деле, рядовой потребитель, приходя в магазин за SSD, понятия не имеет ни о тестах на 3dnews ни, тем более, об утечке электронов из ячеек:) Возможно, он что-то где-то слышал об ограниченности ресурса такого накопителя, но не факт. Так же, нигде в приложенных к диску бумажках ничего не написано о возможности потери данных в случае длительного отсутствия питания на диске. За последнее, впрочем, не ручаюсь, не читал полностью:) Он знает, что гарантия на накопитель — столько-то лет. Те, кто полюбознательнее прочитают еще про TBW. Ну а фирменная утилита, если что не так, подскажет что делать.
Возвращаясь к теме тестов выносливости — посмотрите на цифры. В 99% процентах случаев, в домашних условиях, пользователь не то что выработает паспортный ресурс за срок гарантии, а даже не приблизится к этому. Я уже несколько лет смотрю смарты побывавших у меня дисков и вижу, что это так и есть. Где-то попадалась цифра и у меня так же получалось, что среднестатистический пользователь пишет на SSD около 20 гигов в день. Считайте сами… Так что все эти петабайты в тестах не более, чем повод гордиться производителю. И, будь у меня Самсунг 850-й про и я каким-то образом умудрился бы выработать паспортный ресурс, то вряд ли меня бы сильно вдохновляло то, что в тесте 3dnews на него записали 7 петабайт. Никто ведь не обещает, что то, выдержал один экземпляр, должны выдержать все остальные…
рядовой потребитель, приходя в магазин за SSD, понятия не имеет ни о тестах на 3dnews

Мне все уши этими тестами прожужжали. Почти в каждой статье (или в комментах к статье) про SSD на Хабре есть ссылка на эти тесты.

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

Не совсем так. Дело в том, что паспортный ресурс определяется (методика JEDEC) при заполненности диска в 38%. Если же забить диск на 95% и качать 4К-торренты, то WAF будет около 9.7, что примерно в 6.5 раз превышает WAF при тестировании паспортного ресурса.

Приведёт ли это к проблемам — не знаю. Возможно. Во всяком случае скорость точно упадёт.

Наверное, это звучит странно, но по моему опыту торренты существенно быстрее качаются на SSD)
Что ж тут странного, SSD на то и есть, чтобы быть быстрее HDD. Железный конь пришел на смену крестьянской лошадке (с) Но по моим наблюдениям, тормоза при скачивании торрентов на hdd имеют место только в начале, когда клиент резервирует место на диске под скачиваемые файлы. Потом же никаких затыков нет, раскидать 10-11 МБ/с (при 100 мбит/с канале) на несколько файлов под силу даже hdd) А вот если канал будет мегабит на 500, тогда не уверен, что он справится.

Возвращаясь к WAF и TBW. В смарте SSD есть всем известный параметр «Total host writes», насколько я понимаю это и есть тот параметр по которому отслеживается ресурс. Так вот, в этой цифре учтен WAF или это тупо объем данных, переданных накопителю операционкой для записи? Если, например, я в одном случае отправлю туда 100Gb с WAF 1, а в другом с WAF 30 — на сколько увеличится показатель? Если не учитывает, то получается ерунда, если учитывает, то тестирование на 3dnews вполне корректно и показывает физическую живучесть памяти SSD.
У 3dnews тест построен так, что WAF ≈ 1. Поэтому Total Host Writes в случае 3dnews будет верным по-любому.
Мне все уши этими тестами прожужжали. Почти в каждой статье (или в комментах к статье) про SSD на Хабре есть ссылка на эти тесты.

Вы точно не рядовой потребитель) Под рядовым я подразумеваю пользователя т.н. «игрового компьютера», в котором всё светится разными цветами и для которого выпускают SSD с подсветкой. Недавно видел какой-то обзор, среди недостатков SSD было указано «недостаточно гибкое управление подсветкой»))) Ну не бред?..
С торрентами есть проблема даже на 100 мбит, если много раздач качаеся. Тогда диск начинает трещать. Если чел может себе позволить 500р тратить в месяц, то 500мбит — это в Москве сплошь и рядом.
Почти во всех торрентах от 10 ГБ размер куска от 4 МБ, в крайнем случае 2 МБ. 100 Мбит/с позволит качать где-то 3 таких куска в секунду.

Обычный диск при этом может иметь до 100 IOPS, что намного выше 3 кусков.

Но с SMR-дисками всё сложнее, я потом напишу статью.
The most common sizes are 256 kB, 512 kB, and 1 MB.

Источник.

Если качаются параллельно 2 куска, то головки диска прягают от одного куска к другому и получается трэш. У типичного ноутбучного HDD размер сектора всего 512 байт.

У меня когда файлов 5 загружались (сериал, каждая серия ≈750MB) уже трешить начинало на HDD Seagate 2TB sshd.
Разве в торрент клиенте нет буфера в памяти, чтобы сгладить эти прыжки?
Если файл большой и скорость высокая, то любой буфер заканчивается очень быстро.
Буфер позволяет не скакать туда-сюда головкам диска на каждый блок и писать непрерывно — у меня десятки раздач с диска и я не слышу треска головок постоянного.
У меня головки трещат при массированных закачках, а не на раздачах.
А какая разница — читать с диска данные и писать на него для магнитных дисков разница не такая уж существенная.
У меня не трещали и при скачивании — буферизация мюторрента видимо хорошо работает. Ну или диск у меня очень тихий
Это было на ноутбучном винте.
Разница огромная: у 99% пользователей интернета канал хуже по скорости, чем у меня (500 Мбит). Поэтому они не могут так резво скачивать у меня, как я у них.

В теории, конечно, могут, но на практике с таким не сталкивался.

Может дело и не в канале. Я не припомню случая, чтобы в момент когда я качаю, скорость отдачи была выше, чем скорость скачки.
Так ведь речь про скачивание, а не про раздачу.
Разница крайне незначительная — скорость дисков достигла 150 МБайт/с — мало у кого торренты с такой скоростью скачиваются
150 мегабайт это, конечно, редкость. А вот 30 потоков разом, в сумме мегабайт 20 в секунду, вполне обычная ситуация. При этом скачиваются блоки совершенно хаотично, так что вместо линейной записи, где HDD способны на 150 (и больше) мегабайт получается случайная, где хорошо если пара мегабайт будет.
20 Мбайт — то есть не меньше 200 Мбит канал — большая редкость много еще где и обычной ее трудно назвать. Ну и 30 потоков — легко сначала в буфер летят, потом на диск линейно пишутся.
А вот и нет. Если 30 потоков, то буфер заполняется кусочками из 30 потоков, а потом всё пишется в 30 разных кусков (если ФС нефрагментирована), или в 300, если фрагментирована.

И ещё всё зависит от устройства торрент-клиента. В нём может принудительно вызываться запись на диск минуя буфера при завершении скачивания торрент-блока.
The most common sizes are 256 kB, 512 kB, and 1 MB.
Возвращаясь к теме тестов выносливости — посмотрите на цифры. В 99% процентах случаев, в домашних условиях, пользователь не то что выработает паспортный ресурс за срок гарантии, а даже не приблизится к этому. Я уже несколько лет смотрю смарты побывавших у меня дисков и вижу, что это так и есть.
А у меня другая ситуация, например:
habr.com/ru/post/476414

Так у вас Linux, плюс специфическая файловая система. Мне думается, вы как раз из этого 1%. )

Контроллеру, чтобы записать 1 изменённый кластер приходится вначале считать всю аппаратную страницу NAND (которая может достигать сотен килобайт в размере), изменить 4КБ, а потом всю её записать. Если размер страницы NAND составляет 64КБ, то мы имеем усиление записи в 16 раз.

Контроллер как правило оперирует блоками, которые в свою очередь состоят из группы NAND страниц (64,128 и т.п.). Размеры страниц в NAND микросхемах обычно все же не сотни килобайт, а 528, 2112, 4224, 4320, 8576, 8640, 8832, 8896, 9216, 17664, 18048, 18336 и др. Малые размеры справедливы для старых SLC микросхем, для современных TLC размеры поболее. Такие странные размеры потому, что кроме пользовательских данных необходимо хранить служебные данные (ECC, флаги, номера блоков, счетчики записей и т. п.).

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

Для того, чтобы SSD не превращался в коматозника при записи мелких объектов применяется буферизация, а также вводится понятие блок-апдейтов. Это блоки в которых записываются отдельные страницы для разных блоков, которые точечно накладываются на транслируемое логическое пространство.

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

Если производитель догадался сделать первые несколько ГБ диска (где находится битовая карта диска, FAT и прочие метаданные) работающими в режиме SLC (или кеширует их в буфере RAM),

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

В буфер попадает все то, что часто используется. Но оно все равно оперативно пишется в NAND. Либо целиком блоками, либо блок-апдейтами. Если бы просто держать данный в RAM и не особо торопиться с обновлением их в NAND, то первое внезапное отключение питания приводило бы к катастрофической потере данных (в первую очередь серьезные потери в метаданных файловой системы). Микропрограмма SSD при буферизации оперирует определенными LBA диапазонами, которые часто запрашиваются и на основании этих запросов обычно выбирает, что подольше задержать в ОЗУ SSD.

P.S. простите, за слишком скомканный комментарий и сильное упрощение.
Информацию о реальном размере NAND-страниц добавил в статью в пункт 2.1 со ссылкой на ваш коммент.
Господа, меня лишь один вопрос волнует. Если накопитель периодически включен, но используется слабо (с него только система грузится), это считается? Или если он будет вхолостую работать, он потеряет записанные на него данные или нет (и почему)?
В вашем случае в течение гарантийного срока на винт данные точно не потеряются.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий