- PVSM.RU - https://www.pvsm.ru -
В статьях про СХД из "конспекта админа" практически не рассматривались технологии софтовой организации дискового массива. Кроме того, за кадром остался целый пласт относительно дешевых сценариев ускорения хранилищ с помощью твердотельных дисков.
Поэтому в этой статье рассмотрю три неплохих варианта использования SSD-дисков для ускорения подсистемы хранения.
Чаще всего твердотельные накопители рассматривают просто как альтернативу HDD, с большей пропускной способностью и IOPS. Однако, такая замена "в лоб" часто стоит слишком дорого (брендовые диски HP, например, стоят от $2 000), и в проект возвращаются привычные накопители SAS. Как вариант, быстрые диски просто используются точечно.
В частности, удобным выглядит использование SSD для системного раздела или для раздела с базами данных – с конкретным выигрышем в производительности можно ознакомится в соответствующих материалах [1]. Из этих же сравнений видно, что при использовании обычных HDD узким местом является производительность диска, а в случае SSD сдерживать будет уже интерфейс. Поэтому замена одного лишь диска не всегда даст такую же отдачу, как комплексный апгрейд.
В серверах используют SSD с интерфейсом SATA, либо более производительные SAS и PCI-E. Большинство представленных на рынке серверных SSD с интерфейсом SAS продаются под брендами HP, Dell и IBM. К слову, даже в брендовых серверах можно использовать диски OEM-производителей Toshiba, HGST (Hitachi) и других, которые позволяют сделать апгрейд максимально дешевым при схожих характеристиках.
С широким распространением SSD был разработан отдельный протокол доступа к дискам, подключенным к шине PCI-E – NVM Express [2] (NVMe). Протокол разработан с нуля и значительно превосходит своими возможностями привычные SCSI и AHCI. С NVMe обычно работают твердотельные диски с интерфейсами PCI-E, U.2 (SFF-8639) и некоторые M.2, которые быстрее обычных SSD более чем вдвое. Технология относительно новая, но со временем она обязательно займет свое место в самых быстрых дисковых системах.
При выборе твердотельных дисков с интерфейсом SATA следует обращать внимание на параметр DWPD, который определяет долговечность диска. DWPD (Drive Writes Per Day) – это допустимое количество циклов перезаписи всего диска в сутки на протяжении гарантийного периода. Иногда встречается альтернативная характеристика TBW/PBW (TeraBytes Written, PetaBytes Written) – это заявленный объем записи на диск на протяжении гарантийного периода. В SSD для домашнего использования показатель DWPD может быть меньше единицы, в так называемых "серверных" SSD — 10 и более.
Такая разница возникает из-за разных типов памяти:
SLC NAND. Самый простой тип – в каждой ячейке памяти хранится один бит информации. Поэтому такие диски надежны и обладают хорошей производительностью. Но приходится использовать больше ячеек памяти, что негативно влияет на стоимость;
MLC NAND. В каждой ячейке хранится уже два бита информации – самый популярный тип памяти.
eMLC NAND. То же самое что и MLC, но повышена устойчивость к перезаписи благодаря более дорогим и качественным чипам.
Таким образом, при точечной замене обычных дисков твердотельными логично использовать MLC-модели в RAID 1, что даст отличную скорость при том же уровне надежности.
Считается, что использование RAID совместно с SSD – не лучшая идея. Теория основывается на том, что SSD в RAID изнашиваются синхронно и в определенный момент могут выйти из строя все диски разом, особенно при ребилде массива. Однако, с HDD ситуация точно такая же. Разве что, испорченные блоки магнитной поверхности не дадут даже прочитать информацию, в отличие от SSD.
По-прежнему высокая стоимость твердотельных накопителей заставляет задуматься об альтернативном их использовании, помимо точечной замены или использования СХД на базе одних лишь SSD.
От размера и скорости кэша RAID-контроллера зависит скорость работы массива в целом. Расширить этот кэш можно с помощью SSD. Технология напоминает решение Smart Response [3] от Intel.
При использовании подобного кэша данные, которые используются чаще, хранятся на кэширующих SSD, с которых производится чтение или дальнейшая запись на обычный HDD. Режимов работы обычно два, аналогично привычному RAID: write-back и write-through.
В случае write-through ускоряется только чтение, а при write-back – чтение и запись.
При настройке кэша write-through запись проводится как в кэш, так и на основной массив. Это не влияет на операции записи, но ускоряет чтение. К тому же, перебои питания или всей системы для целостности данных уже не так страшны;
Для работы обычно требуется специальная лицензия или аппаратный ключ. Вот конкретные названия технологии у популярных на рынке производителей:
LSI (Broadcom) MegaRAID CacheCade. Позволяет использовать до 32 SSD под кэш, суммарным размером не более 512 ГБ, поддерживается RAID из кэширующих дисков. Есть несколько видов аппаратных и программных ключей, стоимость составляет около 20 000 р;
Microsemi Adaptec MaxCache. Позволяет использовать до 8 SSD в кэше в любой конфигурации RAID. Отдельно лицензию покупать не нужно, кэш поддерживается в адаптерах серии Q;
Схема работы SSD-кэша предельно проста – часто используемые данные перемещаются или копируются на SSD для оперативного доступа, а менее популярная информация остается на HDD. Как итог, скорость работы с повторяющимися данными значительно возрастает.
В качестве иллюстрации работы RAID-кэша на базе SSD можно привести следующие графики:
StorageReview [6] – сравнение производительности разных массивов при работе с базой данных: использованы обычные диски и их альтернатива на базе LSI CacheCade.
Но если есть аппаратная реализация, то наверняка существует и программный аналог за меньшие деньги.
Помимо программного RAID существует и программный SSD-кэш. В Windows Server 2012 появилась интересная технология Storage Spaces, которая позволяет собирать RAID-массивы из любых доступных дисков. Накопители объединяются в пулы, на которых уже размещаются тома данных – схема напоминает большинство аппаратных систем хранения. Из полезных возможностей Storage Spaces можно выделить многоярусное хранение (Storage Tiers) и кэш записи (write-back cache).
Storage Tiers позволяет создавать один пул из HDD и SSD, где более востребованные данные хранятся на SSD. Рекомендованное соотношение количества SSD к HDD 1:4-1:6. При проектировании стоит учитывать и возможность зеркалирования или четности (аналоги RAID-1 и RAID-5), так как в каждой части зеркала должно быть одинаковое количество обычных дисков и SSD.
Кэш записи в Storage Spaces ничем не отличается от обычного write-back в RAID-массивах. Только здесь необходимый объем "откусывается" от SSD и по умолчанию составляет один гигабайт.
Общая схема работы выглядит так:
При записи на чистый диск данные сохраняются на SSD;
Когда SSD заполнены, данные пишутся в write-back кэш, который записывается на HDD;
Если кэш переполнен, запись ведется напрямую на HDD;
Если рассматривать другие операционные системы, то технологий доступно еще больше. Например, в GNULinux есть bcache [7], EnhanceIO [8], dm-cache [9] и lvmcache [10], L2ARC [11] в ZFS, Cache Tiering [12] и Cache Poo [13]l в Cephs.
Если говорить о программном ускорении дисковой системы, то интересным вариантом выглядит использование для этих целей оперативной памяти. Существует ряд приложений, позволяющих "откусить" часть RAM под кэш – например PrimoCache [14]. Подобные решения, помимо ускорения работы, помогут и продлить жизнь SSD. Главное предусмотреть защиту от проблем с питанием [15] и не размещать в таких разделах слишком важные данные.
Файловые и веб-серверы хорошо работают с кэшем на SSD, а для размещения производственной базы данных приоритетнее RAID-массив из обычных дисков под данные и отдельное SSD-зеркало под журналы транзакций. Остальные сценарии работы с данными требуют более творческого подхода и знания специфики использования.
Если у вас есть собственные приемы правильного использования твердотельных накопителей – поделитесь в комментариях, чтобы дополнить примеры из статьи.
Заодно расскажите, что думаете о RAM-дисках – только ли это just for fun технология, на ваш взгляд?
Автор: Сервер Молл
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sistemy-hraneniya-danny-h/231899
Ссылки в тексте:
[1] соответствующих материалах: https://habrahabr.ru/post/200464/
[2] NVM Express: https://en.wikipedia.org/wiki/NVM_Express
[3] Smart Response: https://habrahabr.ru/company/intel/blog/143855/
[4] восьмого: https://servermall.ru/catalog/model-hp-dl380e-gen8/server-hp-dl380e-gen8-2/
[5] девятого: https://servermall.ru/catalog/model-hp-dl380-gen9/server-hp-dl380-gen9/
[6] StorageReview: http://www.storagereview.com
[7] bcache: http://bcache.evilpiepirate.org/
[8] EnhanceIO: http://www.stec-inc.com/product/ssdcache.php
[9] dm-cache: https://github.com/mingzhao/dm-cache
[10] lvmcache: http://man7.org/linux/man-pages/man7/lvmcache.7.html
[11] L2ARC: http://www.zfsbuild.com/2010/04/15/explanation-of-arc-and-l2arc/
[12] Cache Tiering: http://docs.ceph.com/docs/giant/rados/operations/cache-tiering/
[13] Cache Poo: http://docs.ceph.com/docs/giant/dev/cache-pool/
[14] PrimoCache: https://www.romexsoftware.com/en-us/primo-cache/
[15] проблем с питанием: https://habrahabr.ru/company/pc-administrator/blog/310698/
[16] Источник: https://habrahabr.ru/post/319214/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.