Это интересно.
SSD диски. Серверные решения.
SSD(от англ. Solid State Drive – твердотельный накопитель) представляет из себя запоминающее устройство хранения информации на основе микросхем памяти под управлением контроллера.
История создания и развития технологии SSD.
1978 год. Был анонсирован американской компанией StorageTek и впервые имел вид, основанный на RAM-памяти - полупроводниковый накопитель.
1982 год. Американская же компания Cray (один из лидеров рынка производителей суперкомпьютеров, штаб-квартира находится в городе Сиэтл в американском штате Вашингтон) представила мировой общественности полупроводниковый накопитель на RAM-памяти для суперкомпьютеров собственного производства, под торговой маркой Cray1, со скоростью 100 Мб/сек и Cray X-MP со скоростью 320 Мб/сек, в объемами, составившими 8, 16 или даже 32 x 106 x64-разрядных слов.
1995 год. Израильской компанией M-Systems впервые в мире представлен полупроводниковый накопитель на flash-памяти, который изначально создавался и был ориентирован на применение в военной и аэрокосмической технике, где непредставимо высокая (по тем временам) стоимость 1 гигабайта памяти была несколько компенсирована не только чрезвычайной надежностью, но и уникальными свойствами, позволявшими работу в крайне неблагоприятных условиях (экстремальные температуры, перегрузки, вибрации и т. п.).
2008 год. На одной из крупнейших выставок мирового уровня в Сеуле южнокорейской компанией Mtron Storage Technology был продемонстрирован SSD накопитель со скоростью записи 240 МБ/сек и скоростью чтения 260 МБ/сек. Правда объем был весьма скромным, на уровне 128 ГБ.
2009 год. В серийном производстве появилась линейка твердотельных накопителей Master Drive RX, выполненных в 2.5” форм-факторе. Она включает различные устройства емкостью от 128 ГБ до 512 ГБ (она была выпущена компанией Super Talent Technology). Регламентированная скорость чтения составила 230 МБ/сек, а записи – 160 МБ/сек.
В конце 2009 года компанией OCZ Technology закончила разработку SSD-накопителя Колосс (от англ. Colossus) в форм-факторе 3.5” и емкостью 1 ТБ. В соответствии с различными тестами скорость последовательного чтения составила от 223 МБ/сек до 261 МБ/сек, причем показатель для записи оказался таким же: от 223 МБ/сек до 261 МБ/сек.
По различным оценкам специалистов рынку твердотельных накопителей предполагают рост от 7 до 25 процентов в ближайшие годы, а к 2014 году его объем прогнозируемо составит свыше 7 млрд. долларов США.
Согласно интервью одного из представителей компании Kingston Technology, стоимость хранения одного ГБ данных может опуститься до одного доллара ориентировочно в третьем квартале 2012 года.
Флеш
Флеш-память, которая легла в основу технологии NAND-памяти, изобрел инженер компании Toshiba Фудзио Масуока в 1984 году. Сам термин флеш (от англ. Flash – вспышка) был придуман коллегой Фудзио, Сёдзи Ариидзуми, из-за субъективной схожести процесса стирания содержимого памяти и фотовспышки. После представления изобретения Масуоки на IEEE (от англ. The Institute of Electrical and Electronics Engineers) 1984 года на IEDM (от англ. International Electron Devices Meeting) в Сан-Франциско (Калифорния) компания Intel в 1988 году выпустила первый коммерческий флеш-чип типа NOR. Появление флеш-памяти типа NAND было провозглашено компанией Toshiba в 1989 году на конференции ISSCC (от англ. International Solid-State Circuits Conference).
Основополагающим принципом организации работы флеш-памяти является хранение ею 1 бита данных в массиве транзисторов с плавающим затвором (элементарными ячейками), путем изменения и регистрации электрического заряда в изолированной области полупроводниковой структуры. Главной особенностью полевого транзистора, позволившей получить всеобщее признание, как носителя информации, стала способность удерживать электрический разряд на плавающем затворе до 120 месяцев. Сам плавающий затвор изготовлен из поликристаллического кремния и со всех сторон окружен слоем диэлектрика, что исключает возможность контактирования его с элементами транзистора. Располагается между подложкой и управляющим затвором. Управляющий электрод полевого транзистора и именуется затвором.
Запись и стирание информации происходят за счет изменения заряда приложением между затвором и истоком большого потенциала, пока напряженность электрического поля в диэлектрике между каналом транзистора и изолированной областью не окажется достаточной для возникновения туннельного эффекта. Таким образом электроны переходят через слой диэлектрика на плавающий затвор, обеспечив его зарядом, а, значит, и наполнение элементарной ячейки битом информации. Также для усиления эффекта тоннелирования электронов при записи применяется слабое ускорение электронов путем пропускания тока через канал полевого транзистора.
Разность механизма записи и чтения влияет на энергопотребление этих режимов. NAND потребляет достаточно большой ток при записи, а при чтении энергозатраты невелики. Для удаления информации на управляющий затвор обеспечивается отрицательным напряжением высокой мощности с тем, чтобы позволить электронам переходить с плавающего затвора на исток. Подобная организация элементарных ячеек, объединенных в страницы, блоки и массивы и составляет твердотельный накопитель.
Конструкция NOR использует фундаментальную двухмерную матрицу проводников, состоящую из строк и столбцов, в которой на пересечении установлено по одной ячейке. При этом проводник строк подключается к стоку транзистора, а столбцов – ко второму затвору. Исток подключается к общей для всех подложке.
Конструкция NAND отличается, прежде всего, трехмерностью массива. В основе схожая с NOR матрица, но вместо одного транзистора в каждом пересечении устанавливается столбец из последовательно включенных ячеек. Даже при заметном усложнении алгоритма доступа к ячейкам для чтения и записи, резко увеличивается плотность компоновки.
Существовало множество других вариантов объединения ячеек в массив, однако, их использование оказалось нецелесообразным и они не получили права на жизнь.
NAND
Существует 2 типа NAND-памяти, которая может быть использована в SSD накопителях: SLC (от англ. Single Level Cell) и MLC (от англ. Multi Level Cell).
В SLC устройствах используются одноуровневые ячейки, хранящие в каждом транзисторе только 1 бит данных, а в MLC – несколько бит данных. Принцип кодирования данных во всех случаях идентичен, главное отличие состоит в строении ячейки. Глубина MLC может быть четырехкратно больше SLC, т.е. каждая ячейка может хранить до четырех бит информации.
Технология MLC позволяет развивать технологию SSD интенсивным путем, позволяя существенно увеличить объем хранимых данных лишь за счет наращивания уровней, что позволяет помещать большее количество данных в те же физические размеры. Однако, с использованием каждого дополнительного уровня задача распознавания уровня сигнала усложняется, увеличивается время поиска ячейки, повышается вероятность ошибок. Контроль ошибок выполняется аппаратно, что не может не сказаться на цене управляющей электроники и, как следствие, конечной стоимости SSD накопителя. Однако, в настоящее время занимают львиную долю рынка именно SSD в формате MLC, использующие четырехуровневую кодировку: 00, 01, 10, 11. Для SLC действительны значения лишь 0 или 1.
Решения на основе SLC, при прочих равных, совершенно определенным образом проигрывают решениям на основе MLC в объеме хранимой информации, однако, выигрывают у последних в скорости чтения и записи, а также обладают большим ресурсом отказоустойчивости. В то время, как для SLC типично ограничение в 100 000 циклов перезаписи, для MLC этот показатель примерно равен не более, чем 10 000 циклов перезаписи.
Одним из наиважнейших качеств NAND-памяти стало ее способность хранить данные без участия внешнего источника энергии. Однако, подобная автономность не может не приводить ограничения на число изменений логического состояния ячейки на пути последнему процессу перезаписи этой ячейки, в связи с постепенным разрушением диэлектрического слоя. Данный эффект наиболее заметен именно у SSD на основе MLC структуры, так как из-за конструктивных особенностей подобной архитектуры резерв изменения заряда крайне мал. Чтение ячейки также укорачивает время ее жизни, однако, это действует не в той же степени, как для записи или стирания, что заставляет измерять срок отказоустойчивости SSD именно в количестве циклов перезаписи.
Все SSD диски содержат в своей структуре часть, недоступную для стандартных операций чтения или записи, служащую как резерв в случае износа ячеек, по аналогии с обычными накопителями на жестких магнитных дисках, которые имеют подобную область для замены bad-блоков. Дополнительный резерв может быть использован по мере фактического износа основных элементарных ячеек и резервная ячейка предоставляется на замену динамически.
Физически SSD состоит из ячеек, каждая из которых может хранить, как правило, 2 Б данных. Объединение ячеек составляет страницу, вмещающую 4 КБ данных. 128 страниц объединяются в блок, объем которого составляет 512 КБ, 1024 которых составляют массив, объемом 512 МБ.
Алгоритм NAND
Из-за ограниченности ресурса отказоустойчивости SSD, ввиду лимитированности процессов перезаписи, был составлен алгоритм работы, позволяющий как можно более в равной степени задействовать ячейки. Вследствие этого потенциально увеличивается ресурс твердотельного накопителя.
Одним из краеугольных камней проблематики перезаписи SSD является вопрос размера записываемой информации, который не может быть менее 4 КБ, а стирание данных возможно только блоками не менее 512 КБ каждый. Для этой операции контроллер группирует и переносит данные для освобождения целого блока, что не может не сказываться на времени отклика, увеличивая его, и на ресурсе твердотельного накопителя, уменьшая его, соответственно.
После получения команды ОС на запись, контроллер SSD определяет размер и структуру информации. При наличии доступного и достаточного числа незаполненных блоков, выделяется новый блок, на который и копируется информация, переданная операционной системой для записи. По мере заполнения диска и снижения количества пустых блоков, операция заметно усложняется. Контроллеру все чаще приходится искать пустую структуру, максимально подходящую по количеству свободных страниц и занятости в целом. Найдя нужный, он переписывает его в пустой блок, совмещая с данными, пришедшими от системы для записи, что целиком заполняет его, далее инициируется процесс полной очистки старого блока. После завершения этих операций из одного частично заполненного блока и одного пустого получается один заполненный блок и один совершенно пустой, доступный для дальнейшей записи ввиду полного стирания информации на нем, и который учитывается (и помечается) контроллером, как доступный для записи. При получении команды на запись контроллер первым делом проверяет группу с данной маркировкой на наличие свободных блоков.
Наиболее часто используется компоновка контроллера 10 каналами. Вся совокупность микросхем равномерно закреплена за каждым каналом обмена данных. В настоящее время и на данном этапе развития технологии SSD, микросхемы памяти, которые взаимодействуют с с одним из каналов, не могут пересекаться в операциях с другими каналами, однако, все может измениться кардинальным образом в совсем недалеком будущем - путем использования «плавающих» связей для всей памяти, которая размещена на диске. Из-за часто возникающей потребности записи очереди из большого количества данных, весьма небольших по объему, контроллеру возможно распределять весь блок по всем каналам автоматически, сохраняя связь между ячейками, т.к. вся эта информация проявляется в виде одной логической единицы.
Операция удаления данных настолько же специфична и всецело зависит от объема и размещения данных, помеченных к удалению. Достаточно прост тот случай, когда данные, которые необходимо удалить, полностью занимают пространство одного или группы блоков. В подобном случае данные удалятся обычным стиранием, помечаясь как пустые и готовые к новой записи с максимально возможной скоростью, безо всяческих танцев с бубном и им подобным заклинаниям матерых системных администраторов.
Есть небольшие тонкости в случае, если данные для удаления занимают не все пространство блока, а лишь небольшую его часть (несколько страниц). В таком случае контроллер просто помечает данные, как удаленные, не стирая их, однако, В дальнейшем, при первой же возможности, информация будет консолидирована с новой, команда на запись которой пришла от операционной системы, и записана в пустой, и помеченный готовым для записи, блок, тогда как в исходном блоке информация будет удалена уже полностью и сделана пометка о готовности к записи.
Тримминг
Для ускорения работы операционной системы и соответствия целевой составляющей, в современных SSD функция (команда) TRIM, отвечающая за построение цепочки и определение приоритета освобождаемых блоков, была исключена из задач ОС и возложена на аппаратную составляющую контроллера SSD. Данная технология обеспечивает более равномерный износ SSD и возможность более оперативной работы с данными.
Наличие свободного места на SSD диске прямо связано по виду постоянно возрастающей функции со временем по стиранию информации с блоков, то есть чем меньше информации и, соответственно, больше объем свободного пространства на диске, тем быстрее выполняется функция TRIM на SSD. Однако, последнее утверждение верно лишь до того момента, как объем информации на диске не достигнет 75 процентов от его конечного объема. До этого значения функция TRIM позволяет сократить разницу между новым, незаполненным SSD и заполненным на 74 процента до всего лишь 2-3 процентов. А как только объем заполненности диска достигает порогового значения в 85 процентов, корректное исполнение функции TRIM становится затруднительным.
Согласно исследованиям, проведенным компанией IBM, все вышесказанное верно лишь в «идеальных» случаях, когда верно соотношение статической (информация, которая редко перемещается и используется в основном лишь для чтения, называется статической) и динамической информации, выглядящее, как 3 к 1, в остальных же случаях скорость и возможности функции TRIM могут отличаться от «идеальных».
Кэш-буфер
Буфер на SSD носителях применяется не для увеличения скорости записи или чтения, как это бывает для комплексных решений объединения HDD и SSD в одном физическом носителе. Он не является обычной кэш-памятью в общем смысле.
Кэш-память в SSD дисках, хотя и не указывается в технических характеристиках и спецификациях SSD основной массой производителей, однако, выполняет множество функций, среди которых можно выделить функции:
хранения таблиц размещения и занятости ячеек диска;
хранения временной информации со стираемых ячеек, если свободного места на диске недостаточно для сохранения данной информации;
хранения информации о частоте и интенсивности использования каждого готового к записи блока на твердотельном носителе;
хранения информации об адресах мест, в которых осуществление записи невозможно, из-за физического износа ячеек.
Трехмерная матрица, в которой хранится информация, которая необходима контроллеру SSD для принятии решения о стирании дополнительных ячеек, называется таблицей.
Контроллер SSD
Одной из наиболее важных составляющих SSD является контроллер.
На уровне элементной базы контроллер составляет следующий набор оборудования:
процессор – как правило, в его роли выступает x16 или x32 разрядный микроконтроллер, который призван выполнять функции микропрограммы, отвечающей за перемешивание и выравнивание данных на flash, диагностику SMART, кэширование и безопасность;
ECC (от англ. Error Correction) - блок контроля и коррекции ошибок;
flash контроллер – включает адресацию, шину данных и контроль управления микросхемами flash-памяти;
DRAM контроллер – адресация, шина данных и управление DDR/SDRAM кэш-памятью;
I/O интерфейс – отвечает за интерфейс передачи данных на внешние интерфейсы SATA, USB или SAS;
Controller Memory – состоит из ROM-памяти и буфера
Наиболее важными его функциями являются:
обеспечение операций чтения и записи;
управление структурой размещения данных;
обеспечивает максимально длительный срок отказоустойчивости твердотельного накопителя на основе информации, какие ячейки были подвержены записи, а какие – еще нет.
Корректно настроенный и оптимизированный контроллер может существенно повысить как скоростные показатели, так и увеличить срок отказоустойчивости SSD.
Преимущества и недостатки SSD в сравнении с HDD.
высокая надежность за счет отсутствия движущихся частей;
высокая скорость чтения и записи;
высокая механическая стойкость к перегрузкам, перепадам давления и температуры, тряске и т.п.;
полная бесшумность ввиду отсутствия движущихся частей;
низкое энергопотребление;
стабильная скорость обработки данных вне зависимости от их расположения на диске или его фрагментации (до 85 процентов заполненности диска);
себольшие габариты и вес;
слабый нагрев;
предсказуемая производительность, в отличие от традиционных HDD, может быть даже подсчитана на основе данных о задачах и использовании, ввиду отсутствия влияния факторов, способных воздействовать на физическую составляющую твердотельного накопителя;
большой потенциал развития технической мысли для организации и структуры SSD.
Недостатками SSD являются:
чрезвычайно высокая цена за 1 гигабайт носителя информации;
ограниченное количество циклов перезаписи информации;
низкая емкость носителей (до 1 ТБ);
уязвимость к некоторым внешним факторам воздействия, включая внезапное полное отключение питания, магнитным полям и статическому электричеству;
значительный комплекс мер, который необходимо предпринять для улучшения совместимости SSD с устаревшими операционными системами.
Особенности применения SSD.
Твердотельные накопители информации позволяют значительно улучшить производительность системы. Однако, улучшение характеристик можно достичь лишь при достаточной мощности host-системы. Например, Pentium 4 физически не способен справиться с огромным количеством операций ввода/вывода современных SSD-дисков, а уровня Xeon будет весьма актуален. Таким образом перед конечным пользователем, возможно, стоит вопрос модернизации сервера.
Из-за особенностей организации работы современных контроллеров информация не всегда удаляется физически, даже после получения контроллером команды на стирание. Для гарантии стирания информации с твердотельного накопителя следует использовать специальные программные средства и утилиты.
Прошивка во многих случаях улучшает производительность системы, исправляет возможные ошибки и улучшают возможный алгоритм работы. Регулярное ее обновление не может не сказаться благоприятным образом на производительности всей системы путем ускорения обработки данных SSD.
Широко распространено мнение, что SSD как никакой другой носитель информации подходит для хранения файла подкачки операционной системы. Вместе с тем, что такое мнение соответствует действительности, нельзя не отметить тот факт, что тем же целям может служить достаточное количество оперативной памяти, чтобы избежать обращение к файлу подкачки и, как следствие, продлить ресурс его использования. Уровень достаточности количества оперативной памяти определяется для каждой системы индивидуально, однако, есть и абсолютное значение – максимальный уровень оперативной памяти, который поддерживает платформа. Достижение его в большинстве случаев гарантирует, косвенно, увеличение срока службы SSD.
Заключение
SSD-диски — динамично развивающаяся технология и в будущем твердотельные диски смогут занять те ниши, где традиционно используются HDD-диски. Сейчас же используя их как серверное решение не стоит забывать о регулярном резервном копировании данных на другие носители и следует готовиться к дополнительным затратам на замену вышедшего из строя оборудования. Использование SSD актуально в проектах, где требуется высокая скорость доступа к постоянным данным, не требующим частой перезаписи.
Братченко Роман.