▍ Зачем
Если у вас стоит такой вопрос, то оно вам точно не нужно. 25 гигабит дома — это уже не дёшево, в отличие от 10 и 2,5 гигабит, при этом без свичей, и требует сноровки и достаточно нового и быстрого железа для полноценной работы.
Статья ориентирована на тех, кому это реально нужно, но при этом они не знают, откуда начать.
«Кто же эти люди?» — спросите вы. В основном те, кто работает с NAS как с полноценным хранилищем вместо локального диска. Зачем покупать большие SSD на много терабайт (например, для работы с видео), если можно собрать хороший рейд, добавить пару NVME дисков для кеширования, оперативной памяти поболее и получить скорость уровня локального диска, но при этом заметно дешевле, с повышенной надёжностью и огромным объёмом?
Также хорошо эта связка работает с кластером Proxmox. Банально виртуалки летают сильно быстрее, чем на сети 10 гигабит. Задача для дома, конечно, очень редкая, но всё ещё существующая.
Бонусом можно записать то, что для этих скоростей используется кабель SFP28. Они совместимы с SFP+ как физически, так и электронно, но, естественно, если подключиться к SFP+ устройству, скорость будет ограничена десятью гигабитами. Таким образом, используя карты на 2 порта, мы не теряем возможность подключения клиентов на 10 гигабит.
▍ Сетевые карты
Начать такую сеть можно с карты. Вариантов у нас много, но интересных маловато:
- Intel E810-XXVD — 150 $
- Intel XXV710 — 105 $
- Mellanox ConnectX-5 EN MCX512A-ACAT — 145 $
- Mellanox ConnectX-4 Lx MCX4111A-ACAT — 60 $
- Broadcom BCM57414 — 200 $
Фаворитов по функционалу, можно сказать, нет, все они +- одинаковые, если рассматривать их в домашних сетях, а не дата-центрах. Но что точно у них отличается, так это цена, и Mellanox 4 Lx кажется самой интересной картой. Но что, если я скажу, что можно ещё дешевле?
Так вышло, что у Mellanox есть модель MCX4111A-ACAT с поддержкой 25 гигабит, и её идентичный собрат MCX4111A-XCAT, который поддерживает максимум 10 гигабит. Но в теории XCAT может быть прошита в ACAT и работать на скорости 25 гигабит без каких-либо проблем и с приятной скидкой (около 15–17 $).
▍ Кабели
Ищутся такие кабели по запросу «SFP28 25G».
Если хочется купить новые, то всё неплохо. Китайцы, как обычно, подсуетились, и при желании можно найти готовые недорогие DAC кабели по цене даже ниже, чем обычно просят за кабели 10 гигабит.
Б/у рынок в РФ также радует, цены начинаются от 700 рублей за 3 метра. Можно не бояться брать любые кабели, так как карты Mellanox переваривают любые бренды без каких-либо проблем.
Если требуются большие расстояния, то в Китае можно взять готовую оптику либо трансиверы, но цены на них уже не гуманные. Главная же проблема — это их нагрев и требование активного охлаждения. В серверах с этим жить можно, ведь их охлаждение заранее проектируется под продувку горячих компонентов с пассивным охлаждением, а в домашнем ПК придётся добавить 40–80 мм вертушку на обдув всей карты с портами.
▍ Cвичи
Ну, можно сказать, они существуют, но не более.
Самый дешёвый новый вариант — MikroTik CRS510-8XS-2XQ-IN, его цена начинается от 118 тысяч рублей. Если же обратить внимание на б/у рынок, то можно наткнуться на Quanta IX8 за 55 тысяч рублей. Но мне трудно представить дом, в котором требуется 48 × 25G портов, а шум и потребление такого свича сводит на нет весь его смысл в домашней лабе.
В прошлой статье про 10 гигабит предлагали прямое соединение без использования свичей, и в случае 10 гигабит, при которых можно использовать дешёвые китайские свичи, смысл прямого подключения теряется. Но 25 гигабит — это совсем другая песня, и тут уже нужно подключаться напрямую.
Либо, как вариант, брать карты Mellanox Connect X4 на 2 порта, дешёвую платформу с большим количеством PCIE линий (например, Intel Z170 платы с тремя слотами PCI-E, где каждый может работать на X8 скорости) и собирать свой собственный X86 свич на 6 × 25Gb портов. Это всё ещё совсем не бюджетно (10к деревянных за платформу и по 4500 за карту = 23500 рублей за 6 портов или около 4к за порт), но значительно дешевле любых решений даже на б/у рынке, если считать устройство в целом, а не цену за порт.
▍ Мои покупки
Первым делом были взяты карты: одна 4 Lx XCAT ещё во времена первой статьи про 10 гигабит (но ехала очень долго и туда не попала), вторая карта была взята для этой статьи, и третья карта пришла по гарантии.
Все карты брались на AliExpress, и со второй была проблема, банально перебитые дороги, которые не давали ей стартовать в системе, и даже не поднимался линк… Отдам должное продавцу: он честно заменил мне карту без каких-либо вопросов и претензий, после того как я отправил ему фото повреждений, третья карта пришла уже целая. Но эта ситуация показательна, ведь на AliExpress мы берём б/у энтерпрайз железо, и с ним может быть что угодно.
Порты на вид обычные, снаружи ничем не отличаются от SFP+, кроме дополнительных радиаторов.
Да и сам порт идентичен на вид.
Для получения полной скорости на двух портах потребуется аж 8 линий PCIE.
Под радиатором прячется чип ConnectX-4 Lx.
DAC кабель я взял б/у с «Авито», как и писал немного ранее. Вышло 900 рублей за кабель и 50 рублей за доставку.
▍ Прошиваем 4 lx XCAT в ACAT
Я буду прошивать карты, так как решил сэкономить. Процесс простой и недолгий.
- Ставим карту в любой свободный слот.
- Качаем MFT, ставим и перезагружаемся: network.nvidia.com/products/adapter-software/firmware-tools
- Прошиваем.
Запускаем консоль от рута/админа и вводим «mst status», в ответ утилита вернёт название нашего девайса.
- mt4117_pciconf0 в Windows.
- /dev/mst/mt4117_pciconf0 в Linux.
Далее бэкапим настройки и оригинальную прошивку. Я на всякий случай снял дамп программатором, дабы иметь 100 % бинарник для прошивки, но он в итоге не пригодился.
-
flint -d mt4117_pciconf0 query full > flint_query.txt
-
flint -d mt4117_pciconf0 hw query > flint_hwinfo.txt
-
flint -d mt4117_pciconf0 ri orig_firmware.bin
(идёт минуты 3–5)
-
flint -d mt4117_pciconf0 dc orig_firmware.ini
-
mlxburn -d mt4117_pciconf0 -vpd > orig_vpd.txt
Теперь качаем прошивку для ACAT версии карты на официальном сайте nvidia.
Архив распакуем и бинарник прошивки положим рядом с тем, что набэкапили на прошлом шаге.
Когда всё готово, прошиваем, в моём случае в «Windows» строка выглядит так:
flint -d mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_32_1900-MCX4121A-ACA_Ax-UEFI-14.25.17-FlexBoot-3.6.502.bin -allow_psid_change burn
А в «Линуксе» так:
flint -d /dev/mst/mt4117_pciconf0 -i fw-ConnectX4Lx-rel-14_32_1900-MCX4121A-ACA_Ax-UEFI-14.25.17-FlexBoot-3.6.502.bin -allow_psid_change burn
Утилита ругалась на другой PSID, но мы говорим твёрдо и чётко: «Y» и продолжаем прошивку.
Процесс записи занимает несколько минут, после чего надо произвести перезагрузку.
После перезагрузки Windows компьютер выпал в зелёный экран (обычный BSOD в Win11, но цвет зелёный?) с жалобой на драйвер MLX5, но сразу же перезагрузился. После второй загрузки сеть заработала без проблем, а в диспетчере устройств ошибок не обнаружено.
Чтобы не ловить таких проблем, требуется не просто перезагрузить компьютер, а обесточить его и подождать пару минут, пока конденсаторы не разрядятся.
После успешной загрузки выполняем flint -d mt4117_pciconf0 и видим, что карта теперь ACAT и отрастила пару 25GBE портов!
Для проверки соединения на порте можно вызвать:
mlxlink -d mt4117_pciconf0 -p 1
И вот он, долгожданный линк 25 гигабит!
А так выглядит порт при подключении SFP+ DAC кабелем «Меланокса» на 10 гигабит. Но софт сообщает, что порт может работать и на 25 гигабит.
Ради интереса прогнал тест между NAS и компьютером с соединением 10 гигабит. Скорости не поменялись никак, а это означает, что мы вроде как ничего не потеряли в пылу экспериментов.
Поздравляю, вы обманули mellanox nvidia и получили шубу лучше, а китайский продавец недополучил полторы-две тысячи рублей за более дорогую версию карты.
▍ Свича нет, но есть Bridge
У меня нет свича на 25 гигабит, но есть карты с парой портов на каждой. Так почему бы не соединить ПК и сервер напрямую, а уже сервер подключить к роутеру?
Построим этакую древовидную топологию.
Proxmox
В Proxmox всё вышло максимально просто. Идём в Pve > System > Network, выбираем наш бридж и вписываем туда второй порт сетевой карты.
Подключаем основной ПК во второй порт сервера с Proxmox, первый порт Proxmox в роутер и видим, что сеть на ПК появилась и работает. Также можно добавить в бридж тот же Ethernet порт для получения линка 2,5/1 Гбит до роутера/свича, если на нём нет SFP+ портов.
TrueNAS
Почему бы не превратить NAS в свич? Тут процесс идентичен Proxmox. Делаем новый бридж и добавляем туда оба сетевых порта. Не забываем включить DHCP и перенастроить APPS сервис на использование бриджа вместо старого интерфейса.
Всё работает, но после выхода компьютера из сна он очень долго получает IP адрес (около минуты).
Сами интерфейсы настраивать особо не нужно.
Windows
Мне этот вариант не близок, но я нашёл вот такую видеоинструкцию.
▍ Тестирование со слабым железом
У меня валяется очень простенькая платформа на G4400. Этот процессор и тесты с 10 Гбит соединением я делал в статье Собираем бюджетный домашний NAS на 14 ТБ, его производительность в современном вебе просто смехотворная, но при этом для передачи файлов на 10 Гбит соединении его было вполне достаточно. Но каков его потолок?
На Proxmox хост я поставил докер, а в него — свой любимый OpenSpeedTest и iPerf.
OpenSpeedTest показал неплохие результаты! Конечно, выгрузка хромает, но передача данных с сервера показала скорость вплоть до 21 гигабита!
Запускаем тест «iPerf3 -c 192.168.1.35 -t 30 -P 2» на клиенте.
Пара ядер десятилетнего пенька без проблем отдают данные на скорости 16,6 гигабит/сек!
Запускаем обратный тест «iPerf3 -c 192.168.1.35 -P 20 -R», в таком виде нагрузка на процессор хоста колеблется в районе 50–70 %, а скорость составляет почти 23 гигабита в секунду.
Мал да удал, больше мне сказать особо нечего. Сейчас принято бегать за большими частотами и ставить двухсокетные сервера для простейших задач. Но в реальности для домашнего использования хватает и скромненьких ядер скайлейка, которым уже 10 лет.
▍ Тестирование: железо помощнее
Теперь поставим карту в сервер на Intel CC150. Да-да, это тот самый восьмиядерный процессор на архитектуре CoffeLake из этой статьи «Пробуем неизвестный процессор Intel CC150 для GeforceNow»
Его выбор тоже не идеален, так как однопоточная производительность оставляет желать лучшего, но она заметно выше, чем у пеньков из прошлого теста.
На этот сервер я поставил TrueNAS, в нём создал бридж и в него закинул все порты, что есть на железке.
Поставим OpenSpeedTest и немного разочаруемся. Скорости, мягко говоря, не супер, но сильно большего от браузерного теста я не ожидал.
Теперь прогоним iPerf3. Тут удалось получить заветные +- 25 гигабит в секунду, притом производительность высокая и стабильная в обе стороны.
Я поставил быстрый PCIE GEN4 диск в сервер, он правда работает на четырёх процессорных линиях третьего поколения, а его объём в 4 ТБ гарантирует, что при передаче больших файлов я не упрусь в кэш диска.
Тестируем на лицензионном «Интерстелларе» весом в 100 гигабайт. Скорость колеблется в районе 19–21 гигабита.
Тест CrystalDiskInfo покажет скорость работы с мелкими файлами.
Небольшой лайфхак: для теста сетевых дисков нужно запускать CDI от обычного юзера, а не админа, тогда он будет видеть сетевые диски.
Результат теста неплохой. Линейные задачи упираются в скорость адаптера, и всё хорошо. Мелкоблочка по сети, конечно, страдает, но всё ещё показывает хорошие значения. Работать с видео по сети будет комфортно, чего не скажешь про работу с очень мелкими файлами.
▍ Нагрев
Во время тестов я заметил очень приличный нагрев сетевых карт. В теории они должны были быть холоднее и эффективнее, чем третий «Меланокс», но на практике даже в (слегка) продуваемом корпусе температура стабильно была за 55 градусов в простое и более 60 под нагрузкой.
Для решения этой проблемы я распечатал крепление для 40 мм вентилятора из PetG пластика и установил туда простенький вентилятор Sunon. Таким образом удалось понизить температуру на 10–20 градусов в зависимости от нагрузки.
Изначально мне казалось, что карты могут быть старыми, и их термоинтерфейс испортился, но разборка двух карт и их обслуживание показало, что температура никак не изменилась и обслуживание не требовалось.
Температуру в Windows можно узнать, открыв консоль, перейдя в C:Program FilesMellanoxWinMFT> и запустив
mget_temp.bat -d mt4117_pciconf0
▍ Подсчёт бюджета
- Первая карта MCX4121A-XCAT — 4403 рубля.
- Вторая карта MCX4121A-XCAT — 4412 рублей.
- DAC кабель Huawei — 950 рублей с доставкой
- Вентиляторы Sunon HA40101V4 — 205 рублей за штуку/2шт
- Крепление вентиляторов — бесплатно.
Итоговая цена подключения двух компьютеров на скорости 25Гбит/сек — 10175 рублей.
▍ Выводы
Построение очень простой сети из пары компьютеров оказалось в целом недорогой и простой задачей, но нюансы, как обычно, есть. Если сервер и рабочий ПК стоят буквально в паре метров, то с подключением ровно ноль проблем, DAC кабели дешёвые и распространённые. Но чем больше расстояние, тем выше цена, и за рамками трёх метров начинается веселье с покупкой дорогой и горячей оптики. Нагрев карт высокий даже в простое, и без охлаждения использовать их не стоит, а с оптикой ситуация будет ещё хуже и потребует не какого-то простого обдува, а хорошо продуманной системы охлаждения.
Но несмотря на все нюансы, можно сказать, что решение рабочее и очень полезное. Линейная скорость работы с диском по сети сравнима с неплохим локальным диском на PCIe Gen 3 шине, а задержки доступа хоть и выше, но в повседневной жизни, играх и работе с видео буквально неотличимы от локально установленного диска.
Стоит признать, что эксперимент вышел удачный, но в итоге у меня эта сеть не прижилась, потребление оказалось выше, чем я ожидал, а мои задачи не требуют таких скоростей.
© 2024 ООО «МТ ФИНАНС»
Автор: Tirarex