Флэш-память для загрузки FreeNAS и прочих embedded OS

    Аннотация


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

    Еще один NAS своими руками, часть 2: хорошие воспоминания*


    *Рекламный слоган одного известного производителя памяти звучит «Good memories start here».

    Практически все специалисты рекомендуют при выборе загрузочной флэшки не экономить и не использовать популярный бренд noname. Несмотря на корневую файловую систему FreeNAS версии 9 в режиме read-only, потребительские USB-флэшки компактного дизайна за полгода отказывали дважды, в обоих случаях примерно спустя пару месяцев эксплуатации. Причем оба использованных бренда, по мнению некоторых опрошенных представителей отрасли, вполне адекватные и уважаемые, в поставке откровенного брака незамеченные.


    На фото: два вполне адекватных представителя крохотных флэшек на 8Гб и 16Гб

    В чем же дело? Бесконечен ли ресурс чтения флэш-памяти? Попробуем разобраться.


    Как это было


    Система на базе FreeNAS работала хорошо в среднем два месяца. Затем переставали приходить ежесуточные отчеты по email, за ними отваливался веб-интерфейс администратора. Но сервер так просто не сдавался: SSH работал, и сервисы сетевых папок для пользователей мужественно держались до последнего, продолжая обслуживать Бизнес. Похвальная устойчивость.
    Пока не отвалился доступ по SSH, в поисках причин отказа веб-интерфейса я по «ругани» в журналах веб-сервера нашел проблемную страницу (скрипт на языке python), где достаточно разборчиво увидел замены отдельных букв в тексте. Это трудно описать словами, но будто через строго одинаковые интервалы символов палец программиста проваливался между клавиш. Затем программист как будто съезжал с катушек окончательно, или же в панике выдергивал из клавиатуры свой застрявший палец, но осмысленный скрипт обрывался и перерастал в случайный набор байтов. Неужели bit flip? Оказалось, что другие пользователи наблюдали очень похожую картину. Перезаливка флэшки проходила без единой ошибки, скрывала дефект, и многочасовое тестирование утилитой им. Михаила никаких ошибок не выявляло. Ну просто идеальная флэшка. Самое обидное, что образец испорченных данных я таким образом затер, о чем сильно сожалею. Чертовщина какая-то.

    Кто виноват?


    Сразу оговорюсь, что мне пока не удалось найти инженерно подтвержденный ответ на вопрос №1 русской интеллигенции. Но я хочу развеять некоторые мифы и пояснить роль пресловутого человеческого фактора. По крайней мере, у моей проблемы есть решение, и я его привожу далее.
    оффтоп к вопросу №1
    «Кто виноват?» — роман в двух частях Александра Ивановича Герцена.


    Что такое флэшка

    Эту тему неплохо раскрыл популяризатор и Автор хабра Tiberius в статье Взгляд изнутри: Flash-память и RAM. Кто не читал — это действительно взгляд изнутри, браво! Я же попробую компактно изложить чуть с другого угла. Есть и менее инвазивные способы проникнуть внутрь флэшки, см., например, ресурс http://flashboot.ru/iflash/.
    Итак, совремемнная бытовая флэшка — это крохотный компьютер, со своим процессором (микроконтроллером), небольшим объемом ОЗУ и ПЗУ, шинами данных, интерфейсом ввода-вывода и, собственно флэш-памятью типа NAND, обычно на отдельных микросхемах.
    Микроконтроллер общается с хостом по шине USB, считывает, стирает, записывает блоки («секторы»), умеет вычислять контрольные суммы блоков, управляет износом своего хозяйства NAND-чипов (см. wear leveling) и делать массу других вещей, о которых мы, простые смертные, и близко понятия не имеем.
    оффтоп про микроконтроллеры
    Волшебный мир микроэлектроники рынок микроконтроллеров, кстати, широко шагнул за последние годы к любителям и энтузиастам, чего только стоит платформа Arduino или челябинский проект им. DI HALT, дай Бог им здоровья. Так что те, кому надоели машинки-кораблики, могут попробовать новые игрушки, с эдаким запахом промэлектронной брутальности;-)


    Что делает производитель флэшек

    На мой взгляд, это очень простой вопрос: производитель собирает описанный выше «компьютер» из комплектующих, готовит софт (прошивку микроконтроллера), ставит на готовое изделие свое клеймо (бренд) и продает на рынке. Надежность флэшки зависит как от качества комплектующих, так и от прошивки. Иногда используются комплектующие собственного производства, иногда — стороннего (есть очень крупные заводы). Фирма веников не вяжет, как говорили когда-то. Но фирма очень дорожит своей репутацией, и потому веники микросхемы все-таки проверяет.
    Есть расхожая версия, что производители микросхем (комплектующих) делят производимую продукцию одного типа на разные классы качества, именуемые на жаргоне «корзинами». Условно для развитых рынков и условно для всех остальных. Или для бизнеса и для потребительского использования. Или еще как-нибудь, но очень важно для потребителя (как дома, так и бизнеса) то, что изделие одного и того же вендора с одним и тем же кодом не обязательно означает одни и те же «внутренности». Поэтому покупать электровеники на eBay (вслушайтесь) за полцены — это риск получить товар с микросхемами для рынков «третьего мира», несмотря на полное совпадение всех наружных кодов. По крайней мере, такого мнения придерживаются местные продавцы электровеников, вынужденные конкурировать с глобальной Интернет-торговлей.

    Какая бывает флэш-память

    Данную тему раскрывал пользователь alexzeynikov в своей статье Краткий экскурс в историю флэш-памяти, также можно посмотреть переводной пост 2007г. RAM, ROM, NAND, NOR — что значат эти заглавные буквы.
    Бытовые флэшки используют память NAND. Если очень бегло взглянуть на рынок NAND флэш-памяти, то можно выделить следующие основные типы производства микросхем (в хронологическом порядке вывода на рынок): одноуровневые ячейки SLC (хранят в каждой ячейке 1 бит), многоуровневые MLC (наиболее популярные, хранят 2 бита, используя 4 уровня) и набирающие популярность TLC (3 бита, 8 уровней заряда). Это уплотнение информации за счет использования нескольких условных уровней заряда в одном микроэлектронном элементе (ячейке), чтобы втиснуть побольше хранимых битов в тот же физический объем и, главное, с примерно той же себестоимостью изготовления. Чтобы зря не ломать копья на расшифровке MLC и TLC, рекомендую русскоязычную статью Википедии: Флеш-память, SLC- и MLC-приборы (благодарю a5b). На подходе 16-уровневая технология, так что можно пока разминать интерфейсы и кабели.
    Понятное дело, за плотность приходится платить надежностью хранения, а значит, и более сложными методами работы с ошибками. Что ж, в теории порой проще давить ошибки мощной «математикой», все зависит от параметров системы.


    Кусок эволюции бытовой флэш-памяти. Слева направо: 2Гб, 8Гб, 16Гб, 32Гб

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

    Какой ресурс перезаписи у флэш-памяти

    Про флэш-память NAND хорошо известно, что она подвержена электрическому износу и обладает конечным ресурсом по циклам записи. Для качественной памяти SLC адекватным считается ресурс 100 тыс. циклов записи, его мы и видим у промышленных продуктов. Однако за все приходится платить, и объем хранимых данных у SLC невелик по сравнению с MLC и TLC при тех же габаритах и стоимости. Вот тут и начинается самое интересное: производители активно выводят на рынок все более ёмкие продукты, но как-то темнят по поводу их реальной электрической износостойкости, ведь это вредит продажам. При этом никто не отрицает, что ресурс у MLC меньше, чем у SLC, но больше, чем у TLC.
    Так на сколько же? Кто-то называет следующие цифры.

    Оценка ресурса перезаписи у различных типов NAND-памяти
    Технология Ресурс перезаписи, циклов
    SLC 34нм 100,000
    MLC 34нм 10,000
    MLC 24нм IMFT 5,000
    MLC 20нм 3,000
    TLC 20нм 1,000
    Т.е. у суперкомпактной TLC (именно ее я ожидаю в microSD объемом 32Гб, но лучше уточнить у Dr. X-Ray) можно ожидать «всего-навсего» порядка 1000 циклов перезаписи. Однако читателю не стоит сразу паниковать, для хранения музыки и фоток на смартфоне обычно хватает и этого. Микроконтроллер любой современной флэшки должен распределить износ равномерно, так что «запиленных» и «упоротых» блоков не будет не должно быть, независимо от типа файловой системы. В теории, чтобы «сточить в ноль» флэшку 8Гб с ресурсом 1000 циклов, надо записать на нее суммарно порядка 8Тб информации. На практике, конечно, она помрет раньше, но если использовать хорошие бренды с качественными чипами и не заражать смартфон злым вирусом-убийцей флэшек, то все будет хорошо и долго.
    Вот вам и инженерный парадокс: в теории старая, крупногабаритная флэшка на 2Гб (наверняка SLC) даже остатком(!) своего ресурса по надежности может заткнуть за пояс совершенно новую суперкомпактную «кроху» на 16Гб (наверняка изготовленную по MLC или TLC технологии). Хотя я бы не стал проверять этот довод на «боевом» сервере.

    (FreeNAS || NAS4free) && NAND

    Внимательный читатель, конечно, спросит: а какое это вообще имеет значение для FreeNAS, если его корневая файловая система монтируется read-only? Не в бровь, а в глаз.
    Загрузчик FreeNAS требует 2Гб, из которых примерно 1Гб занимает корневая система, действительно монтируемая read-only. Кроме нее на той же флэшке создается небольшой (порядка 20Мб) раздел /data (read-write) для хранения настроек и полезной системной статистики, собираемой collectd (чтобы при перезагрузке не «забывать», скажем, историю расхода ОЗУ за месяц). Еще 1Гб не используется.
    Кстати, родственник FreeNAS NAS4free работает немного по-другому. Он создает единый корневой раздел, где держит и систему, и настройки (предлагая при этом создать на флэшке еще и swap, но ненавязчиво). Системная статистика у NAS4free достаточно рудиментарная и при перезагрузках уже не выживает (да и нечему там особо выживать, но для многих это не критическое условие). Более важно то, что настройки (в виде XML) у NAS4free хранятся на read-only разделе, и при их сохранении требуется перемонтаж всей корневой файловой системы из read-only в read-write и затем обратно в read-only. Довольно неуклюже, но работает.

    Промежуточный итог

    • С учетом конечного ресурса флэш-памяти оба проекта FreeNAS и NAS4free — это хороший выбор, из-за файловой системы в read-only.
    • Флэшки 2Гб для FreeNAS точно хватит с запасом, и никаких других разделов на флэшке создавать по дизайну нельзя (у NAS4free можно).
    • У FreeNAS из-за сохранения статистики регулярная запись на флэшку все-таки ведется, хотя и малыми порциями (порядка 1Мб каждый час однократно, или около 8Гб в год, но это очень приближенная оценка).
    • У NAS4free никакой регулярной записи на флэшку не ведется, но за счет кастрированной системной статистики и совмещения ОС с настройками на одном корневом разделе (со всеми вытекающими: старт в read-only — в read-write — сохранение настроек — и снова в read-only, вплоть до необходимости перезагрузки).
    • По внешним признакам непохоже, что наши отказы произошли вследствие износа флэшки записью, хотя это первое, что обычно приходит в голову. Застрявшие пальцы программиста испорченный веб-скрипт, расположенный на read-only разделе, как-то не очень увязывается с «упоротым» результатом записи.
    • Одно можно сказать достаточно определенно: при прочих равных, чем мельче габариты флэшки, тем меньше ее ресурс и надежность.


    Миф о бесконечном ресурсе чтения флэш-памяти

    Принято считать, что количество циклов чтения у флэшек бесконечно, однако в случае с памятью NAND это не совсем так, хотя бы в силу эффекта read disturb, описанного Jim Cooke в докладе The Inconvenient Truths of NAND Flash Memory (прямая ссылка; неудобный документ постоянно куда-то перекладывают, но поисковик должен выдать по названию доклада; см. слайды 19-20). Правда, данный эффект является электрически обратимым и должен устраняться совершенно прозрачно встроенным микроконтроллером, с помощью коррекции ошибок (см. далее) и переноса блоков. Меня насторожила фраза:
    Disturbed bits are effectively managed with ECC

    Это означает, что bit flip в NAND является ожидаемым и может исправляться «на лету» корректирующими кодами, но паниковать пока рано, ведь то же самое давно происходит в шпиндельных дисках, устройствах связи и не только.
    Интересно, что в соответствии с тем же докладом, память NAND SLC имеет порядка 1 млн. циклов чтения, а MLC — 100 тыс. циклов. Микроконтроллер должен это учитывать и заблаговременно копировать рисковый блок на новое место, убирая эффект возмущения и освобождая старый блок. Контроль ошибок при этом должен следить за сохранностью информации, и если порча блока превышает возможности используемой схемы коррекции — флэшка должна выдавать ошибку чтения.
    По ряду причин в этой статье я намеренно избегаю явного описания «полновесных» дисков SSD, но предполагаю, что в них происходит нечто подобное, на других скоростях, с накрученной логикой и нафаршированной периферией. И, раз уж затронули SSD, напомню про пресловутые 25% свободного места (Вещи, которые не нужно делать с твердотельным накопителем (SSD), или Exploring the Relationship Between Spare Area and Performance Consistency in Modern SSDs).
    Тем не менее, лично у меня напрашивается только одно объяснение синдрома застрявших пальцев программиста bit flip, описанного выше: а мог ли это быть как раз эффект read disturb, прорвавшийся сквозь контроль четности из-за бага в прошивке микроконтроллера или чрезмерного упрощения логики? Это и есть наиболее провокационный вопрос данной статьи.

    Кстати:
    Кому интересно знать устройство SSD
    Коллеги, скиньтесь на предмет исследования и отдайте его Tiberius'у; возможно, он отложит свои дела, расщепит предмет на атомы и напишет еще одну потрясную статью. Только для диска это будет точно билет в один конец:)


    Кто и как контролирует ошибки

    Внимание: ECC иногда расшифровывается как Elliptic Curve Cryptography, но в данной статье это Error Correction Code.
    Целостность данных — забота микроконтроллера, он использует для этого специальные алгоритмы кодирования. Как известно, разрядность (длина) контрольной суммы влияет на максимальное количество выявляемых (и иногда исправляемых) ошибочных битов. Вспомним RS232: один дополнительный бит четности может обнаружить, был ли в блоке один ошибочный бит. Но два ошибочных бита уже пройдут незамеченными, для них нужно больше контрольных битов и более умный алгоритм. И так далее: чем умнее алгоритм и чем больше «запасных» битов закладывается в сообщение, тем лучше способность системы к устранению ошибок без пересылки (копирования) всего сообщения. На помехозащищенном кодировании стоит, как говорится, весь наш информационный мир.
    Обратимся к документу TN-29-17: NAND Flash Design and Use Considerations (ссылка) одного из производителей микросхем NAND, найдем рекомендацию разработчикам флэшек (т.е. «сборщикам», которые эти чипы потом используют в качестве комплектующих):
    Use More Powerful ECC:
    Use a more robust ECC algorithm than is specified by the NAND Flash data sheet and set a threshold for the maximum number of bits allowed to go bad under the ECC correctable limit. When the threshold is met, move the data to another block within the NAND Flash device and begin reading from the new location.

    Т.е. как обычно, есть минимальные и рекомендованные требования производителя чипов к сложности (дороговизне) микроконтроллера, выбор между которыми делает разработчик на основе, понятное дело, режима использования памяти. Например, для промышленных задач нужно делать дорогую логику с длинным кодом ECC, а для бытовых задач можно обойтись и кодом попроще, и чипами подешевле.
    Находим наугад еще один документ, это вики-страничка Texas Instruments Raw NAND ECC, в которой для MLC рекомендуется использовать 4-, 8- или 16-битные контрольные суммы на каждый 512-байтный блок:
    Why is ECC required for NANDs?
    Data stored in NANDs can get corrupted (randomly). There is an upper limit on the number of error per byte depending on the NAND process and the technology. SLC NANDs have less ECC requirements than MLC NANDs. The NAND datasheet gives the ECC requirement for the NAND device. For SLC NANDs, 1/4bits per 512 bytes are common currently. For MLC, devices with 4/8/16 bits per 512 bytes ECC requirements are in the market.

    Там же и ссылки на популярные алгоритмы: однобитные ошибки «лечатся» кодами Хамминга, с мультибитными ошибками принято бороться с помощью кодов Боуза-Чоудхури-Окенгема (БЧХ), а где-то посередине находятся популярные в индустрии хранения данных коды Рида-Соломона (это частный случай БЧХ). Вот еще один найденный наугад документ на эту тему: What Types of ECC Should Be Used on Flash Memory? (ссылка).
    Но не будем слишком долго витать в облаках абстрактной алгебры, нам пора на твердую землю инженерии. Если в блоке оказалось слишком много «упоротых» битов, если производитель памяти сэкономил и использовал более дешевый микроконтроллер, более простой алгоритм коррекции ошибок или менее квалифицированных разработчиков, то шансы «тихой» порчи данных (т.е. без явных отказов чтения) в теории возрастают. Не забываем, что не Боги горшки обжигают пишут код прошивки.
    Я использовал бытовую флэшку для размещения системы встраиваемого типа, которая может читать определенные блоки очень интенсивно (особенно при дефиците ОЗУ, как у меня). Однако потеря данных в результате эффекта read disturb — это слишком серьезное обвинение, которое требует более тщательного исследования. А пока я могу вывести еще один критерий оценки надежности флэшки: при прочих равных чем длиннее ECC, тем лучше.

    Что делать?


    Ответ на вопрос №2 русской интеллигенции, как ни странно, оказалось найти проще.
    оффтоп к вопросу №2
    «Что делать?» — роман русского философа, журналиста и литературного критика Николая Чернышевского, написанный в одиночной камере Петропавловской крепости и впоследствии запрещенный цензурой.

    Спрашивается, почему произошло два идентичных отказа? После первого отказа возникло сильное желание сразу перейти на промышленную флэш-память (надо-то всего 2Гб, из которых используется половина), но найти ее с привычным разъемом USB оказалось непросто: в продаже оказались либо штырьковые (например, Transcend TS2GUFM-V), либо Compact Flash, либо вообще Disk-on-Module с интерфейсом IDE. И поскольку мой квест на промышленную флэш-память ушел в неверном направлении, я и на третий раз купил потребительскую USB-флэшку, но уже не «кроху», а «стандартного» размера с брендом Kingston.
    Прикидывая другие варианты, на всякий случай я даже решил подготовиться к переходу на промышленный Compact Flash, по канонам практик Крепсондо загрузив систему в тестовом режиме с кардридера (читатель, будь осторожен, он может глючить сам по себе). И, кстати, если уж говорить про диски SSD, то для простого загрузчика это относительно дорого и тоже, как ни странно, не панацея.


    Вверху: кроха на 8Гб; внизу: Kingston на 8Гб

    Полноразмерная флэшка Kingston на 8Гб в результате отработала без нареканий месяца три, а один продавец в магазине сказал, что уже, дескать, год бутылки открывает такой же, и ничего. Но для более крепкого сна я все-таки выбрал другой вариант, о котором расскажу прямо сейчас.

    Знакомьтесь: промышленная память


    Представитель промышленной памяти TS2GUFM-V

    В итоге оказалось (ссылка), что штырьковый интерфейс «мама» у того самого промышленного изделия TS2GUFM-V является двухрядным 10-контактным разъемом с шагом 2.54мм (1/10"), пригодным в т.ч. для посадки в разъем «фронтальных» USB-портов на вполне бытовой материнской плате (используется 4 из 10 контактов). Ура, мой квест завершился.


    Разъемы «фронтального» USB-кабеля и флэшки изображены с позиционным соответствием

    Итак, TS2GUFM-V — это модуль 2Гб промышленной флэш-памяти с вертикальным корпусом (буква V), снабженный даже защелками от выпадания из разъема при ударах и вибрациях. Так что если читателю вдруг понадобится встраивать ОС в самонаводящийся молоток с ЧПУ, то это неплохой вариант. Есть, правда, горизонтальное исполнение TS2GUFM-H, но оно еще более брутальное (бескорпусное и крепится уже тремя болтами), в продаже встречается реже, а сажать его на обычную материнскую плату еще сложнее. Конечно, нет ничего невозможного, все зависит от желания, смекалки и конструкции корпуса.

    Характеристики изделий TS512M~4GUFM-V
    Параметр Значение
    Технология SLC
    Объем от 512Мб до 4Гб
    Ресурс записи 100,000 циклов
    Скорость чтения до 33Мб/с
    Скорость записи до 20Мб/с
    Разрядность ECC 8
    Год вывода на рынок 2006
    Цена около €25

    Изделие, как можно увидеть, совсем не новое, но для промышленных вариантов и 10 лет порой не возраст, а цена со временем может упасть с военных до почти бытовых значений (напомню, что за те же деньги я истратил впустую две обычных флэшки, как в известной пословице). Для сравнения: у бюджетных бытовых флэшек скорость записи всего около 5Мб/с, и TS2GUFM со своими 20Мб/с — отличное решение по канонам философии Крепсондо. Круче только Compact Flash для профессиональных фотокамер: когда они «стреляют» очередями RAW-формата, мало точно не покажется. TS2GUFM-V, правда, закрывает сразу два разъема USB, используя при этом один, но это при желании поправимо с помощью переходников.
    Для получения полетного задания заливки образом загрузчика надо подключить этого жесткого вояку к сисадминскому ноутбуку, разъемы USB которого промышленной суровостью не отличаются. Читатель может использовать любой удобный вариант (попробуйте поискать картинки по строке «переходник USB 10pin», узнаете много нового). Но по странному стечению обстоятельств в моем старом сисадминском сундучке обнаружились клещи-кримпер (видимо, что-то такое ими я уже раньше делал, только не помню, что). Кримпером я и обжал штыревой низковольтный переходник из кабеля-инвалида, пострадавшего от наезда колесного офисного кресла.
    Кстати
    Если заметили у Бизнеса кабель с торчащими из-под изоляции потрохами, немедленно изымайте, пока Бизнес чего-нибудь им сам себе не отжег:)



    Зачистим и обожмем кримпером


    Защитим термоусадкой


    Возьмем штыревой разъем 2.54мм (хотя можно и скрепкой)


    Проверим, как сидит


    Флэшка на кабеле готова к заливке

    Залив образ FreeNAS обычным способом, установим нашу промышленную флэшку в разъем для «фронтальных» USB-портов на материнской плате. Не перепутайте контакты, на изделии нет «защиты от дурака». Контакт №9 должен попасть на место «спиленного» штырька.


    «Распиновка» разъема

    ВНИМАНИЕ: габариты нашего сурового изделия TS2GUFM-V могут затруднить его посадку в разъем из-за электронных деталей, проводов и других разъемов, торчащих там и сям даже в весьма просторных корпусах «башенного» типа. Например, протиснуть TS2GUFM-V в разъем USB4_5 на материнской плате ASRock P4i65G между бортовыми аудио и LAN без разрушения оных оказалось никак невозможно, поэтому отправляем ее на запасной разъем USB67. Но и там пришлось уворачиваться от банки конденсатора и штекера корпусной пищалки, торчащих почти вплотную к заветным штырькам.
    Поэтому читателю, особенно при использовании компактных корпусов (например, известной марки Харлампий-Панкрат MicroServer), надлежит внимательно изучить сам факт наличия 10-штырьковых «посадочных» разъемов, а также окружающую их обстановку. В случае чего принять меры в виде переходников (google на картинки «переходник USB 10pin»). Или выбрать другую флэшку.


    Флэшка села в разъем и заработала

    Выводы



    1. Электрофизические процессы, происходящие внутри твердотельных накопителей, далеко не так однозначны и просты, как кажется снаружи (спасибо, Капитан Очевидность).
    2. Надежность флэш-памяти зависит как от технологии изготовления памяти NAND (SLC, MLC, TLC и т.д.), так и от сложности микроконтроллера, а при производстве можно экономить как на первом, так и на втором.
    3. Грубо оценить надежность флэшки можно и по длине контрольной суммы (ECC, если производитель ее публикует): при прочих равных чем она длиннее, тем лучше.
    4. Для систем, которые ведут интенсивную запись, требуется флэш-память промышленного типа.
    5. Для серверных задач не следует использовать суперкомпактные флэшки-крохи, изготовленные по технологиям MLC (TLC) с повышенной плотностью.
    6. Использование дешевых флэшек малоизвестных брендов для загрузки ОС противопоказано в принципе.
    7. Для FreeNAS подойдут «полноразмерные» флэшки хороших брендов, а еще лучше — промышленные изделия на микросхемах SLC емкостью от 2Гб.


    Продолжение следует


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

    Другие части истории про Ещё один NAS своими руками:
    часть 1: из того, что было
    часть 2: хорошие воспоминания (Флэш-память для загрузки FreeNAS и прочих embedded OS)
    часть 3: приключения в старой башне
    часть 4: призрак Чернобыля

    Ссылки


    www.wikipedia.org/wiki/Flash_memory#NAND_flash
    www.wikipedia.org/wiki/Wear_leveling
    www.wikipedia.org/wiki/Single-level_cell
    www.wikipedia.org/wiki/Multi-level_cell
    www.wikipedia.org/wiki/Triple-level_cell
    ru.wikipedia.org/wiki/%D0%A4%D0%BB%D0%B5%D1%88-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C#SLC-_.D0.B8_MLC-.D0.BF.D1.80.D0.B8.D0.B1.D0.BE.D1.80.D1.8B
    www.wikipedia.org/wiki/Error_detection_and_correction
    www.wikipedia.org/wiki/BCH_code
    www.pcper.com/reviews/Editorial/Taking-Accurate-Look-SSD-Write-Endurance
    collectd.org
    www.transcendusa.com/support/dlcenter/EDM/UFM-EDM.pdf
    www.micron.com/-/media/Documents/Products/Presentation/flash_mem_summit_jcooke_inconvenient_truths_nand.pdf
    pt.slideshare.net/Flashdomain/tn2917-nand-flash-design-and-use-considerations
    processors.wiki.ti.com/index.php/Raw_NAND_ECC
    www.spansion.com/Support/Application%20Notes/Types_of_ECC_Used_on_Flash_AN.pdf
    forums.freenas.org/threads/data-corruption-on-usb-flash-drive.15505/#post-80954
    forums.freenas.org/threads/intel-passed-power-loss-protected-ssd-tests.17168
    mikelab.kiev.ua/index_en.php?page=PROGRAMS/chkflsh_en
    lifehacker.ru/2013/06/26/veshhi-kotorye-ne-nuzhno-delat-s-ssd
    www.anandtech.com/show/6489/playing-with-op
    flashboot.ru/iflash

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

    Встречали ли Вы порчу данных на флэшке (bit flip), при которых флэшка читалась без ошибок?
    • 44.8%Да, однозначно встречал лично175
    • 55.1%Нет, точно никогда не встречал и не верю в это215
    Поделиться публикацией
    Комментарии 53
      +10
      Прекрасно написанная статья. Стоит почитать хотя бы ради слога. И с не меньшим интересом для того, чтобы увидеть как в понедельник с утра можно заставить человека на час с удовольствием выпасть из трудового процесса и узнать массу нового и интересного.
        +2
        В понедельник?
          +13
          Сегодняшний вторник вполне можно считать понедельником!
          +2
          Действительно прекрасно. К тому же, автор очень технически подкован! Чего стоит только использование «кримпера» вместо «обжимки»))))
          0
          Спасибо за статью. «Очень своевrеменная книга», как сказал бы Ленин.

          Я давно хочу сделать себе NAS, и сейчас, как раз, разжился для этого старым Pentium4. По такому случаю вытряхнул из загашника купленные несколько лет назад CompactFlash на 8 гигов и китайский переходник с CF на IDE. Сейчас пока пытаюсь загрузить с него Убунту. Но, скорее всего, поставлю FreeNAS и воспользуюсь ейными виртуалками для прочих дел.
            0
            Построение как раз такой системы на хламе я изложил в прошлом посте http://habrahabr.ru/post/214707/
            Приходится принимать сложные решения, в основном из-за очень сильного перекоса в сторону ёмкости накопителей относительно скорости.
            В моем случае наиболее проблемная точка — PCI, посмотрите, сколько занимает реконструкция зеркала, и комментарии скептиков по поводу полной синхронизации gmirror имеют под собой основания. Поэтому и появилась такая штука, как ZFS, но она требует уважения и на откровенном хламе, как у меня, практически не живет.

            И очень Вам желаю, чтобы CompactFlash оказался профессиональным или промышленным, а переходник CF-IDE не глючил.
            Обычные системы (не embedded типа) быстро изнашивают флэш-память, так что простой Ubuntu, как я понимаю, это только для тестов.

            Удачи, коллега
              0
              Я читал прошлый пост :) За него тоже спасибо.

              Да, я понимаю все прелести делать NAS, что называется, из говна и палок… :) Собственно, исходные материалы у меня почти те же, тоже пень 4 с PCI. Но у меня и объёмы данных куда как скромнее. В перспективе, есть возможность перенести это на более новое железо.

              А пока в планах покупка самих дисков и ревизия железа — пропеллер поменять по необходимости, термопасту обновить, добавить гигабитную сетевую плату (возможно) и плату SATA портов. Блок питания, опять же… ZFS я уже отмёл для себя, RAID1 вполне отвечает моим требованиям.

              Убунта — это так, балуюсь пока. Намазал на CF образ установочного диска, но это не совсем то, что надо. Тормозит безбожно. Сейчас буду FreeNAS ставить. А переходник — там глючить нечему, только пайке.
                0
                я всю старую механику и блок питания отправил на отдых сразу; туда же и мать пришлось отправить
                для FreeNAS лучше памяти не менее 2Гб, хотя у меня работает на 1Гб; диски — только с ERC

                про корпусную инженериию скоро будет короткий и немного ироничный пост;)
                  0
                  У меня тоже один гиг. Мать вполне ничего пока.
                0
                Я медленно, но скверно продвигаюсь к своей цели. Скачал готовый образ FreeNAS, намазал его на CompactFlash. Через USB и кардридер загрузился, через IDE, почему-то, нет. BIOS диск видит…
              0
              Была такая же проблема с флешками и Freenas.
              Существует 2 версии freenas embeded и не embeded. та, которая не embeded позволяет доставлять пакеты, например mysql, используя pkg_add.
              Заметил, что при запущенном mysql не embeded freenas выходит из строя гораздо быстрее.
              Если mysql не запускать и использовать embeded freenas то система держалась гораздо дольше, но все равно выходила из строя.
              Всего я пользовался freenas четыре года. пробовал 5 разных usb устройств. Все вели себя примерно одинаково: 512 transcend compact flash с usb переходником, 2 гб usb transcend, 32 gb usb kingston, 4 гб usb kingston, и один какой-то 2 гб нонейм.
              при перезагрузках freenas обращал внимание, что система минутами сбрасывает данные на usb.
              Считаю, что проблема в самом Freenas, freebsd их настройках и/или драйверах, думаю тут как-то подкачка (swap) влияет и mmap, которые как то плохо работают с flash, возможно из-за таймаутов или из-за того, что возможно нет поддержки каких-то scsi команд usb устройством.
              Думаю, что лучше всего пользоваться sata устройством для размещения freenas если пользоваться не embeded версией, для embeded версии можно и usb, но лучше все равно sata.
              Для себя нашел ос xpenology, которая только стартует с флешки, а сама ось живет на hdd. За полгода сбоев нет.
                +1
                Не embedded вариант любой ОС (особенно с СУБД) может относительно быстро износить любую флэшку, даже промышленную. Тут уже я бы рекомендовал SSD использовать, либо разделять (как xpenology). Да и то SSD решает проблему износа скорее количественно, чем качественно.

                Поведение FreeNAS 9 я постарался изложить в этом посте, см. заголовок (FreeNAS || NAS4free) && NAND.
                Если чего-то не хватает, могу дополнить по Вашей рекомендации.

                Подозреваю, что в Вашем комментарии речь о проекте FreeNAS 0.7, который теперь зовется NAS4free, краткая историческая справка в том же моем посте habrahabr.ru/post/214707. У этой системы (NAS4free) действительно есть два варианта, а вот у современного FreeNAS (версия 8, 9 и далее) выбора при установке embedded или не embedded нет, как нет и варианта swap-на-флэшке (это почти инженерный абсурд).

                0
                Очень интересно, но требует определённого навыка для реализации. Да и страховка, предоставляемая в этом случае флэш-памятью, под вопросом. Это те причины, по которым я пользуюсь фирменными решениями…
                  0
                  Я бы сказал, что «твердая» память позволяет избавиться от очень неудобной в ряде случаев дополнительной пары «шпинделей» для самой системы (в случае с жесткой эксплуатацией или просто очень компактным дизайном).

                  В случае с СХД (и не только) операционный выигрыш в использовании образов ОС как firmware, отдельно от хранимых данных (by design меньше гемора при эксплуатации, FreeNAS избавляет от многих аспектов администрирования ОС). Единственный подводный камень — у многих есть ошибочная презумпция того, что данная система предназначена для сборки из хлама. С таким соотношением ёмкость/скорость, как сейчас, это уже не так, вот тут habrahabr.ru/post/214707 я обосную этот довод.

                  Но я там же сразу говорю про фирменные решения: есть деньги — покупайте, не мучайтесь:) На рынок выпущены доступные продукты для дома и малого бизнеса.
                  0
                  Почему бы не решить проблему ещё радикальнее — грузиться через PXE (ведь постоянно работающих серверов в локалке много)?
                    0
                    Embedded-системы — это чаще всего суровые воины-одиночки, выживающие в сложных условиях плохого питания, ударов, вибрации, радиации и еще черт знает чего. Поэтому их же удобно применять в сольных инсталляциях малых офисов, где нет толком ни инфраструктуры, ни сисадмина (но хоть не бьют и не облучают).

                    А в красивых и чистых ЦОДах, где есть много работающих серверов адекватная инфраструктура с резервированием питания и того же PXE можно, конечно, и за счет сети все решить:)
                      0
                      что мешает бутаться в ram через pxe-http? а rootfs image хостить где-нибудь на надежном сервере в интернете. (это я про малые офисы)
                        0
                        чаще всего одиночный канал, который (как минимум) без намека на SLA; это лечится вторым каналом, но не всегда.
                        еще варианты из серии отключения электричества, при котором сервер при старте ухитряется обогнать оборудование связи; да, подождать канал тоже не проблема.
                        еще надежность того самого сервера в интернете; да, пара серверов тут должна помочь.

                        т.е. это все вроде бы лечится, но по совокупности факторов embedded-загрузчик проще и дешевле, да и для моей задачи (NAS) я не увидел готового решения, загружаемого по PXE; выточить такой тоже реально (я умею), но жалко время

                        моя конструкция, кстати, как раз на постоянной связи с облаком, и возможно, я даже когда-нибудь расскажу и про это, но пока я отвожу своим облачным системам роли второго плана (полу-оффлайн); потребительский роутер периодически заклинивает на VPN-соединении, и вылечить это удасться только его заменой; оффтоп: присматриваюсь к изделиям Mikrotik, ибо имеем слишком хилый WiFi, и у заказчика маячит вторая площадка…
                          0
                          Воот, микротик пусть и PXE-чит направо и налево (железо хорошее, проверено)
                          Ну и до кучи вариант с старым IDE-диском гигов на 20-24 (раз уж Ваш суровый воин построен на атери ASRock)
                            0
                            Хм. Коллега, порекомендуйте, из какой системы тогда лучше вытачивать PXE OS для NAS (поддержка Samba и Apple обязательно)? Из той же фришки? Далеко не факт, что я это буду делать именно для NAS, но вообще интересно. Не стесняйтесь экзотических ОС:)

                            Диск-двадцатка как раз есть, и на эту мать у него встанет (там IDE). Только бздошно страшновато такое делать, один старый диск (стодвадцатка баракуда, помладше года на три), на котором кроме swap и не было нифига, ухитрился помереть в этой же моей суровой башне на фазе fsck preen примерно вот с таким результатом:

                            опаньки, хозяин
                            /dev/ufs/TTTT: CANNOT READ BLK: XXXXXX
                            /dev/ufs/TTTT: UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY.
                            
                            THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
                            	ufs: /dev/ufs/TTTT (/mnt/TTTT)
                            File system preen failed, trying fsck -y
                            
                            
                            Can't stat /dev/ufs/TTTT: No such file or directory
                            Can't stat /dev/ufs/TTTT: No such file or directory
                            
                            
                            Mounting late file systems: mount: /dev/ufs/TTTT: No such file or directory.
                            Mounting /etc/fstab filesystems failed, startup aborted
                            ERROR: ABORTING BOOT (sending SIGTERM to parent)!
                            *** ** 18:18:48 HOSTNAME init: /bin/sh on /etc/rc terminated abnormally, going to single user mode
                            Enter full pathname of shell or RETURN for /bin/sh:
                            



                            Т.е. он таки дал себя обнаружить, но в самый ненужный момент сдох. Я думаю, последствия фразы going to single user mode объяснять не нужно, все подкованные. Сейчас собираю бортовой контроллер из конвертера интерфейсов RS232-Ethernet, вероятно, будет еще один пост на хабе DIY.

                            с уважением!
                              0
                              Насчёт PXE-образа не подскажу, так как использовал только загрузку wtware.
                              А диски больше 40- как раз моложе и ненадёжнее, может дело в том что ранние модели делались с меьшей плотностью записи и поэтому надёжней…
                    +1
                    Прекрасное описание, полезная статья. Спасибо.
                      +4
                      Кстати, учитывайте, что запись «часто но помалу» — это самый плохой вариант для флэш-памяти. Потому чтобы записать хоть одну строчку логов, нужно считать большой блок (порядка 128 кБ), добавить строчку, и записать этот блок обратно. Эффект называется Write amplification.
                        +1
                        очень полезный комментарий. Я думаю, именно поэтому FreeNAS не пишет непрерывно, а раз в час (именно однократно!) закладывает всю статистику в сжатом виде (файл TGZ) — целиком и одним махом. Наверное, это не прозвучало в статье достаточно четко, я поправлю.
                        0
                        Купил старый системник с ИДЕ винтом на 20гигов и не грею себе голову с ресурсом флэшек. Хватает его и на дополнительные пакеты. Все работает без проблем, начинал со старой FreeNAS и теперь преемник NAS4Free, уже около 6 лет.
                        На нынешнюю ветку FreeNAS не перешел, т.к. они долго тянули с разработкой и то что выпустили было глючным. Остался на оригинальном проекте, который был переименовал в NAS4Free.
                          0
                          Смело, но для дома сгодится. Для офиса я бы не рискнул.

                          SMART'ом, конечно же, мониторите состояние Вашей 6-летней двадцатки? Ибо осталось ей уже немного.
                            0
                            Да, я для дома использую. Смартом мониторю — винт живее всех новых :) Сказывается отсутствие работы Ведь его можно просто усыплять. Если умрет — тоже ничего страшного. Конфигурация лежит в бэкапе, а система с нуля поднимается за полчаса.
                          0
                          У меня самосборный NAS на основе ArchLinux, живет на самой дешевой 4гб флешке Transcend уже 4 года. Может дело в том, что у меня SWAP выключен, а /var/log и /var/spool смонтированы на основной RAID массив.
                            0
                            Вы правильно поступили со swap и /var, да и Transcend совсем неплохой бренд. На малой нагрузке, возможно, ArchLinux не теребит диск понапрасну.

                            Но самое главное то, что объем Вашей флэшки может означать как раз технологию SLC, у которой большой ресурс записи (100,000 циклов). Т.е. по микросхемам NAND это легко может оказаться «гражданский» вариант промышленного изделия TS2GUFM-V, о котором я писал. Предполагаю, что у Вашей флэшки попроще математика — вероятно, медленнее (скорость на уровне 5-10Мб/с) и с более примитивной контрольной суммой. Cейчас в обычном магазине непросто найти флэшку Transcend на 4Гб, но это хороший вариант для embedded систем именно из-за SLC.
                            +1
                            Да, было дело. Как-то домой принес RAR-архив, а он «CRC-error» причем никаких ошибок считывания файла с флешки. Ради интереса сохранил этот образчик и сравнил с оригиналом… разница в ОДИН бит.

                            Точно такая же фигня однажды приключилась и с винчестером, сохраненный образ БИОС, после прошивки «BIOS checsumm error...» тоже, виноват оказался один бит. Времена винтов на 850Мб…
                              0
                              Недавно так же изучал данный вопрос, после зависания сервера nas4free, на 8гиговой ultra speed флехе от trancend, долго искал чем заменить, выбор пал на DOM (Espada), тк он был в налии рядом с домом, а ждать не хотелось, купил перед НГ, числа 2 воткнул и началось в колхозе утро, нас постоянно валился, веб недоступен, кернел паник и тд в общем после праздников сдал обратно в магаз, вернул трансценд, три месяца полет нормальный. Сейчас хочу заказать чудо освещенное автором в статье, надеюсь на этот раз все будет нормально.
                                0
                                если NAS4free заклинило при сохранении настроек, могла быть виновна и флэшка, и сам NAS4free:
                                всего лишь версия
                                NAS4free перемонтирует корневую систему в read-write, пишет свой XML, и затем пытается перемонтировать «корень» обратно в read-only. В теории процесс, который успел проскочить в этот узкий промежуток и открыть файл на запись (откуда ему взяться, это другой вопрос), не даст перейти в read-only. В таком состоянии поток выполнения, ожидающий окончания монтажа «корня», «блокирнётся» сам и может потащить за собой группу зависимых от него процессов, но вроде как не всю систему. Что там происходит в масштабах NAS4free, лучше может рассказать специалист по NAS4free, я так глубоко не копал.

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

                                чисто в теории скоростная флэшка должна иметь «прокачанную» математику (микроконтроллер), но если это бытовой вариант (для дома), то не обязательно самые лучшие микросхемы NAND и не обязательно длинную контрольную сумму (ECC). Хотя именно от Transcend я таких подвохов ожидаю гораздо меньше, чем от многих других, это хороший бренд. Мой «домашний» вариант Transcend (см. про открывание бутылок) на 8Гб отработал без вопросов три месяца, я его заменил на «военный» вариант просто потому, что сильно устал от всех этих приключений…

                                если уж прицелились на TS2GUFM-V, главное, чтобы не обманул уже магазин; я предпочел купить в местном ритейле, специализирующемся на памяти, они эти же товары продают всяким непростым ребятам, которых обманывать себе дороже
                                0
                                Была такая история, на заре появления флешек, я купил отцу в подарок модель на 128 мб. Некоторое время ей пользовался сам и замечал неоднократно, что фотографии считываются с артефактами, к примеру, половина фотографии могла превратиться в шум, или цвета инвертироваться. Записывалось на неё без проблем.
                                  +1
                                  Запись, кстати, не защищена контрольными суммами. контрольные суммы возникают в контроллере флешки, а весь путь от винчестера до контроллера имеет множество неконтролируемых мест.
                                  А вот шум в половине фотографии это классическая ошибка FAT если запись буферизована а ты вынимаешь флешку не размонтируя её в системе — просто в FAT часть файла указывает не на те кластеры… И эти ошибки могут копиться без заметных внешних проявлений прежде чем что-то бросится в глаза. Почему-то для FAT не проверяют количество кластеров в цепочке с размером файла, и ошибка чтения возникает только когда цепочка меньше реального размера файла.
                                    0
                                    А вот еще вспомнил, была CF карточка, которая периодически глючила, убавая фото по тому же принципу но с фотоаппарата. Часть RAW-ок не открывалось или открывалось с артефактами.
                                  0
                                  Налетал на такие флешки, из последнего — «kingston» от чистого МадеИнЧи на 16Гб. Всё было шикарно около месяца, а потом началась чехарда — на чтении части файлов — ошибка ФС, несколько файлов читались нормально, но были слегка битыми — на bitflip не проверял, но он там скорее всего и был.
                                  П.С. Не смотря на поддельность это не была флешка вида «128Гб надпись на 1Гб памяти»
                                    +1
                                    благодарю за комментарий, bit flip следует понимать широко — т.е. много битых битов тоже считаем bit flip;

                                    если не возражаете, два вопроса:
                                    1) с формулировкой (выше) «слегка битые» файлы следует понимать как файлы, содержимое которых было изменено флэшкой без Вашего участия/намерения, и которые считывались совершенно безотказно, но частично не совпадали с тем, что было изначально записано?
                                    2) можно ли с уверенностью утверждать, что в Вашем случае отключение флэшки от хоста было сделано корректно (Eject Removable Media), и файловая система не была нарушена в результате пропущенной таким образом отложенной записи?
                                    3) какой был тип (расширение) у испорченных файлов и чем обнаружилась порча?
                                      +1
                                      1) Именно так.

                                      2) umount /mnt/flash или «безопасное отключение» делаю всегда, после того как налетел на отложенную запись в win 2k.

                                      3) *.jpg, *.txt и собственный формат. Соответственно порча файлов была обнаружена в первых двух случаях глазами ( опечатки бывают конечно, но не в copy-paste вывода своего же софта, ну а с jpeg-ом — он от одного бита может так «развалиться», что будет видно невооруженным глазом ), в своем формате — софт отругался, что в данных фигня, которую он не ждет.
                                        0
                                        Что ж, внешние признаки аналогичны описанному мною случаю

                                        … где достаточно разборчиво увидел замены отдельных букв в тексте. Это трудно описать словами, но будто через строго одинаковые интервалы символов палец программиста проваливался между клавиш. Затем [чик-чик] осмысленный скрипт обрывался и перерастал в случайный набор байтов


                                        поскольку Вы с клавиатурой явно работаете не хуже меня, видимо, это было как раз то самое:)

                                        благодарю за комментарий
                                    +1
                                    Стоит себе флешка в роутере уже 5-й год (пережила Asus WL-500W, RT-N16 и сейчас вот в RT-N66U).
                                    На ней софт установлен. Торренты качает/раздает, работает WEB сервером, FTP.
                                    И никаких проблем.
                                    Флешка — какой-то Trancend на гиг.
                                    +1
                                    Флешка — какой-то Trancend на гиг.


                                    это не «какой-то», это как раз Transcend SLC, хоть и бытовой :) Поздравляю с хорошим устройством, cм. мой коммент.

                                    Но самое главное то, что объем Вашей флэшки может означать как раз технологию SLC, у которой большой ресурс записи (100,000 циклов). Т.е. по микросхемам NAND это легко может оказаться «гражданский» вариант промышленного изделия TS2GUFM-V, о котором я писал. Предполагаю, что у Вашей флэшки попроще математика — вероятно, медленнее (скорость на уровне 5-10Мб/с) и с более примитивной контрольной суммой. Cейчас в обычном магазине непросто найти флэшку Transcend на 4Гб, но это хороший вариант для embedded систем именно из-за SLC.


                                    и вот еще из поста
                                    Вот вам и инженерный парадокс: в теории старая, крупногабаритная флэшка на 2Гб (наверняка SLC) даже остатком(!) своего ресурса по надежности может заткнуть за пояс совершенно новую суперкомпактную «кроху» на 16Гб (наверняка изготовленную по MLC или TLC технологии). Хотя я бы не стал проверять этот довод на «боевом» сервере.


                                    все ответы на Ваш комментарий уже есть; бытовые роутеры — это как раз самая настоящая embedded-система, там внутри тоже флэш-память, и наверняка SLC
                                      0
                                      Вот я знал, что от чтения флешки сдыхают. И даже в JFFS (файловая система для raw mtd) вроде как специально поддерживается подсчёт числа чтений из каждого блока, чтобы по достижении какого-то порога его переписать в другое место. Но чтобы на практике встретиться с этим явлением, да ещё в обычной бытовой флешке…
                                        0
                                        Поскольку мы обсуждали преимущественно NAND, то вероятно, что Вы имеете в виду все-таки JFFS2, cудя по статье в Wikipedia. Более старая JFFS (снова статья Wikipedia) была разработана для NOR-памяти, которая имеет сложности с записью, но никак не с чтением.
                                        В статье про JFFS2 я увидел только упоминание wear leveling (экономия записи), но про чтение ни слова. См. также документ Software Profile: Journaling Flash File System, Version 2 (JFFS2), ссылка оттуда же. Может, я что-то пропустил?

                                        Что бы это ни было (противодействие износу на запись или защита от read disturb), это просто вынос функций «бортового» МК флэшки на уровень файловой системы, для упрощения логики самой флэшки. И если верить Википедии, JFFS2 была включена в ядро Linux аж в далеком 2001г., и за это время многое поменялось.
                                        0
                                        Не очень понял механизм порчи данных во флэш от чтения. Запись понятно, высокое напряжение, которое нужно для инжекции заряда в плавающий затвор физически портит полупроводники.
                                        И еще непонятно, почему от чтения не портятся, к примеру, микроконтроллеры. Там прошивка тоже хранится во флэше, и непрерывно «читается» в процессе работы программы, со скоростями порядка 20-80 млн.раз в секунду, в течении десятилетий. И ни в одном даташите не упоминают о такой проблеме, как лимит чтений. Очень странно.
                                          +3
                                          Понял, в контроллерах NOR-flash, а она не подвержена Read disturb-у.
                                            0
                                            в точку, коллега! NOR-память гораздо быстрее читается, и команды МК может считывать прямо из нее, без копирования в ОЗУ. А вот NAND-память уже приходится доставать через периферию (SD/CF, шина SPI и т.п.)
                                          0
                                          Кажется полетел контроллер на Intel'овом SSD 330 Series. Диск не видится в системе и биосе, не определяется инетеловскими программами для работы с SSD. Кто-нибудь сталкивался с такой проблемой?
                                            +1
                                            Ну, помер. Чего удивляться?
                                            Пожелать счастья в том мире, если гарантийный — сдать в СЦ, поставить новый SSD, накатить данные из последнего бекапа и жить дальше.
                                              0
                                              По ряду причин в этой статье я намеренно избегаю явного описания «полновесных» дисков SSD

                                              я думаю, уместнее Ваш вопрос задавать где-нибудь на toster.ru
                                              всех благ
                                              0
                                              Кто-нибудь знает где купить это чудо? TS2GUFM-V
                                                0
                                                ответил в личку

                                                товар экзотический, объём очень малый, спросом не пользуется (потому что не так мало людей грузят систему с флэшек, и ещё меньше понимает разницу между SLC и MLC)
                                                  0
                                                  Поиск по ebay по словами «Transcend USB Flash Module»

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

                                                Самое читаемое