История о том, как мы быстрое хранилище в 2022 году строили

Шёл 2022 год. Перед нам, как облачным провайдером, стояла задача создать под проект максимально быстрое хранилище объёмом от 150 ТБ. На тот момент рынок стремительно менялся: на смену традиционным SAS SSD стали приходить накопители форм‑фактора 2.5», поддерживающие интерфейс PCIe Gen4×4 NVMe. Эти накопители обладали целым рядом преимуществ по сравнению с классическими SAS SSD. В частности, их скорость чтения и записи была в 3–4 раза выше (на уровне 6700/4000 МБ/с для модели, которую мы выбрали), а время отклика было значительно ниже благодаря прямому подключению к процессорам. Ещё одним важным фактором стало то, что эти накопители стоили на 15% дешевле своих SAS аналогов.

515e9e52afd6b63474dc7fb89cfe466f.jpg

Да, мы могли расширять SAS‑хранилища полками с помощью extendet подключений, а NVMe нужно было подключать напрямую к процессорным линиям, что могло потребовать дополнительных затрат на платформы с процессорами, поддерживающими нужное количество линий PCIe. Но даже с учётом этого экономия на самих накопителях позволяла оставаться в прибыли. Переход на NVMe накопители сулил только выгоды.

Мы просчитали все плюсы и минусы, выбрали технологию и готовы были начать покупать оборудование. Однако 2022 год принёс неожиданные препятствия: крупнейшие производители серверного оборудования, такие как HP, DELL, Lenovo и Supermicro, ушли с российского рынка, а их представительства закрылись. Если раньше можно было чуть ли не выйти на улицу и просто крикнуть, что нужен сервер, и к тебе сразу бы прибежали представители этих компаний, предлагая своё оборудование, то теперь всё изменилось. В ответ на такие крики мы слышали лишь грустное эхо, напоминающее о санкциях.

В этой новой реальности никто больше не помогал с выбором серверов, и всю ответственность за принятие решений приходилось брать на себя. Самым сложным моментом стало то, что хотелось получить сервер на 24 NVMe‑диска, каждый из которых должен был работать на максимальной скорости. Требовалось учесть множество факторов: от количества PCIe‑линий и их правильного распределения до поддержки самой платформы. При этом нужно было быть уверенным, что процессорная платформа сможет справиться с задачей передачи данных на такой высокой скорости и не станет узким местом в системе.

Однако эта задача зависела от множества мелких технических деталей, которые раньше обрабатывались вендорами, а теперь их нужно было учитывать нам.

Первая важная деталь — это выбор процессора. Всё должно было начинаться с него, так как именно процессор отвечает за поддержку нужной версии PCIe (в нашем случае это должен был быть Gen4) и за количество линий PCIe, которые требуются не только для подключения дисков, но и для периферийного оборудования, такого как сетевые карты и другие контроллеры.

Рассмотрим на тот момент один из самых популярных процессоров — Intel Gold 6248R. Это был отличный камень с замечательной производительностью, но и здесь возникали нюансы.

dddfeda8dcaae02ae01f111b9f4a4e5a.png

Мы столкнулись с тем, что, согласно спецификации на сайте производителя, процессор поддерживает только PCIe 3.0 и имеет максимум 48 линий. Казалось бы, для стандартной двухпроцессорной системы, где у каждого процессора по 48 линий, этого должно быть достаточно — ведь 2×48 = 96 линий, что кажется внушительным количеством. Но проблема в том, что каждый NVMe‑диск потребляет 4 линии PCIe. Получается, что 96/4 = 24 диска, и все линии уже заняты только под подключение дисков. В итоге никаких дополнительных сетевых карт или другого периферийного оборудования подключить не получится.

Это как аналог танка Нины Ричи: он выглядит красиво, но не едет и не стреляет — просто предмет роскоши. Как процессоры Gen 2 для нашей задачи попросту не подходят. Единственным решением было обратить внимание на недавно вышедшие процессоры Gen 3.

Маленькое отступление: почему нам так важно иметь именно PCIe 4.0, а не PCIe 3.0? Для этого давайте обратимся к Википедии и посмотрим на замечательную таблицу пропускной способности.

b14376faa3554be096f3e0af3428cf48.png

Таблица наглядно демонстрирует, что PCIe 4.0 имеет в два раза большую пропускную способность по сравнению с PCIe 3.0. 4 линии PCIe 3-го поколения обеспечивают лишь 4 ГБ/с в одну сторону. А наши диски способны выдавать до 6,7 ГБ/с на чтение, а такую скорость можно достичь только с PCIe 4.0. Да, PCIe 3.0 и PCIe 4.0 совместимы, но намеренно снижать производительность, ограничивая себя старыми стандартами, явно не в наших интересах. Это выглядит неразумно, особенно когда речь идет о высокопроизводительном хранилище. Вот почему в таком проекте нельзя упускать даже мельчайшие детали — всё может повлиять влияет на итоговую производительность. А это критически важно для нашего проекта, ведь наша цель — обеспечить максимальную производительность каждого диска. И всё, напоминаю, нужно делать самостоятельно, без поддержки вендоров.

Теперь давайте вернёмся к спецификациям процессоров — посмотрим на Intel Gold 6348, поддерживающий PCIe Gen 4.

4ffb4e2ba4c0da6206aa65f7dbad8739.png

В спецификациях Intel Gold 6348 мы видим, что процессор поддерживает нужную нам PCIe Gen 4 и уже имеет 64 линии PCIe, что в двухпроцессорной системе даст нам 128 линий. Из них 96 уйдут на подключение NVMe‑дисков, и останется 32 линии для сетевых карт. Это, кстати, не так уж и много — по сути, это два свободных PCIe x16 порта.

Мы, наконец, определились с поколением процессоров и конкретной моделью. Казалось бы, всё готово: просто бери любую платформу с поддержкой 24 NVMe‑дисков и можно начинать работу. Но и тут могут поджидать неприятные сюрпризы. С учётом ограниченного выбора производителей, смотрим, что доступно на рынке. Например, есть платформа ASUS RS720-E10-RS24U, которая рекламируется как двухпроцессорный сервер в корпусе 2U, поддерживающий процессоры Intel Xeon 3-го поколения, до 32 модулей DIMM, 24 NVMe‑диска, девять слотов PCIe 4.0, OCP 3.0, двойные слоты M.2 и модуль управления ASUS ASMB10-iKVM.

На первый взгляд, всё выглядит идеально — поддержка 24 NVMe, большие цифры. Но как только начинаешь вникать в спецификации, появляются вопросы: подозрительно много слотов расширения.

a3159ab2b71f9c8a6f01350a069bb76f.png

Хоп‑хэй, ла‑ла‑лэй, в полной информации о платформе мы видим, что да, к дискам подводится меньше линий PCIe, и в итоге на каждый диск остаётся всего по 2 линии. И таких платформ на рынке оказалось подавляющее большинство. Получить систему, которая могла бы полностью задействовать все возможности NVMe‑дисков,  было практически нереально. Нам повезло, что на тот момент на рынке оказалось две платформы, которые подходили под наши требования. Не два производителя с разными вариантами, а буквально две конкретные модели.

Одна из них была на базе оборудования Supermicro, которое в 2022 году стало почти недоступным. Вторая — платформа Gigabyte R282-NO0, и на неё была очередь на закупку длиной в три месяца. Как оказалось, не только мы вели расследование по поводу того, какое оборудование способно справиться с нашей задачей. Когда люди поняли, что эта платформа подходит для полноценного использования всех возможностей дисков, все кинулись её заказывать.

А будет ли итог у этой истории? Ну, могу дать такой совет: всегда проверяйте все параметры, изучайте спецификации до мельчайших деталей, проверяйте совместимость, не упускайте ни одного непонятного места. В сегодняшних условиях больше нет доброго вендора, который всё сделает за вас.

Для примера, уже есть процессоры и материнские платы с поддержкой PCIe Gen 5, но в 95% платформ корзины для дисков по‑прежнему PCIe Gen 4. А что мы в итоге собрали и какой скорости достигли — это уже совсем другая история.

© Habrahabr.ru