Твердотельные накопители в ЦОД: основные проблемы и методы их решения на примере семейства Kingston DC500

APC

Долгое время вопрос выбора технологии оперативного хранения данных не стоял в принципе – на рынке доминировали жесткие диски. И сейчас, и в ближайшей перспективе на них приходятся и будут приходиться основные объемы в емкостном исчислении, благо в плане удельной стоимости хранения информации прямых конкурентов для них все еще нет. Однако иногда достаточно и «непрямой» конкуренции – хотя бы потому, что большие массивы данных приходится не только хранить, но и обрабатывать. И обрабатывать быстро. Или, по крайней мере не медленно. Что делает необходимым внедрение твердотельных накопителей – причем разных.

SSD для «горячих» и «теплых» данных

Использование накопителей на базе флэш-памяти в корпоративном сегменте началось давно – еще тогда, когда ее цена была слишком высокой с точки зрения частных пользователей. В таких условиях разговор шел о высоконагруженных системах: когда ощущается недостаток производительности дисковой системы, денежные затраты перестают иметь определяющее значение. Этот сегмент активно развивался, что несколько лет назад привело к появлению протокола NVMe и поддерживающих его устройств, рассчитанных на подключение к интерфейсу PCIe. Сейчас именно они используются в тех случаях, когда важна максимальная производительность. Поскольку объем «горячих» данных обычно невелик, и емкость этой части СХД также невелика – как общая, так и самих составляющих ее накопителей (зачастую не превышает 1 ТБ).

Однако такое интенсивное развитие закономерным образом привело к появлению разрыва между жесткими дисками и топовыми SSD. Первые имеют высокую емкость и низкую стоимость хранения гигабайта информации – но слишком низкую производительность. Вторые обеспечивают очень высокую скорость – но вот с ценой как в абсолютном, так и относительном исчислении все достаточно «плохо»; равно как и с емкостью. При этом остаются неохваченными «теплые» данные: их много, медлительность жестких дисков замедляет работу, но высокоскоростные SSD для них слишком дорого обходятся. Значит нужен еще один класс твердотельных накопителей, в чем-то аналогичных nearline HDD – не самые быстрые, но относительно емкие и относительно недорогие. В системе хранения небольшого сервера они могут быть и лучшими по характеристикам.

Основные технические требования к ним полностью определяются назначением. Емкость одиночного устройства должна составлять от 0,5 до 4 ТБ, интерфейс – SATA. Почему не PCIe? Потому, что пока это дороже. Да и своеобразный дефицит линий PCIe уже нередок – поэтому их лучше оставить самым быстрым SSD. Или RAID-контроллеру: те же 4-8 линий позволят установить в систему не 1-2 NVMe-накопителя, а массив из 8 или более SATA-устройств. Особенно это важно с учетом наличия в эксплуатации не только новых, но относительно старых серверов – многие из которых можно существенно ускорить заменой части винчестеров на SSD. Соответственно, таковые должны подходить к стандартным дисковым корзинам, что хорошо сочетается с требования и к емкости, и к интерфейсу. Почему не SAS? Расширенные возможности такового нужны не всем, но стоят достаточно дорого – и на сегодняшний день обычно реализуются силами NVMe-накопителей. Поскольку любой SAS-контроллер поддерживает и SATA-устройства, но не наоборот, это также обеспечивает и максимальную совместимость.

Формально эти требования реализованы в огромном числе SSD-накопителей «бытового» назначения. Фактически же корпоративное окружение накладывает и дополнительные.

Несимметричность записи и чтения

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

SSD ведут себя по-другому. Скорость чтения данных оказывается высокой при любых условиях – отличаясь от жестких дисков в разы (на последовательных операциях) и даже на порядки (при более актуальной случайной адресации). Однако добиться того же от записи – сложно, а при недостатке свободного места – зачастую невозможно. Специфика заключается в том, что данные во флэш-память нельзя просто записать – сначала ее нужно стереть, причем размер блока стирания намного превышает размер страницы записи. Поэтому запись производится в «чистые» страницы (когда они есть) – даже при изменении информации: в данном случае просто старые данные помечаются как «мусор». Со временем это приводит к фрагментации свободного пространства – блоки заполняются вперемешку и актуальными данными, и мусором. При необходимости записать что-то еще, нельзя просто взять и очистить блок – придется переписать куда-то данные. Сборка мусора проводится всеми SSD – но обычно в периоды простоя, типичных для клиентских компьютеров, но не для серверов. Таким образом, при длительной нагрузке производительность операций записи оказывается намного более низкой, чем чтения, а в «хороших» условиях – стремиться к ней, но не достигает.

Еще одной проблемой, вызываемой постоянной (пере)записью блоков, является снижение сроков службы накопителя, причем нелинейное. Как уже сказано выше, когда свободных ячеек не хватает, накопители вынужден и записывать новые данные, и перезаписывать старые из блока в блок – для их очистки под стирание.

Решение указанных выше проблем существует и давно известно – если емкость области, выделенной под пользовательские данные, меньше полной емкости накопителя, у контроллера всегда есть резерв свободного места: которым он и пользуется для балансировки нагрузки, сборки мусора и т.п. Проблема такого подхода – платить приходится и за резервную емкость, а использовать только «полезную». Поэтому в потребительских моделях «запаса» обычно почти нет. Им это не мешает – длительных нагрузок тоже нет, свободное место (пусть и доступное ПО, но им не используемое) обычно есть. Все скоростные характеристики, декларируемые для потребительских моделей, в итоге относятся именно к случаю «пустого» накопителя.

В корпоративном сегменте такой подход неприемлем – может быть распределена и вся доступная емкость, а нагрузка (в том числе и по записи) быть постоянной. Именно такой режим и выбран как основной – и все скоростные показатели декларируются для устройства, заполненного минимум на 80%, благо другие покупателям и не нужны. С другой стороны, не во всех случаях нужна и высокая производительность на операциях записи. Как минимум, не для всех накопителей, установленных в системе – просто активно изменяемые данные нужно держать на тех, которые на это и рассчитаны, а неизменяемые – быстро читать с более дешевых (за счет лучшего соотношения полезной емкости к полной). Значит, нужны и т ее, и другие.

Защита от сбоев электропитания

Подавляющее большинство твердотельных накопителей (за исключением бюджетных моделей – или, напротив, топовых: использующих не NAND-флэш, а более быстрые типы памяти) снабжены внушительным количеством DRAM: от мегабайта на каждый гигабайт емкости. Вопреки расхожему мнению и в отличие от жестких дисков используется она в основном не для кэширования операций чтения/записи, а для обеспечения жизнедеятельности самого контроллера. В первую очередь хранения копии таблицы трансляции – она и только она определяет соответствие логических блоков физическим. Держать ее (хотя бы частично) в DRAM нужно, во-первых, для ускорения доступа, а во-вторых потому, что ее содержимое постоянно меняется: как уже было сказано выше, при перезаписи SSD записывают данные в новые физические блоки, а не меняют содержимое старых, но логические адреса остаются «старыми». Но динамическая память энергонезависимой не является, поэтому основным местом хранения таблицы трансляции и других служебных данных является сам основной массив флэш-памяти – куда и регулярно записывается информация из DRAM. Понятно, что делать это лучше при простое или вообще при выключении – дабы эти операции не сказывались на производительности.

Пока мы не выходим за рамки «бытового сегмента» проблем не возникает. Во-первых, интенсивных операций записи в нем нет, так что нет и «интенсивного» изменения таблицы трансляции. При этом простой – обычный «рабочий» режим для накопителя, да и перезагрузки/выключения системы происходят регулярно. Ни того, ни другого от сервера ожидать не приходится – эти системы могут интенсивно работать и месяцами. Соответственно, через некоторое время таблица трансляции, загруженная из флэша в DRAM при запуске, меняется до неузнаваемости. Но если в этот момент произойдет сбой питания, есть риск лишиться всех изменений с непредсказуемыми последствиями – вплоть до полной потери всей информации.

Понятно, что защита питания в любом дата-центре (да и вообще для отдельностоящего сервера) – краеугольный вопрос не только из-за накопителей. Однако дополнительные контуры безопасности «лишними» никогда не являются. В данном случае таковым контуром являются дополнительные конденсаторы с запасом энергии, для аварийного сброса содержимого DRAM во флэш при неожиданном пропадании питания. Ранее аппаратная схема защиты от сбоев питания (PLP) встречалась и во многих накопителях «бытового» назначения, однако сейчас от нее отказались практически все производители – не необходима, но повышает цену. В корпоративном сегменте, как уже сказано выше, без PLP тоже можно обойтись – но по мнению многих покупателей делать это не нужно.

Пример реализации: Kingston Data Center 500

Посмотрим – что интересного нам могут предложить производители на примере семейства дисков Kingston. Именно семейства – включающего в себя две линейки: DC500R и DC500M – как раз по описанной выше причине. По замыслу производителя, DC500R оптимизированы преимущественно на чтение данных, а DC500M – на смешанные нагрузки, т.е. сценарии, в которых встречаются и интенсивные операции записи. Технические характеристики обеих линеек приведены в таблице:

Как видим, они очень похожи – различия касаются только операций записи: представители линейки DC500M и более высокую производительность обеспечивают, и их гарантийный ресурс выше. По последнему можно приблизительно оценить – какова граница между преобладанием чтения и смешанной нагрузкой с точки зрения Kingston: накопители линейки DC500R «разрешено» в день перезаписывать на половину объема, а DC500M – почти в три раза интенсивнее. Что, естественно, не означает их бесполезность при меньшем количестве записей – производительность будет все-таки более высокой, чем у DC500R.

При этом и те, и другие устройства имеют сходную элементную базу. «Сердцем» является контроллер Phison S12 – восьмиканальный контроллер, появившийся одним из последних если говорить об устройствах с SATA-интерфейсом. Соответственно, и вобравшем в себя все лучшие наработки компании. Для обеспечения его работы используется DRAM-буфер DDR4-1600 немного разной емкости: в DC500R мегабайт на каждый гигабайт емкости, а в DC500M вдвое больше. А для хранения данных применяется 64-слойная память 3D NAND TLC производства Micron – но в разных количествах даже при формально одинаковой полезной емкости.

DC500R в этом плане неотличимы от большинства SSD – в массив флэш-памяти включено 16 или более (в зависимости от емкости) кристаллов таковой Восемь каналов с как минимум двукратным чередованием позволяют накопителям полностью задействовать пропускную способность SATA-интерфейса и при чтении, и при записи на всем объеме – а не только в пределах SLC-буфера. Размер резерва – также типовой: например, в накопителе на 480 ГБ есть 16 кристаллов по 256 Гбит, что дает «сырую емкость» в 512 «двоичных» гигибайтов. А из них нам надо получить 480 «нормальных» десятичных (которые меньше), так что в итоге получается примерно 15% резерва. В моделях большей емкости – все пропорционально.

Основным аппаратным отличием DC500M от собрата является как раз количество кристаллов флэш-памяти – оно кратно 20. Таким образом, те же 480 ГБ – на самом деле 640 ГиБ: просто резерв уже составляет порядка 30% емкости накопителя. Минимум столько будет всегда свободно – даже если устройство забить данными под завязку. Оперируя столь солидным запасом контроллер всегда сможет сбалансировать нагрузку, найдя полностью свободные блоки для новых операций записи. Что положительным образом сказывается и на скорости их выполнения, и на жизненном цикле накопителя – даже если его перегрузить работой так, что через несколько лет блоки флэш-памяти начнут выходить из строя (а ресурс NAND, к сожалению, конечен), долгое время это будет приводить разве что к некоторой деградации производительности – но не потере полезной емкости. Сначала придется израсходовать весь резерв – а его в данном случае много.

Конфигурация массива флэш-памяти является практически единственным различием между DC500R и DC500M – но определяющим с точки зрения нагрузок записи. И в плане цены, к сожалению, тоже – резервную емкость приходится оплачивать также, как и полезную. Поэтому и нельзя ограничиться всего одним семейством – ведь если количество перезаписей данных невелико, более дешевый DC500R справится с работой ничуть не хуже. А, например, танталовые конденсаторы для реализации аппаратного PLP есть в обеих линейках. И гарантийный срок составляет одинаковые пять лет – просто для DC500R гарантия жестче ограничена полным объемом записи, но это логично.

Что еще немаловажно: в отличие от многих собратьев по классу, для обеих версий DC500 нет каких-либо ограничений по каналам продаж – они имеют ритейловую упаковку и свободно поступают в розничные торговые сети. В первую очередь это оценят владельцы «небольших» дата-центров или просто одиночных серверов. Или, даже, частные пользователи: в конце-концов и с обычными для персонального компьютера / рабочей станции нагрузками эти модели должны справляться хорошо и без каких-либо нюансов, поскольку контроллеры имеют универсальное назначение. В наибольшей степени это касается DC500R, причем для повышения производительности на записи его можно и немного оттюнинговать.

Ручное изменение резерва

Причины, по которым необходим выпуск накопителей с разным количеством резервных ячеек, описаны выше – но ведь из них же однозначно следует, что любое фиксированное значение может оказаться неудобным. Например, устраивает цена и ограничение на полный объем записей DC500R – но хочется немного увеличить производительность операций записи, не замахиваясь на уровень более дорогого DC500M. Или совершенно обратный пример – когда и DC500M кажется мало. Не невозможно – 30% резерва очень солидно с точки зрения массового сегмента, но вообще на рынке встречались корпоративные накопители, где под резервные области отводилась и половина емкости. Понятно, что это увеличивает цену – но, если покупатели готовы платить, надо им предоставить такую возможность.

Для семейства DC500 она реализована – покупатель может увеличить резервную область за счет полезной. Вот обратный процесс не реализован, так что увеличить емкость DC500M на четверть не выйдет. Кроме того, понятно, что данный процесс затрагивает исключительно технические характеристики – но не условия гарантии, так что, если и «откусить» от DC500R те же 25 или даже 50% емкости под резервную область, записывать на него по-прежнему будет «разрешено» до половины паспортного объема в день. Так что данная операция не является альтернативой наличием пары аппаратно разных линеек – но увеличивает гибкость решения.

А выполняется все очень просто – для этого достаточно воспользоваться штатной утилитой Kingston SSD Manager. Она совместима со всеми накопителями компании и позволяет, например, обновить прошивку, посмотреть текущий уровень «здоровья»...

...или провести надежную очистку всего объема.

Но для SSD семейств Data Center (началось все еще во времена более старой линейки DC400) есть и возможность настройки размера пользовательской области. Достаточно выбрать новое значение...

В качестве своеобразной защиты придется ввести последние четыре цифры серийного номера того накопителя, емкость которого меняется.

И, собственно, все. Соотношение полезной и резервной емкости меняется так, как будет удобно покупателю. Почему нельзя ограничиться только программными настройками, не выпуская две линейки накопителей? Ранее как раз ограничивались – у Kingston DC400 аппаратная конфигурация была одна (точнее, по одной для каждой емкости). Однако такой подход тоже сам по себе не бесплатен – ведь увеличивая резерв мы уменьшаем емкость устройства. Так что в некоторых случаях лучше иметь гарантированный объем и гарантированную же производительность – что и достигается добавлением блоков флэш-памяти. А тюнинг можно оставить для «тонких» случаев – например, после покупки и тестирования накопителей в собственной системе и на практических задачах оказалось, что «гарантированного» уровня немного недостаточно. Либо изменились требования – вырос ежедневный объем записей и/или критичность скорости их выполнения. В этом случае не обязательно менять DC500R на DC500M или срочно докупать последние – возможно, проблему получится ликвидировать программным способом. За счет емкости, естественно.

Итог

Твердотельные накопители с SATA-интерфейсом полезны не только в новых высоконагруженных системах, где они могут занять промежуточное положение между скоростными NVMe-устройствами и емким, но медлительным хранилищем «холодных» данных на жестких дисках. Также их можно применять и для замены части жестких дисков в рабочих системах, что позволит при небольших затратах увеличить производительность системы хранения данных – и продлить срок эксплуатации техники. Однако нельзя забывать и о том, что эксплуатация SSD имеет свои нюансы – не типичные для жестких дисков. Но никаких нерешаемых проблем не возникает – их нужно просто учитывать. Ответственно подходя к выбору конкретных устройств, благо производители таковых стараются охватить все сегменты рынка, предлагая для каждого оптимальные решения. В частности, таково семейство Kingston Data Center 500, ориентированное на серверные нагрузки. Отличительными его особенностями являются аппаратная защита от сбоев питания (PLP), наличие модификаций с увеличенным резервом флэш-памяти, что улучшает работу при интенсивных операциях записи, а также возможность гибко конфигурировать соотношение пользовательской и резервной емкостей для тонкой подстройки производительности под конкретную систему. Потребительские модели SSD обходятся без всего этого ради снижения цены – на корпоративном рынке ни один из использованных подходов лишним не является.

АНДРЕЙ КОЖЕМЯКО