Продолжение грустной саги про NVMe в серверах
Серверный рынок неповоротлив. NVMe SSD вытесняют прочие носители медленно, очень медленно. Вероятно, потому, что переход на новые стандарты – инфраструктурная задача: для масштабного обслуживания данных с быстрым откликом нужны сетевые хранилища NVMe и сетевые протоколы NVMe-oF. Пока внимание отдано верхним слоям корпоративной атмосферы, передел локальных интерфейсов в серверах протекает вяло. Не до них.
Но есть и хорошие новости: цены NVMe и SATA SSD сравнялись, платформ NVMe-ready стало больше.
Сitius, propius, fortius
Протокол NVMe раскрывает потенциал твердотельного хранения: высокую скорость ввода/вывода данных и низкие задержки обращения - за счет прямого подключения SSD к шине PCIe. Избавление от ограничений стеков SAS и SATA, новый набор команд, механизм обработки очередей, их большая глубина, оптимизация под многопоточные нагрузки – все сделано в угоду производительности. Пусть и ценой расхода процессорных ресурсов. Оно того стоит. Современным многоядерным процессорам теперь есть чем заняться.
Спрос в серверах подогревается приложениями, которые «ищут близости» между CPU и устройствами постоянного хранения. Переход на NVMe SSD ломает прежние представления об устройстве серверов.
Дисковые корзины, бэкплейны, кабельное хозяйство
NVMe SSD подключаются одним из двух способов: напрямую к CPU через шину PCIe или через трехрежимные (tri-mode) HBA/RAID, поддерживающие накопители NVMe/SAS/SATA.
Доминирующим форматом NVMe SSD в серверах переходного периода стал U.2 (2.5” или SFF SSD) – как дань сосуществованию разных стандартов. Для поддержки U.2 к отсеку дисковой корзины надо подвести четыре линии (x4) PCIe 3.0. В серверах попадаются сменные, а чаще - гибридные бэкплейны U.2/SAS/SATA с универсальными разъемами SFF-8639, где замыкание контактов накопителем определяет, какое устройство им управляет. Со стороны хоста к бэкплейну подключаются бортовые порты SATA или внутренние порты HBA/RAID. Сигналы PCIe подводят кабелями OCuLink c материнских плат и/или карт-ретаймеров – удлинителей линий связи (высокочастотная передача данных по шине PCIe заставляет бороться с искажением и затуханием сигналов).
Дележ линий и коммутаторы PCIe
Один Intel Xeon SP обслуживает 48 линий PCIe. Два процессора – 96 линий. Одному U.2 полагается x4 PCIe 3.0. Если разместить в типовой 2U-платформе 24 x U.2, остальной периферии ничего не останется. Приходится добавлять коммутаторы PCIe – усложнять схемотехнику и вносить задержки, пусть небольшие.
У процессора AMD EPYC линий PCIe аж 128. Его одного хватает для обслуживания NVMe-хранилища формата 1U/ 12 x U.2 или 2U / 24 x U.2, и еще есть запас по подключению скоростной периферии. Так AMD EPYC оказался невольным союзником U.2 SSD, упростив их появление в одно- и двухпроцессорных серверах.
Замена накопителей и индикация
Для реализации горячей замены (hot-swap) и горячего подключения (hot-plug) накопителей нужна готовность окружения: HBA/RAID, операционной системы, бэкплейнов, дисковых корзин, салазок, индикации. Когда U.2 остаются наедине с шиной PCIe и CPU, им HBA/RAID не помощники. Операционная система и бэкплейн отрабатывают корректное отключение/подключение U.2 без останова сервера. Часть контактов разъема SFF-8639 отвечает за считывание статуса накопителей и передачу сигналов LED-индикации. Управляет отображением состояний бэкплейн и базовая платформа.
RAID из NVMe
Все основные ОС корректно распознают NVMe, отдельные накопители. Сложнее с их логическими наборами. В Linux программные массивы создают утилитой MDRAID. В Microsoft Windows Server - с помощью Storage Spaces,через GUI или PowerShell. Функция создания RAID и менеджер томов есть в ZFS. Как справедливо замечено в обзоре программных массивов из NVMe-устройств, cтандартных программных средств недостаточно, чтобы раскрыть потенциал NVMe. Хочешь производительности – ищи целевое управляющее ПО, оптимизированное под NVMe SSD.
Intel продвигает технологию VROC (Virtual RAID on CPU). В процессор Intel Xeon SP встроен контроллер VMD (Volume Management Device). Им создают объединения NVMe SSD, включая загрузочные тома, он позволяет менять NVMe SSD на горячую и управляет светодиодной индикацией дисковых корзин. Исполнение логики RAID ложится на CPU, часть его ядер. Комбинация программного пересчета и отлитого в кремнии Intel VMDделает VROC гибридным (полупрограммным) RAID. Продается Intel VROC как физический ключ, в трех вариантах: с поддержкой RAID 0/1/10 для SSD любых производителей, премиум-лицензии с RAID 5 и с полным набором опций для Intel NVMe SSD (дешевле всего, в качестве мотиватора).
На слуху трехрежимные (tri-mode) аппаратные RAID-контроллеры от Broadcom. Их назначение - свести управление хранением сервера в единый логистический центр. Все подключенные накопители (SAS, SATA и примкнувший к ним NVMe) обслуживаются через традиционный SAS-стек базового ROC. ОС сервера работает с логическими томами, созданными RAID-контроллером. Это противоречит идее NVMe избавления от задержек и посредников между SSD и CPU. К тому же, у трехрежимного контроллера есть узкое место – интерфейс подключения к PCIe. Его шинных линий (хорошо если x16, обычно х8) хватит двум-четырем NVMe (x4). Негусто.
После U.2
Под U.2 не пришлось переделывать традиционный крой дисковых корзин SFF. Разработчикам платформ достаточно модифицировать бэкплейны и транспортные развязки данных. Пока в серверах смешаны накопители разных стандартов, формат будет жить. У него есть недостаток – ограничения по тепловыделению (и, чем емче накопители, тем оно выше). Альтернативные форматы c большей площадью поверхности рассеивания тепла Intel EDSFF (Ruler) и Samsung NF1 в массовых серверах не прижились. Не светит и U.3, которого считают наследником U.2. Он тоже SFF, построен на том же разъеме SFF-8639, но с другой сигнальной логикой. U.3 поддерживает NVMe/SAS/SATA через единый бэкплейн/ мидплейн и один трехрежимный (tri-mode) HBA или RAID. К угрозам потенциального перегрева SFF добавятся ограничения доступа NVMe к PCIe.
Что до производителей SSD, то они упакуют их, как решит индустрия, на что будет спрос. Накопители U.3 совместимы с бэкплейнами U.2 (наборот – нет). Если U.3 SSD вытеснят из обихода U.2, это не значит, что сами серверные платформы переведут на новый стандарт. Может статься, про SAS и SATA SSD в критичных приложениях скоро никто не вспомнит – все будет NVMe. Тогда и универсальные форматы переходного времени не нужны.
Новаторы и консерваторы
Ведущие производители серверных платформ ориентируются на массовый сбыт и неохотно идут на эксперименты. Неспешному появлению U.2 в серверах есть несколько оправданий:
· Большому бизнесу нужны не столько серверы (с NVMe или без), сколько программно-(пере)определяемая среда из универсальных блоков: CPU-вычислителей, GPU- вычислителей, хранилищ. Другой масштаб задач.
· Спрос на отдельные (standalone) серверы критичных приложений специфичен. Канал, привычный к ширпотребу, не умеет продавать то, что выпадает из мейнстрима: нет сопутствующей экспертизы, нет регулярного предложения, нет специальных цен.
· Сложные решения, вроде программно-определяемых серверов хранения или гиперконвергентной инфраструктуры, тем более требуют кропотливой работы с проектами. Приверженцам монобрендовых религий проще купить традиционный набор блейд-лезвий с именитой системой хранения, чем перенимать передовой опыт.
· Проблема замкнутого круга. U.2 SSD не пользуются спросом, потому что их некуда ставить, платформы U.2-ready не предлагают, потому что в них нечего ставить
· Архитектурное наследие. Как отмечалось выше, серверы на Intel Xeon не слишком «дружественны» к U.2 – не располагая достаточной свободой линий PCIe. AMD, с ее 5-10% рынка, пока не является законодателем серверной моды prêt-à-porter.
Иногда не определить, кто больше склонен к шаблонам и стереотипам, производитель или потребитель. Оба хороши.
Платформы переходного периода
Пример участия в продвижении U.2 показывают «неолибералы» – производители серверных платформ, извлекающие рыночные преимущества из раннего освоения новых технологий. Сложно быть лидером, продавая «решения, проверенные годами».
Взгляните на две базовые платформы ASUS: под 2 x Intel Xeon SP и под 2 x AMD EPYC. Обе - 1U под 12 х 2.5” и в обеих схема подключения дисков выглядит так: 4 x NVMe+ 4 x SATA/SAS/NVMe + 4 x SATA/SAS. Это значит, что 8 отсеков из 12 готовы принять U.2 SSD.
Бэкплейн платформ с тыльной и лицевой стороны:
Платформы полностью оснащены под установку U.2 или SATA. Дискам SAS понадобится HBA или RAID-контроллер.
Такие гибридные платформы удобны универсальностью. Можно начать с традиционных накопителей, запланировав переход на U.2 в будущем. Тогда и оценить прирост производительности - все познается в сравнении.
Кому это нужно?
Тем, кому критична скорость отклика систем ввода/вывода данных. Это им нужны серверы на NVMe SSD: под транзакционые системы OLTP, виртуальные рабочие столы VDI, масштабируемые хранилища Ceph или OpenStack.
Они нужны под быстро растущий объем граничных вычислений (edge computing): видеоаналитику, распространение контента, интернет-витрины, агрегацию торговых предложений, выдачу целевой рекламы, высокочастотный трейдинг.
Они нужны провайдерам VPS - под нагруженные IT- проекты, игровые площадки и посещаемые сайты.
Цены U.2 и SATA SSD сравнялись, результативность U.2 в разы выше. Делать больше, располагая меньшим – чем не цель?