Производительность диска зависит от температуры
Осенью прошлого года стало известно, что твердотельный накопитель Samsung 840 Evo теряет скорость при чтении старых данных. Записанную более месяца назад информацию можно было прочесть лишь с падением производительности, и компания Samsung вскоре выпустила патч с обновлением прошивки, который был призван решить эту проблему. Тогда было указано, что напряжения для ячеек со старыми данными были откалиброваны неправильно. Как выяснилось позднее, проблема всё равно оставалась, и решить её должно второе обновление, которое периодически перезаписывает старые данные в фоне. Пер Ханссон выяснил, что проблеме деградации подвержены и другие диски Samsung с памятью TLC NAND.
Samsung 840 Evo — это диски от 120 гигабайт до 1 «честного» терабайта, доступные в форм-факторах для подключения по SATA и mSATA. Сразу после появления благодаря агрессивной ценовой политике и неплохим характеристикам они являлись одними из лучших твердотельников для домашнего использования. Спустя некоторое время пользователи начали замечать странное: записанные несколько месяцев назад данные было больше нельзя прочесть на полной скорости. Иногда скорость чтения падала до 30 МБ/с. Но недавно записанные данные всегда читались со скоростью до 500 МБ/с — настолько же быстро, насколько показывает любой бенчмарк, который пишет новый блок информации для теста. Для проявления падения скорости чтения требовалось лишь несколько недель. К октябрю 2014 года ветка с обсуждением на overclock.net растянулась на сотню страниц.
Так полгода назад проявлялась проблема.
Компания Samsung быстро признала наличие проблемы и пообещала выпустить патч. К концу октября вышла специальная утилита как для 2,5-дюймовых накопителей (EXT0CB6Q), так и для подключаемых по mSATA дисков (EXT42B6Q). Программа выполняла два простых шага:
- Обновлялась прошивка диска. Новая учитывала неизбежный сдвиг уровней напряжения, который происходит во всех NAND-ячейках по мере старения. Этот эффект усиливался числом бит, хранящихся в каждой ячейке: в SLC NAND хранится лишь один бит, и можно легко различить два его состояния. В MLC NAND каждая ячейка хранит по два бита, и прочесть их становится сложнее, но количество хранимых данных удваивается. В TLC NAND требуется корректная калибровка сразу восьми уровней напряжения, но объём данных увеличивается ещё в полтора раза.
Как утверждал производитель, в читавший данные алгоритм закралась ошибка, приводившая к тому, что старые данные становилось всё труднее и труднее читать. Скорости чтения старых файлов падали с порядка 500 МБ/с до менее 50 МБ/с — в 10 раз. Обнаружение этой проблемы было затруднено, поскольку обычно бенчмарки для выполнения теста скорости пишут новые данные и немедленно их читают. Для пользователей заметить проблему легко: файлы операционной системы, установленные программы и приложения, документы записываются один раз и используются ежедневно. - Второй шаг полностью перезаписывал все данные на накопителе. Именно поэтому скорость выполнения Performance Restoration Software напрямую зависела от объёмов накопителя и записанной на него информации. Поскольку падению скорости требуется для проявления порядка 8 недель, некоторое время оставалось неясным, работает ли обновление прошивки.
Как выяснилось позднее, первая попытка исправить ситуацию не являлась успешной. Проблема начала проявляться повторно. Компания Samsung начала работу над новой версией прошивки (EXT0DB6Q), но в этот раз вместо изменения алгоритмов для чтения старых данных было решено заложить в накопители периодическую перезапись старых файлов в фоновом режиме. Это решение нельзя назвать элегантным: ячейки NAND-памяти изнашиваются от записи и стирания, поэтому срок службы накопителя упадёт. Но, как показывает исследование издания Tech Report, в современные твердотельники заложен неплохой ресурс.
На момент написания заметки Ханссоном, обновление вышло только для 2,5-дюймовой модели 840 Evo, и обладателям накопителя форм-фактора mSATA приходится проявлять терпение. Также новая прошивка плохо работает с реализацией команды TRIM в семействе операционных систем Linux (прошивка не поддерживает queued TRIM, хотя указывается обратное). Важной деталью последнего обновления является признание наличия изъяна не в прошивке накопителей, а в микросхемах TLC NAND компании Samsung. Вероятно, производитель не может написать такой алгоритм, который смог бы учитывать старение информации в ячейках, поэтому предлагается перезаписывать их.
Samsung утверждает, что проблема есть только в 840 Evo. Но это не так. Существуют и другие версии для встраивания, к примеру, Samsung PM851, который попадает в продукты компании Dell. На форумах пользователи сообщают о таких же проблемах со скоростью чтения. Встраиваемые версии накопителей Samsung также можно встретить в ноутбуке Razer Blade Pro и Microsoft Surface Pro 3. В последнем случае Samsung выпустила обновление прошивки, но позже без объяснения удалила его с сайта.
Также потенциально затрагиваемым продуктом может быть Samsung 845DC Evo, версия накопителя для предприятий, как указано на сайте, специально созданная для «приложений, требующих интенсивное чтение». 845DC Evo использует те же TLC NAND чипы, что и 840 Evo — K90KGY8S7M-CCK0. Вероятно, Samsung выбирает наилучшие компоненты для промышленных твердотельников, поэтому для проявления падения скорости чтения и для начала бурных обсуждений на форумах может потребоваться время.
Наконец, есть модель 840 (без Evo в названии), в которой впервые использовалась TLC NAND-память. На данный момент обновление прошивки для этого накопителя так и не выпускалось. Хотя падение скорости чтения проявляется и здесь, Samsung не признаёт наличие проблемы. Ранее Samsung Germany заявила, что старые данные на 840 читаются медленнее, но позднее в сообщениях компании это опровергалось. Вот ответ «Самсунга» на вопрос издания PC Per.
PC Per: Будет ли обновление прошивки для других твердотельных TLC-накопителей компании Samsung, которые также продемонстрировали эту проблему скорости чтения? Если да, то в какие сроки и для каких моделей выйдут новые версии прошивок?
Samsung: Сообщается об этой проблеме только для твердотельных накопителей 840 Evo.
Ханссон приводит данные, которые он собрал из сообщений пользователей с форумов:
- 840 Evo использует TLC NAND с техпроцессом 19 нм, и для деградации требуется 8 недель.
- Обычный 840 основан на 21-нм TLC NAND, для старения требуется 40 недель.
Ниже представлено падение скорости чтения на модели 840. Тест выполнялся Ханссоном на ноутбуке Lenovo ThinkPad T530 под управлением Windows 7. Plextor M5M mSATA использовался в качестве основного диска, Samsung 840 — в качестве дополнительного. В HD Tune был задан размер блока в 64 КБ. Пустые 40 ГБ не подвержены деградации скорости чтения, поэтому в них достигается пиковая производительность в 375 МБ/с. Можно заметить, что первая часть испытывает особенно сильное проседание скорости чтения — так случилось из-за клонирования обычного жёсткого диска на ноутбуке Compaq, и первые 13 ГБ содержат раздел восстановления. В этих 13 ГБ, которые никогда не перезаписывались, заметен пик двух пустых гигабайт.
Столкнувшись с проблемой чтения 840 Evo, пользователь Techie007 форума overclock.net создал очень полезную утилиту SSD Read Speed Tester, в результате работы которой можно получить график производительности чтения отдельных файлов в зависимости от их возраста. Ханссон также проверил свой 840, и пришёл к выводу, что проблема чтения подтверждается.
Визуализация результата ограничена 99 неделями, а на диске были данные старее. Ханссон построил график в Excel с помощью сырых данных, по оси абсцисс отложены дни. При анализе результатов данных становится ясно, что чем старше файл, тем хуже он читается.
Для сравнения: так выглядит результат Samsung 840 Pro, в котором используются ячейки памяти MLC NAND, хранящие по два бита и требующие калибровки всего четырёх уровней напряжения. На нём нет падения скорости чтения.
Другим интересным наблюдением оказалась зависимость производительности от температуры. Результаты бенчмарка «плавали», и Ханссон выяснил, что это происходит из-за температуры накопителя. Чем теплее 840, тем лучше читаются старые данные. Но подобное может быть справедливо не для всех разновидностей твердотельников — они могут быть откалиброваны под другую температуру. Повышать температуру выше порога тоже нельзя: при перегреве контроллер будет ограничивать скорость передачи данных. Эти явления лишний раз подчёркивают, насколько сложной является коррекция алгоритма чтения.
При 15° C скорость заметно ниже, чем при 40° C.
Чем горячее диск, тем лучше читаются старые данные, но улучшения пиковой скорости чтения нет.
Неизвестно, признает ли Samsung наличие проблемы чтения для других твердотельников с TLC NAND, или корейский гигант продолжит отвергать жалобы пользователей. Обновление прошивки для Samsung 840 Evo доступно в программе Samsung Magician 4.6, которую можно скачать на странице http://www.samsung.com/samsungssd/, или там же в виде ISO-образов.
Комментарии (33)
heathen
13.05.2015 09:33+1Отсюда возникает вопрос. Что, собственно, использовать в серверах? У Самсунга были отличные SSD PM853T с хорошими ТТХ и ценой, но они тоже на TLC NAND.
Что уважаемое сообщество может посоветовать вместо них?olartamonov
13.05.2015 10:09+1850 PRO с 3D V-NAND. Там техпроцесс 40 нм и более эффективная изоляция ячеек по сравнению с планарной структурой.
heathen
13.05.2015 10:46+1А не подскажете, есть ли enterprise-версия этого накопителя?
olartamonov
13.05.2015 10:58+1845DC PRO
heathen
13.05.2015 11:09+2Это первое поколение, на 24-слойном V-NAND (у 850 PRO — 32 слоя, меньшей ёмкости чипы, повыше IOPS, причём для записи более, чем в полтора раза и т.д.; а, и контроллер там новый). Второго поколения ещё не вышло, получается?
olartamonov
13.05.2015 11:10+1AFAIK нет.
heathen
13.05.2015 13:20+1Кстати, вот о новых enterprise SSD от Samsung на 3D V-NAND, они представили их на CES 2015.
Выглядит любопытно, особенно ёмкость в 3.84TB на 3D V-NAND TLC и 1.92TB на 3D V-NAND MLC. Так же впечатляют показатели скорости носителей с SAS-интерфейсом (и такими же объемами).
Пока не нашёл информации о доступности. На паре австро-немецких сайтов 5 мая SM863 появились в листинге по цене от 1322 евро за старшую модель, и даже якобы есть на складе. Но что в реальности — ХЗ. Но, вообще говоря, цена неплоха: примерно 0.69 евроцентов за гигабайт ёмкости со впечатляющими скоростными характеристиками… Интересно, сколько будет стоить PM863 на 3.84TB. И, конечно же, когда это всё появится в реальности.
TheRaven
13.05.2015 10:34+1Intel DC S3700 Series
heathen
13.05.2015 10:49+1Спасибо за совет, я знаю о существовании Intel 3700 серии, но ни по деньгам, ни по характеристикам они не соответствуют изначальному вопросу: стоят существенно дороже при меньших скоростях и, что важнее, IOPSах.
Хотя, это, безусловно, моя вина, недостаточно подробно раскрыл вопрос.TheRaven
13.05.2015 11:08+1Первый же тест что выпал из гугла по запросу «Samsung PM853T» — www.storagereview.com/samsung_pm853t_ssd_review
Прокрутите вниз и посмотрите графики IOPS. Нормально все у интела с этим, а уж «линейку» большинство ssd небросового класса дает примерно одинаковую.
fir1st
13.05.2015 10:03+2Пользуясь случаем, продам свой новый Samsung 840 Evo 1Tb за полцены.
Greendq
13.05.2015 11:13+2Это за 160 баксов? ;-) На Амазоне они одно время было по 350-380, а я всё думал, где там подвох… :)
fir1st
13.05.2015 12:07+1Блин, как же они подешевели. Я брал за 25 тысяч деревянных (http://www.amazon.com/Samsung-MZ-MTE1T0BW-Internal-Single-Version/dp/B00HWHVNUU). Но сейчас SSD мне не нужна. А продать такую сложно, ибо нет ресурсов специализированных.
За десятку отдам ;-)
RicoX
13.05.2015 15:22Возьму с радостью за пол цены, моему горячему кешу на сервере побоку эта проблема, там нет холодных данных :)
ZeroBit
16.05.2015 08:58+1Прошил этот диск (Samsung 840 Evo 1 ТБ) новой прошивкой с ISO образа. Работаю в Linux. Начались непонятные глюки: неожиданные зависания, ошибки чтения с диска, разрушение некоторых файлов. Надо откатываться на предыдущую прошивку, думаю.
ZeroBit
19.05.2015 07:12+1Упс, откат на предыдущую версию невозможен.
ZeroBit
23.05.2015 11:14+1Пока этот патч git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/ata/libata-core.c?id=9a9324d3969678d44b330e1230ad2c8ae67acf81 (у меня теги пока не работают — «добрые» люди безмолвно помогли) не появится в ядре, можно спасаться запрещая ядру использовать NCQ передавая в параметрах ядра libata.force=1.00:noncq если этот SSD ata1. Этот патч был предложен здесь bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005/comments/16
qw1
Samsung что-то разочаровывает. 850 Pro (512GB) умер через 2 недели. Ну как, умер — стал read/only.
heathen
Что радует — данные можно просто скопировать и отдать по гарантии диск. А раньше данные терялись.
Минус в том, что раньше можно было хоть как-то данные с диска прибить. Теперь нельзя. И все секретики становятся доступны
всему мируинженерам сервисной службы.Lsh
Ну, проблема с секретиками актуальна и для hdd. У меня вот недавно сдох WD на терабайт (контроллер). Фиг его знает, пытаются ли прочитать блины в сервисе. Так никуда и не понес.
Alexeyslav
Просто так их читать никто не будет — работа слишком кропотливая и дорогая, только если будет специальный заказ на ваши данные…
Но если хранящиеся данные многократно дороже стоимости винчестера, то проще его уничтожить.
Lsh
Не данные из секретный службы, конечно, но и кропотливости особой я не вижу, чисто поменять контроллер. Короче говоря, паранойя. =)
olartamonov
Сотруднику сервиса должно быть очень нечего делать, чтобы в дохлых SSD менять контроллеры ради счастья покопаться в вашем вконтактике. Особенно с учётом, что у него штатно на рабочем месте даже оборудования для ремонта BGA нет, ибо с такими неисправностями железка просто под замену идёт.
Lsh
Я про hdd писал. ЕМНИП, магазин сломанные диски отправляет в WD.
olartamonov
В общем, тоже. Найти в горе дохлых дисков соответствующий по модели и ревизии, переставить плату, перепаять EEPROM, в котором адаптивы лежат, подключить, покопаться… Это всё — страшилки про мелкие сервисы, в которых народу делать нечего, кроме как развлекаться. В крупных — поток и процедура, за сильное отклонение от которой можно и от начальства по шапке получить.
Odinokij_Kot
Если диск стал read/only то тут явно проблема не в контроллере, а в превышении порога уровня битовых ошибок в микросхемах памяти. Тут бга паять не надо.
С hdd, если там действительно умер контроллер, дело проще. Найти такой же контроллер, перенести прошивку из старого контроллера в донорский и читать себе спокойно данные.
Sychuan
Как же во времена пленочных фото, вы их проявляли? Неужто дома оборудовали себе лабораторию?
Lsh
В пленочные времена я не особо увлекался фото. Сейчас есть сублимационный принтер. Печатаю, правда, мало. Бумажные фото, как мне кажется, постепенно выходят из употребления. Да и разве, своя лаборатория была редкостью?
Alexeyslav
Это не так просто как кажется, контроллеры довольно уникальны и порой сильно отличаются несовместимыми ревизиями. Из-за чего восстановление данных на винчестерах с сгоревшим контроллером превращается в квест найди живой винчестер с нужной ревизией контроллера.