44
SSD-накопители: долгая дорога на Олимп
Несмотря на то что объемы как генерируемых, так и запрашиваемых пользователями данных растут удивительными темпами, индустрия устройств хранения до недавнего времени развивалась поступательно, постепенно наращивая емкость HDD и увеличивая их быстродействие. Однако в 2008 г. все же произошло событие, определившее новую ступень эволюции этого рынка – выпуск компанией Intel первой линейки пользовательских SSD X25, за которым последовал бурный рост сегмента твердотельных накопителей.
Достоинства и недостатки SSD
Твердотельные накопители, основывающиеся на флэш-памяти, имеют довольно много преимуществ перед традиционными магнитными жесткими дисками. Прежде всего их производительность в операциях чтения благодаря полному отсутствию механических частей (вращающихся пластин, позиционера и т. д.) иногда на порядок превышает быстродействие HDD (например, время доступа составляет 0,1 мс, тогда как для современных НЖМД с частотой вращения 15 000 об/мин этот параметр достигает 3,5–4 мс). Также SSD выгодны своей устойчивостью к сотрясениям и падениям. Наконец, немаловажен фактор экономичности: энергопотребление твердотельных накопителей сравнимо с показателями 2,5″ жестких дисков в момент активной записи, однако при простое они практически полностью пассивны, потребляя лишь мизерное количество тока для питания контроллера. Соответственно, и тепловыделение их невысоко.
Наиболее скоростными являются SSD, основанные на чипах памяти NAND с одноуровневой организацией (SLC). Эти устройства демонстрируют отличные показатели скорости и латентности записи, однако есть и традиционная «ложка дегтя»: SLC-чипы дороги и не могут похвастаться такой емкостью, как MLC (чипы с многоуровневыми ячейками). Соответственно, область применения подобных SSD довольно узка: высоконагруженные серверы баз данных, веб-серверы и другие системы, в которых одновременно происходит большое количество запросов как на случайное чтение, так и на запись, но не критична емкость хранилища. При использовании HDD для наращивания производительности приходится увеличивать количество дисков, в то время как один Intel X25-E, например, сравним по быстродействию с массивом из 10–12 НЖМД с частотой вращения 7200 об/мин.
Для продуктов среднего класса, предназначенных для высокопроизводительных персональных компьютеров и рабочих станций, в основном используется память MLC, позволяющая добиться достаточного быстродействия при чтении (что, в общем-то, – главный козырь SSD), сохраняя при этом большую емкость и приемлемую цену. Для сравнения, современные накопители на MLC уже достигли объемов 256–512 ГБ при стоимости около $300–600 (в зависимости от характеристик), в то время как устройства корпоративного уровня на SLC преимущественно характеризуются емкостями 32–64 ГБ и ценником, варьирующимся от $800 до $1000. Однако MLC не является прерогативой продуктов сугубо потребительского уровня: многие производители выпускают устройства enterprise-класса на базе этой памяти, вплоть до специализированных SSD в формфакторе карт расширения PCI Express x8.
Недостатки твердотельных накопителей в большинстве своем определяются самим фактом использования флэш-памяти в их основе. Прежде всего главным сдерживающим фактором на пути SSD в каждый компьютер и ноутбук является цена: если 1 ГБ дискового пространства на магнитных пластинах уже оценивается в 7–8 центов, то 1 ГБ быстрой NAND – в $2. Соответственно, и емкости устройств пока остаются скромными: самые продаваемые на данный момент 64-гигабайтовые модели, а более вместительные пока относятся к высшим ценовым сегментам. Впрочем, большинство основных вендоров уже представили модели на 256 и 512 ГБ, да и конкуренция между ведущими производителями памяти (Samsung, Intel, Toshiba, Micron) постепенно обостряется, делая цены все более демократичными. Самым же пугающим для потребителя недостатком SSD является тот факт, что его ресурс конечен: ячейки в MLC-чипах рассчитаны на 10 000 циклов записи, а в SLC – на 100 000. Теоретически при значительной нагрузке на накопитель с большим количеством сохраняемых на него данных он может выйти из строя довольно быстро, однако на самом деле в типичном ПК или рабочей станции процент записи не так высок, и при ежедневном сохранении на 80-гигабайтовом SSD даже 15–20 ГБ данных ресурс ячеек будет исчерпан не ранее чем через пять лет (при условии корректной организации служебных алгоритмов балансирования нагрузки). Также можно отметить, что при работе этих алгоритмов невозможно обеспечить надежное шифрование уже сохраненных на диск файлов, поскольку они не позволят записать защищенные данные в те же страницы поверх хранившихся ранее незащищенных, и, соответствен-но, незашифрованная копия физически останется на месте. Частично эта проблема нивелируется вручную (удалением исходного файла с передачей команды TRIM), частично – простым отключением алгоритма wear leveling.
Деградация в процессе работы и борьба с ней
Рис. 1. Механизм перезаписи освобожденных страниц в SSD |
Особенность накопителей на базе флэш-памяти типа NAND состоит в том, что в них применяется группировка страниц, хранящих данные, в блоки. На сегодняшний день типичным является размер страницы 4 КБ и блока – до 128 страниц (512 КБ). Из чипа NAND можно считать содержимое любой произвольной страницы или записать в нее данные, однако перезапись и удаление выполняется только блочно. Именно в этом корень всех основных проблем SSD с производительностью. Рассмотрим их подробно.
При использовании крупных файлов никаких сложностей обычно не возникает, поскольку блок полностью заполняется и полностью же и очищается. Однако при записи большого количества мелких файлов и в особенности в случае активного применения диска в качестве системного раздела либо для кэширования (т. е. частой перезаписи, удаления файлов и т. п.) постепенное заполнение SSD чаще всего сопряжено с падением быстродействия при записи. Выглядит это следующим образом (рис. 1):
1) вначале блок заполняется файлами подряд, пока в нем есть свободные страницы;
2) в какой-то момент пользователь удаляет какой-то из файлов, в результате в блоке образуется свободное пространство, однако свободно оно только логически (на уровне файловой системы), физически же данные в страницах так и остались;
3) когда появляется необходимость записать на диск новые данные, операционная система «смотрит», где в ФС есть свободное место, и отправляет файл туда. Вот тут-то и появляется «бутылочное горлышко», связанное с особенностью NAND;
4) упрощенно, поскольку SSD не может просто перезаписать отмеченные незанятыми страницы, ему приходится полностью считывать блок в 512 КБ (в лучшем случае – в кэш на кристалле контроллера, в худшем – в ОЗУ компьютера), заменять старые данные на новые и снова записывать весь блок. Представьте себе падение производительности, когда вам нужно записать 4 КБ (например, сработает автосохранение текстового редактора), а диск будет сохранять все 512 КБ, предварительно считывая их. Несоответствие объема сохраняемых пользователем и записываемых диском данных называется коэффициентом преумножения записи (write amplification). На SSD бюджетного класса со слабыми контроллерами эта особенность часто приводит к тому, что итоговая производительность устройства быстро падает до абсолютно неприемлемых значений, и вместо многократного превосходства над HDD твердотельный диск начинает им сильно уступать.
Рис. 2. Алгоритм garbage reduction – фоновой оптимизации записи |
Методов борьбы с этим явлением несколько. Прежде всего подавляющее большинство накопителей записывает каждую новую порцию таким образом, чтобы блоки заполнялись полностью. Это, впрочем, помогает мало: во всех SSD есть механизм wear leveling (минимизации износа ячеек), который следит за тем, чтобы сохранение осуществлялось равномерно между всеми чипами накопителя, поскольку они имеют ограниченный запас циклов записи. Еще одним способом является оснащение накопителя большим объемом памяти, нежели доступно пользователю, чтобы даже при высокой степени заполнения диска физически контроллеру были доступны дополнительные свободные блоки, в которые можно записать файл. Накопитель оценивает, какие из занятых блоков содержат наименьшее количество полезных данных, считывает их и добавляет к переданным на запись таким образом, чтобы взятый из резерва чистый блок был заполнен на 100%, а высвобожденный очищает и отправляет в резерв (рис. 2). Подчеркнем, что за счет этого дополнительного пространства емкость SSD не растет, этот резерв используется только для увеличения быстродействия при средней степени фрагментации. В конечном итоге «запасные» блоки все равно заканчиваются, и эффективность устройства падает. Тем не менее это позволяет добиться значительного снижения коэффициента преумножения записи, поскольку теперь не нужно каждый раз перезаписывать весь блок в 512 КБ при записи единственной страницы, можно скомпоновать занятые страницы рационально. Intel заявляет, что в топовых SSD X25-E этот коэффициент обычно равен 1,05–1,1 благодаря тому, что диск содержит дополнительные 20% резервного пространства. Также немаловажна, хоть и неочевидна, необходимость поддержки в твердотельных накопителях технологии NCQ: если контроллер сможет перестроить очередь записи, у него будет возможность компоновать страницы более оптимально. Также большинство контроллеров умеют перед записью данных, занимающих одну страницу, объединять их в массивы из нескольких с целью более эффективного использования канала.
Поскольку избыточная запись все равно неизбежна, разработчики контроллеров стараются уменьшить затраты времени на эту процедуру, размещая на кристалле собственный кэш либо достаточно емкий буфер на плате контроллера (в современных накопителях типичным значением является 64 МБ). Наконец, наиболее эффективный на сегодняшний день способ борьбы с «остатками» удаленных данных – команда TRIM, поддержка которой реализована в Windows 7 и некоторых современных сборках Linux. Работает она следующим образом: при инициализации диска ОС запрашивает среди всех его параметров частоту вращения и при получении ответа «0» определяет, что это SSD. После этого при удалении файла драйвер контроллера сразу посылает накопителю команду TRIM, при обработке которой он сам физически удаляет данные, как только появляются свободные ресурсы. Это, конечно, также замедляет систему (процедура-то все та же), но в подавляющем большинстве случаев скорость удаления файлов вовсе не так критична, как записи. Таким образом, при использовании твердотельного накопителя в качестве системного раздела проблем, в основном, возникать не будет: временные файлы, создаваемые при работе ПО и ОС, удаляются и тут же очищаются, и производительность не деградирует. Правда, эффективность реализации TRIM может быть очень разной: практически все современные модели SSD поддерживают эту команду, однако далеко не все торопятся ее исполнять сразу после удаления, предпочитая дождаться периода простоя накопителя. Естественно, в высоконагруженной системе его можно не дождаться никогда. Еще один нюанс: при перезаписи TRIM не работает, так как в этом случае нет ранее удаленного файла. Поэтому, в частности, файл подкачки ОС на SSD держать не стоит. В целом поддержка этой команды позволяет удерживать негативный эффект от фрагментации блоков в пределах 5–7% как для линейных скоростей, так и для средней латентности (хотя при работе алгоритмов очистки и перераспределения иногда можно заметить резкий рост максимальных задержек записи).
Эволюция SSD
Контроллер Intel X25 – 2 года в лидерах |
Indilinx Barefoot – основа большинства топовых SSD |
Toshiba T6UG1XBG: неплохая производительность и поддержка TRIM |
Marvell 9174 – первый контроллер SSD с поддержкой SATA 6 Gbit/ |
Конечно, история твердотельных накопителей началась вовсе не в 2008 г., как мы заявили выше. Первое устройство хранения на базе флэш-памяти было представлено компанией M-Systems (в дальнейшем приобретенной известным гигантом Sandisk) еще в 1995 г. Это были вовсе не похожие на сегодняшние устройства продукты, ориентированные на применение в сферах с высокими требованиями к надежности при работе в среде с высокими перегрузками, возможностями ударов и падений, неблагоприятными условиями работы и т. п. Они довольно быстро завоевали популярность у военных и аэрокосмических ведомств, однако крайне высокая стоимость не позволяла им конкурировать с HDD в менее нишевых сегментах.
Настоящий ренессанс SSD начался в 2007 г., когда многие производители портативных ПК стали представлять нетбуки и ноутбуки, оснащенные этими устройствами. В основном это были либо попросту напаянные прямо на материнскую плату контроллеры с чипами NAND, а мотивом чаще всего выступало пониженное энергопотребление таких решений, быстродействие зачастую приносилось в жертву автономности систем. На десктопном рынке приход SSD состоялся в 2008 г. именно благодаря настойчивости корпорации Intel, сделавшей ставку на свою линейку X25 и не прогадавшей. К тому времени на рынке уже были представлены модели от Samsung, OCZ и MTron, однако популярностью они не пользовались. Новые устройства процессорного гиганта демонстрировали огромную производительность и стимулировали появление большого количества конкурирующих моделей. К сожалению, зачастую соперничество было только номинальным: поскольку высокая цена на Intel X25-M, не говоря уж о топовых X25-E, не позволяла надеяться на быстрое массовое распространение этих моделей, многие производители обратились к разработчику бюджетных контроллеров JMicron.
Как выяснилось, это было ошибкой: контроллеры оказались крайне медленными, поскольку, во-первых, предоставляли только восемь каналов доступа к NAND против десяти у Intel, во-вторых, основывались на медленном ядре, и в-третьих, не применяли кэш ни для пользовательских данных, ни для хранения таблиц адресации и другой служебной информации. Некоторые производители пытались исправить положение, устанавливая два чипа в одно устройство в режиме RAID-0, однако это слабо помогало. В итоге сложилась ситуация, когда при довольно большом количестве моделей на рынке выбрать что-либо хорошее, кроме продуктов Intel и базирующихся на них Kingston, попросту было невозможно. Побочным эффектом стало еще и формирование мнения о том, что SSD – это «дорого, медленно и бессмысленно» либо «все же быстро, но очень дорого».
Через некоторое время на рынок начали выходить новые контроллеры, как следствие, ассортимент расширился и альтернатива Intel X25-M все же появилась. Основным игроком на рынке 2,5-дюймовых накопителей с интерфейсом SATA благодаря крупным OEM-заказам стала Samsung, в рознице устройства на базе платформы Samsung S3C29RBB01 предлагали OCZ, Corsair, Kingston и другие производители. Однако быстродействие этих моделей можно было охарактеризовать как «среднее», к тому же они не позволяют обновление прошивки силами самого пользователя, что исключало исправление ошибок и внедрение новых функций (вроде поддержки TRIM) после покупки.
И тогда на рынке появились SSD на основе контроллеров Indilinx Barefoot. Практически неизвестный ранее разработчик в одночасье прославился тем, что его чипы устанавливались в топовые накопители, способные конкурировать с «царями горы» от Intel. В числе первых вендоров с подобными моделями оказались OCZ и SuperTalent, а на сегодняшний день эта платформа используется практически всеми производителями. Indilinx довольно активно поддерживает контроллер, часто выпуская свежие версии прошивки, которые пользователь может устанавливать сам. В результате на сегодняшний день подавляющее большинство SSD среднего класса базируется на этой платформе, и скоростные различия в них обусловливаются в основном лишь применением разных чипов флэш-памяти. Samsung же быстро теряет позиции, проигрывая Toshiba: японская корпорация также предлагает полную платформу с контроллером и памятью, которая не столь уж значительно превосходит Samsung RBB, однако поддерживает TRIM.
Что касается Intel, то корпорация не почивала на лаврах, перейдя с 50-нанометровой на 34-нанометровую память NAND, что позволило значительно увеличить быстродействие и снизить цены. Кроме того, были представлены модели малого формфактора 1,8″ X18, а также накопитель начального уровня X25-V, позиционируемый как замена системным HDD. Фактически это был тот же X25-M с уменьшенным вдвое количеством чипов памяти и каналов доступа к ним.
Наконец, совсем недавно рынок пополнился сразу двумя высокопроизводительными платформами. Одна из них – новый контроллер Marvell 88SS9174, поддерживающий SATA 6 Gbit/s и на сегодняшний день представленный единственной моделью SSD – Crucial RealSSD C300. Вторая – серия контроллеров идущей по стопам Indilinx компании Sandforce, состоящая из моделей SF-1500 и SF-1200. Эти чипы во многом работают принципиально по-другому и заслуживают отдельного обзора, потому мы вернемся к ним, когда до Украины доберутся первые накопители на их основе.
Источник: http://itc.ua