Сервер на процессоре «Эльбрус-8СВ»: как собирали и тестировали
В панель

«Эльбрус-8СВ» в дата-центре: реально ли сделать «импортозамещающий» сервер

Максим Башмаков Максим Башмаков Тестировщик оборудования 1 августа 2022

Рассказываем, как собирали и тестировали сервер на отечественном процессоре. 

Изображение записи

Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. Кажется, сейчас как никогда важно иметь план Б, поэтому мы взяли на изучение процессор «Эльбрус-8СВ». Он шел в комплекте с материнской платой «2Э8СВ-EATX» производства компании МЦСТ. 

Процессор впаян в плату, и возможность апгрейда материнской платы ограничена — точнее ее нет. В статье рассказываю, как мы собирали и тестировали сервер на отечественном процессоре. 

Вот процессор еще не прикрыт радиатором

Собираем тестовый конфиг

К нам в лабораторию приехала исключительно плата с процессором — без радиаторов, вентиляторов и корпуса. Поэтому мы собирали кастомный сервер на «Эльбрусе». 

В итоге тестовый конфиг выглядел так: 

Корпус: 2U NVMe
Процессор: «Эльбрус-8СВ»
Матплата: «2Э8СВ-EATX»
RAM: 8 шт. DDR4 32 ГБ 2933 МГц ECC Reg DIMM (MTA36ASF4G72PZ-2G9J3) Micron
HBA NVMe: 1 шт. AOC-SLG3-4E4T
NVMe SSD U2: 1 шт. Micron 7300
SSD: 1 шт. Micron 5300 Pro 1 ТБ
HDD: 1 шт. ST4000NM0035 Seagate 4 ТБ
SSD M2 — 1шт 970 EVO Plus NVMe M.2
SSD: Samsung 480 ГБ MZ7LH480HAHQ
SSD: Intel 240 ГБ S4510

Для отвода тепла подошли радиаторы Intel BXSTS100A c активным охлаждением. Корпус взяли на два юнита от Supermicro 825TQ-R720/R740, так как изначально мы хотели добавить в конфиг GPU и NVMe. Правда, план не увенчался успехом.

Материнская плата от МЦСТ

Для тестирования показателей IOPS мы подключили HDD- и SSD-диски. «Под руку» попались ST4000NM0035 Seagate 4 ТБ и Micron 5300 Pro 1 ТБ. Эти диски проходили у нас испытания по тестовым кейсам, поэтому были выбраны для сравнения показателей с другими тестовыми конфигами.

В надежде, что мы сможем протестировать SSD NVMe-накопители, подключили PCIe NVMe Host Bus Adapter AOC-SLG3-4E4T, но система NVMe-диски не увидела. То же самое случилось с SSD Samsung 970 EVO Plus NVMe M.2. Речь здесь об операционной системе «Эльбрус». Как работает сборка на других ОС, я опишу ниже. 

Установка операционной системы

Сначала решили установить нативную ОС «Эльбрус» на архитектуре e2k. Система ставится как с USB-носителя, так и c DVD, также есть возможность установки по сети (PXE). 

Так называемого BIOS в системе нет, но есть его аналог — «Загрузчик», или boot. По факту это оболочка, принимающая команды и параметры через командную строку.

Для работы в дата-центре это минус. Обычно первичная настройка платформы производится в BIOS, в том числе и Baseboard Management Controller (BMC). Операционная система устанавливается уже позже. Грубо говоря, при заказе выделенного сервера. В случае сервера на «Эльбрусе», чтобы настроить BMC, для начала нужно установить «родную» ОС или другую систему, подходящую под архитектуру e2k. 

А теперь представьте: в дата-центр поступило 100 серверов на «Эльбрусе». Как будем настраивать BMC? Правильно, сначала будем ставить ОС с флешки на каждый сервер и только потом настраивать BMC. Уйдет, мягко говоря, много времени. Есть конечно вариант с PXE-сервером, что немного облегчит задачу, но BMC придется настраивать все равно «руками» через ОС.

Остринки добавляет то, что мануалов по настройке BMC нет. И тут начинаются «танцы с бубном».

Как я писал выше, настройка осуществляется только после установки ОС. Все из-за того, что в системе нет BIOS и на данной плате не реализован «мост» между интерфейсом BMC и «Загрузчиком» (аналогом BIOS). Подключение ноутбука напрямую в Ethernet-порт BMC результатов не дало… Достаю второй бубен.

После консультаций со специалистами МЦСТ получилось настроить BMC. Для этого я соединил порты BMC и eth0 перемычкой патч-кордом, поднял DHCP-сервер на интерфейсе eth0 и указал пул из одного нужного нам IP-адреса. После этого BMC получил нужный нам адрес, а у нас появился доступ к веб-интерфейсу BMC.

Настройку BMC специалист дата-центра может производить только с ноутбука непосредственно в серверной, что не очень удобно. Работу системных инженеров с серверами мы стараемся максимально автоматизировать — так мы готовим серверы гораздо быстрее и исключаем возможные человеческие ошибки. 

Настройка сети

Настройка сети схожа с настройкой в других Linux-системах.

Пример настройки файла конфигурации:

/etc/sysconfig/network-devices/ifconfig.eth1/ipv4

DEVICE=eth1
TYPE=Ethernet
CHECK_LINK=yes
ONBOOT=yes
USERCTL=no
PEERDNS=no
SERVICE=ipv4-static
IP=192.168.1.135
BROADCAST=192.168.1.255
PREFIX=24
GATEWAY=192.168.1.1

Обзор операционных систем для e2k

Перед следующим блоком сделаем отступление про подходящие операционные системы. На данный момент есть четыре операционных системы, поддерживающие архитектуру e2k. Мы попробовали установить все. Каждая требует определенных «танцев с бубнами».

ОС «Эльбрус». Установилась с USB, число программных пакетов — 1 256 шт., GUI неприветливый. Сетевой репозиторий отсутствует, только локальный. Тестовой версии ОС не предусмотрено — в комплекте с материнской платой и процессором не идет. 

ALT Linux. Установка производилась с USB-носителя, интерфейс приятнее, чем в ОС «Эльбрус», количество пакетов — 17 211 шт. Также ограничено своим репозиторием, но уже имеет гораздо большее количество пакетов для разработки — например, Java, которого нет на ОС «Эльбрус». Также из преимуществ — наличие сетевого репозитория. Для записи на USB в комплекте к ОС идет скрипт.

Astra Linux 8.1, релиз «Ленинград». Установка не удалась. Так как служба поддержки у Astra Linux — платная опция, нам не удалось выяснить причины отказа установки.

ЗОСРВ «Нейтрино». Дистрибутив ОС нам не предоставили, пояснив, что ЗОСРВ «Нейтрино» и ЗОСРВ «Нейтрино-Э» нечасто применяется на серверах. В отличие от, например, бортового промышленного оборудования, решающего задачи в режиме реального времени. По заявлению производителя архитектуру e2k данная ОС поддерживает.

Программы под ОС «Эльбрус»

Возвращаемся к нашему конфигу. После настройки платформы наконец добрались до самой ОС «Эльбрус». Здесь сразу же столкнулись с тем, что сетевых репозиториев нет и стек скомпилированных программ под архитектуру e2k ограничивается одним DVD-диском, идущим в комплекте с операционной системой. В нашем комплекте оказалось 1 256 программ, со списком можно ознакомиться по ссылке. Все, что потребуется сверх этого списка, придется «пересобрать» или написать самим.

Для решения задачи совместимости с ПО для платформы x86 в МЦСТ разработали проприетарный бинарный транслятор. Он работает в двух режимах, чем-то напоминающих гипервизор. Первый режим реализован в Lintel, второй — в «RTC». Последний работает под управлением уже запущенной операционной системы.

В приложенном списке мы не увидели Docker, Prometheus, Java и еще очень много пакетов, необходимых для нормальной работы сервера в дата-центре. На данный момент на e2k реализована только одна СУБД — PostgreSQL, которая будет работать вне режима бинарной трансляции. Остальные СУБД и ПО, которого нет в комплекте с ОС, можно запустить только через бинарный транслятор. Чтобы перекомпилировать отсутствующие инструменты для «Эльбруса», потребовалась бы целая команда. 

Из плюсов — есть необходимые пакеты для разработки ПО, Python, Git, библиотеки и компиляторы от МЦСТ. 

Подготовка к тестам

Для проведения тестов мы использовали бинарный транслятор приложений «RTC» и дистрибутив Ubuntu 22.04

Существенный минус «RTC»: производительность, которой и так немного, будет ограничена. По тестам из разных источников она падает до 30% в зависимости от ПО. 

С дистрибутивом тоже пришлось немного помучиться. После развертывания Ubuntu-server 20.04 x86 возникла проблема с системным временем. Происходит отставание системного времени от реального. Для серверного оборудования это критично. Есть предположение, что это из-за системы бинарной трансляции. 

Из подключенных 32 планок RAM используется только 3. По информации от МЦСТ в режиме бинарной трансляции используется только один КПИ (можно посмотреть на схеме). 
Соответственно, вся периферия, завязанная на КПИ_1, в этом режиме работать не будет.

Результаты бенчмарк-теста

Мы провели бенчмарк-тест Geekbench5 в режиме бинарной трансляции и получили такие результаты:

Видно, что пока «Эльбрус» в режиме бинарной трансляции пытается догнать по показателям AMD Ryzen 5 2400G. Но это десктопный процессор, релиз которого произошел в феврале 2018 года. О конкуренции с современными серверными процессорами речи пока не идет. 

Также «Эльбрус» догоняет по бенчмаркам (и даже перегоняет по image compression) Intel Xeon E3-1225, выпущенный в 2014 году. Сравнение с ним на картинке ниже.

Более подробно по ссылке. Кстати, с каким серверным процессором сравнили бы вы «Эльбрус-8СВ»? Пишите в комментариях! 

Попадет ли решение на «Эльбрус-8СВ» в дата-центры Selectel?

Как можно понять по тексту, на данный момент препятствий для этого более чем достаточно. Чтобы привести серверы на Эльбрусе к такому же удобству для конечного пользователя, нужно будет вложить очень много сил и времени. Нужно будет поломать голову над автоматизацией процессов, перекомпилировать необходимые программы, подумать, как обойти все существующие ограничения. 

Кажется, без катастрофической надобности эти вложения не будут оправданы. 

Вот «Эльбрус 32-С» уже более реалистичен для использования в дата-центрах. Скорее всего к тому времени и ПО «допилят». Но смогут ли его произвести по 7-нм процессу? Это вопрос будущего. Компания МЦСТ основана в 1992 году, а Intel — в 1968. Возможно, отечественная компания еще сможет нагнать конкурентов. 

В целом, мы провели базовый обзор. Возможно, он не такой подробный и щепетильный, каким мог бы быть. Нашей основной целью была быстрая оценка потенциала сервера на «Эльбрусе» в дата-центрах Selectel. Возможно в будущем мы постараемся протестировать «Эльбрус» другим софтом, написанным под архитектуру e2k. 

На данный момент очень хочется появление поддержки NVMe и современных GPU. Будем надеяться, что МЦСТ будет развиваться и дальше и в будущем мы сможем использовать эти решения в повседневных задачах.

Читайте также: