Чтобы воспользоваться преимуществами NVMe SSD в полной мере, нужны соответствующие приложениям накопители и оснащенные под них платформы.
Протокол NVMe устанавливает прямое высокоскоростное соединение между SSD и CPU по шине PCIe — в отличие от твердотельных накопителей SAS и SATA, которым нужен отдельный контроллер для преобразования между протоколами PCIe и SAS / SATA. Благодаря параллелизму и низким задержкам PCIe у NVMe SSD большой потенциал в хранении данных, но для получения от них практической выгоды в серверах важно окружение: компоненты и связующие звенья подсистемы хранения.
Не все то быстро, что NVMe
В статье «NVMe в серверах, сумбур в головах» обсуждалось целевое применение разных классов устройств прямого подключения к шине PCIe. Есть три форм-фактора таких SSD: U.2 (2.5″), AIC (карты в слоте PCIe), M.2. Последний многие принимают за основной, из-за обилия предлагаемых рынком устройств. Но почти все M.2 SSD — клиентские. А что хорошо ПК, то серверу смерть.
Встречаются и серверные M.2 PCIe SSD. Их используют под загрузку ОС и нишевые задачи — на платах один-два разъема M.2, часто с урезанной полосой доступа, PCIe x2 вместо x4. SATA SSD таким мало чем уступают.
В серверах критичных приложений основным форм-фактором является U.2. Хочешь производительности — ищи соответствующие накопители и платформу, оснащенную под них. Насколько велик разброс показателей PCIe x4 SSD, хорошо видно на примере линеек Samsung. Обратите внимание: даже в пределах одного семейства PM983 у U.2 большой перевес над M.2.
Стандарты и претенденты
U.2 состоялся как стандарт, не подрывающий традиционный крой серверных дисковых корзин. Его преимущество в обратной совместимости c бэкплейнами, рассчитанными на установку жестких дисков или SATA/SAS SSD. Есть у него и два недостатка. Первый связан с ограничениями по тепловыделению (оно растет с увеличением объемов хранения). Второй — с подключением (требуются дополнительные усилия разработчиков платформ).
Габариты 2.5″ определяют максимальное тепловыделение для накопителей U.2 в 25 ватт. Они подошли вплотную к этому пределу. И хотя переход на многослойную память TLC отодвинул угрозу перегрева на несколько лет, проблему эффективного рассеивания тепла решит только новый форм-фактор. Intel предлагает свой EDSFF (Ruler), даже в двух вариациях: E1.L (long) и E1.S (short). Samsung — свой, NF1. А еще есть гиперскейлеры, потребляющие флеш-накопители в огромных количествах и Facebook, предводитель коалиции Open Compute Project, все со своими представлениями о дизайне хранения.
Производителям SSD все равно, как упаковывать накопители — лишь бы стандарт был массовым. Например, они могут перейти на форм-фактор U.3 (тоже 2.5", на том же разъеме SFF-8639, но с другой раскладкой сигналов). Идея U.3 состоит в поддержке одним разъемом трех типов накопителей NVMe, SAS и SATA, c трехмодовым подключением через единый бэкплейн/HBA и автоматическим определением типа. Трехмодовые контроллеры давно делает Broadcom, туда же поглядывает Microchip (Adaptec). Такой сценарий кажется сомнительным. Какой смысл ограничивать подключение NVMe SSD (каждому дай x4 PCIe) посредником, у которого на всё-про-всё максимум 16 линий PCIe? Только избавились от задержек стека SAS — и вот опять. Производителей SSD это не смущает: U.3 обратно совместим с U.2, их продукция в любом случае не пропадет. Kioxia (ex-Toshiba) CD6/CM6 — первые в индустрии U.3 PCIe Gen 4 SSD. Пусть думают производители серверов.
Пока индустрия не пришла к согласию, что именно сменит U.2, не будем спешить и мы. Примем любой исход.
Коммутаторы PCIe и производительность NVMe SSD
Документ Lenovo наглядно показывает, почему использование линий PCIe x4 имеет решающее значение для производительности подсистемы хранения NVMe и как на нее влияет уменьшение числа линий PCIe.
Четыре NVMe SSD x4 PCIe подключали к хосту тремя способами:
-
Напрямую к NVMe-портам на системной плате.
-
Через коммутатор x16 PCIe.
-
Через коммутатор x8 PCIe.
Замеряли прирост производительности с переходом от 1 до 4 NVMe SSD. При последовательной нагрузке чтения/записи (размер блока 256 KB) скорость должна бы увеличиваться линейно с каждым следующим SSD. Но на коммутаторе х8 (по х2 на каждый SSD) пропускная способность «залипла» на уровне 6 000 MB/s.
Под нагрузкой рандомной записи (размер блока 4 KB) все три сценария отработали с близкими показателями. При рандомном чтении оба коммутатора PCIe просадили производительность, против прямого подключения: x16 — на треть, x8 — вполовину:
Раз уж от NVMe SSD в серверах ожидают высокой производительности, в интересах пользователя избежать любых ограничений, в том числе по линиям PCIe. Подключение накопителей напрямую к портам NVMe на системной плате предпочтительнее использования коммутатора PCIe, обделяющего SSD. Коммутаторы вносят задержки, усложняют схемотехнику и удорожают производство системных плат.
Платформы-союзники U.2
В архитектуре любого CPU заложено максимальное число линий PCIe, которое может обслужить процессор. Например, для Intel Xeon E это 16 линий, для Intel Xeon SP- 48. Производители серверных плат и платформ несут дополнительные расходы на подвод сигналов PCIe к U.2 SSD: разъемы, удлинители и расширители интерфейса, распайку ответной части бэкплейнов, кабельную оснастку. Линии прямого доступа устройств к CPU — важный ресурс, ими не разбрасываются. Их нехватку можно было бы компенсировать коммутаторами PCIe на платах (их предлагают Broadcom, Microchip), но затраты того не стоят — ставить их всем подряд. Именно поэтому на рынке мало платформ на Intel Xeon c «природной» поддержкой NVMe.
У AMD с этим проще. Процессор AMD EPYC обслуживает 128 линий PCIe. Даже если это односокетный 2U-сервер c 24 х U.2 SSD («cервер хранения»), каждый из накопителей получит от CPU четыре персональных линии и у того еще останется запас под сетевую периферию. Благодаря такой свободе шинных подключений AMD отвоевывает у Intel рынки с высокими требованиями к пропускной способности периферийных устройств (дисковый и сетевой I/O, GPU-вычислители).
Пример типовой U.2-ready платформы — ASUS RS500A-E10-RS12. Она с одним сокетом под AMD EPYC (от 8 до 64 физических ядер), понимает до 2 TB оперативной памяти и в базовой комплектации готова принять 12 x U.2 (или SATA) SSD c горячей заменой. Серверы на процессорах AMD EPYC 7xxx2 второго поколения поддерживают шину PCIe Gen 4 — хоть сегодня ставь сетевые адаптеры 100-200 Gigabit Ethernet, как Mellanox ConnectX-6.
Кому это надо?
На 1U-платформах с одним CPU и несколькими U.2 SSD можно строить:
-
Серверы нагруженных баз данных
-
Программно-определяемое хранение
-
Гиперконвергентные системы (VMware VSAN или Microsoft S2D)
-
Раздачу контента (CDN-серверы)
Платформы готовы к установке U.2. Производители SSD фактически уравняли цены U.2, SAS и SATA SSD сходной емкости и ресурса. Бери и делай.
Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365