пятница, 22 ноября 2013 г.

SSD: SLC, MLC, eMLC

SSD - не заблудиться бы в трех соснах!


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

   Постоянное экспериментирование и калейдоскопичная смена моделей SSD - это поиск компромисса между надежностью хранения информации, долговечностью устройства и ценой. Флеш-память по своей природе деградирует в ходе эксплуатации. Каждая ячейка имеет конечное число циклов записи, по достижении которого надежность хранения настолько падает, что использовать ее теряет смысл. За количеством записей в ячейки и распределением нагрузки для равномерного их "износа" следит контроллер устройства, который в конце концов выдает системе сообщение: "все, писать в это устройство больше не могу, ресурс исчерпан". Вся информация остается доступной для чтения, но писать или изменять ее невозможно. Дополнительные накладные расходы на ресурсы накопителя привносит то - что доступ к ячейкам памяти на запись организуется блоками по 4 кб, а стирание производится сразу 512 кб. Для того, чтобы изменить один бит информации в записанном блоке, приходится записывать целиком 4 кб блок заново, а старый блок помечать как временно недоступный. Впоследствии, контроллер собирает из таких блоков 512 кб непрерывную страницу, перенося нужную информацию из нее на свободное место и махом очищает, подготавливая под дальнейшее штатное использование. Этой важной работой, называемой "сбором мусора", занимается утилита TRIM из набора команд интерфейса ATA. Расположение файлов и состояние блоков памяти хранится контроллером в служебной таблице FTL (Flash Translation Layer).

   Правильный выбор SSD

   Производители SSD разделяют изделия на 2 больших класса - "бытовые" (для ноутбуков, настольных систем) и "промышленные" (enterprise), предназначенные для использования в серверах, системах хранения, компьютерах с интенсивным потоком данных на запись. Кардинальное отличие этих классов в том, что в промышленных устройствах огромная часть общего пространства памяти недоступна для пользователя. Она включает в себя и резервные блоки для оперативной подмены вышедших из строя, и служебную область для "сбора мусора". Отсюда и другой уровень цен. При этом, накопители разных классов строятся на базе чипов памяти одного типа.
   Можно ли для сервера использовать накопитель "бытового" класса? При определенных условиях и с некоторыми оговорками - да. Рекомендуется ли это? Нет. Но, учитывая особенности конкретного применения и возможные последствия, к которым пользователь должен быть готов, допустимо.
   - на запись почти не работает, в основном - чтение. Запись при этом, "в чистом виде", то есть не модификация уже хранимой информации. Например, пользователь делает отдельный системный диск, а данные располагаются на другом устройстве. Обращение к SSD будет при запуске системы и при запуске утилит и программ во время работы (чтение), а также при записи логов системы (запись). По мере разрастания файлов логов их периодически просто чистят.
   - при достаточно интенсивном использовании SSD на запись, емкость накопителя подбирается такой, чтобы ее (с учетом полных циклов записи - это характеристика SSD, можно найти в описаниях) хватило на рассчитанное время эксплуатации. Например, примерно прикинули, что SSD исчерпает ресурс через 2 года. Через 1,5 года надо озаботиться покупкой нового SSD для замены. С учетом того, что емкость накопителей удваивается за год при сохранении цены, ко времени замены накопитель такой же емкости обойдется дешевле или за те же деньги будет куплен накопитель большей емкости. Рабочий вариант? Вполне.
   - сколько сможет - столько и проработает. Экономическое обоснование - как в предыдущем пункте. Отношение к накопителю - как к расходному материалу. Не знаю, как на западе, но у нас такая схема реально работает среди определенного круга пользователей.
   Есть ли необходимость использования SSD промышленного класса в персональном компьютере? В подавляющем большинстве случаев - нет. Это впустую потратить лишние деньги. Если только Вы не связаны с непрерывной обработкой постоянно меняющейся информации большого объема в максимально сжатые сроки

   Теперь о типах используемой памяти - в которых путаются по незнанию.

   SLC (Single Level Cell)

   С этого все начиналось. Одна ячейка - один бит. Несмотря на бОльшую износостойкость (порядка 100 000 циклов стирания), была практически полностью вытеснена памятью с многоуровневыми ячейками. Некоторые производители все еще производят SSD на SLC, но это больше маркетинговый, чем экономически обоснованный шаг - емкость производимых микросхем MLC не позволяет сделать накопитель емкостью меньшей определенного уровня. Ну, или например, Fusion-io все еще производит ioDrive2 Duo на SLC. Видимо, инженеры Fusion не уверены, что резервов MLC достаточно для приемлемого срока службы ускорителя при очень интенсивной нагрузке - для которой они и предназначены.

   Память с многоуровневыми ячейками - MLC (Multi Level Cell) и TLC (Triple Level Cell)

   MLC. Не очень логично повели обозначение. Мульти- , по идее, обозначает все, что больше одного. В это понятие должны входить и двух-, и трех-, и много-... Но так уж начали. Теперь MLC обозначают двухуровневые, а TLC - трехуровневые. Понятно, что чем больше уровней можно отделить - тем больше информации содержит индивидуальная ячейка. Соответственно - тем больший объем памяти умещается на заданной площади кремниевого чипа. Если грубо - MLC в два раза дешевле, чем SLC или имеет в два раза больший объем за те же деньги. С учетом резервирования емкости и восстановления информации за счет избыточности кодирования, на MLC чипах построили накопители с не худшими, чем на SLC эксплуатационными характеристиками. Хотя отдельная ячейка, при этом, менее стойкая - порядка 10 000 циклов стирания.
   TLC. Память с тремя уровнями представлена Samsung Semiconductor в 2012 году. Одна ячейка позволяет хранить 3 бита информации. На самом деле, все сложнее, чем на поверхности, так как в этой памяти требуется выделять 8 уровней напряжения - по 2 на каждый бит. Обратная сторона медали - меньшая надежность ячейки, связанная с сужением диапазона значений для идентификации состояния, более сложная схема определения состояния, необходимость более сложного избыточного кодирования, повышенное энергопотребление.
   eMLC выделяется отдельными производителями в отдельный тип и расшифровывается как "enterprise MLC". Скорее - это в большой степени маркетинговый ход. И во многих головах, благодаря ему вбито: "если enterprise SSD, то только на eMLC". Описание: eMLC это тип MLC памяти с расширенным количеством циклов стирания. Если "обычная" MLC имеет этот показатель на уровне 10 000, то в eMLC он составляет 20 000...30 000. За счет чего? Кремний тот же, топология тоже. В совершенно неожиданном месте приводится вполне земное объяснение. Для MLC памяти подбираются такие уровни напряжений и задержки между сигналами, чтобы она без ощутимого снижения производительности и надежности хранения работала в более щадящем режиме. Приводится следующая аллегория: "Представьте, что вам надо забить молотком гвоздь в стену. Если забьете гвоздь по самую шляпку, он будет держаться хорошо, но при этом вы пробьете довольно большую дырку в стене. Если же вы слегка наживите гвоздь парой ударов - дырочка будет значительно меньше, но и гвоздь будет держаться менее надежно". То есть, eMLC решение - это, как бы тюнинговый MLC, но не вперед, а чуть назад, для увеличения ресурса.

Комментариев нет:

Отправить комментарий