Pull to refresh
2947.34
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Как я делал сеть на 10 гигабит с минимальным бюджетом

Level of difficultyMedium
Reading time11 min
Views57K


Решил я ускорить тривиальную задачу в виде передачи файлов с одного компьютера на маленький домашний NAS. Раньше 10 гигабит были для меня чем-то заоблачным (с учётом цены на свичи, а также сетевые карты). Но благодаря апгрейду дата-центров, а также свежим чипам для свичей от Realtek, апгрейд оказался недорогим и безболезненным.

О выборе железа и тестах — под катом.

Фаза 1 — изучение рынка


▍ Ethernet, который не смог


10gbe возник в голове очень быстро. Раз 2,5 гбит пришли на рынок легко и недорого, то, может, с 10 гбит на ethernet-порте всё хорошо?

К сожалению, всё не так хорошо.

Свичи на рынке есть, но встречаются реже единорогов, а их стоимость приближается к обоим крьльям боинга (200$ за TL-SX1008 на 8 портов).



Кроме того, для 10 гигабит требуется таковой порт на ПК/сервере. Добавить его можно только сетевой картой, которые, мягко говоря, не дешёвые, а также очень много потребляют. Например, самая простая Intel x550-t2 обойдётся примерно в 100$ и потребует активного охлаждения!



Также неприятный бонус состоит в том, что для 10 гигабит потребуется кабель 6-й категории. Конечно, cat5e успешно сработает на небольших дистанциях, но если проводка уже протянута по квартире, то шансы завести стабильные 10 гигабит очень малы.

▍ SFP+


Второй вариант, который назвать домашним не совсем получится. К нам он приходит из телекома и дата-центров. Найти домашний компьютер с SFP+ портами будет буквально невозможно, роутеры редки, а свичи в основном энтерпрайз. Но всё оказалось не так страшно.

▍ Cетевые карты


В отличие от 10GB Ethernet стандарта, SFP+ уже далеко не новый и очень активно используется в серверной/провайдерской среде. Настолько активно и давно, что сетевые карты прошли много этапов обновления, и на рынке полно предложений БУ железа по небольшому прайсу, при этом есть выбор разных производителей, а также стабильные драйверы!

Основные представители рынка — это сетевые карты Intel X520-DA2 / X710 DA2, а также Mellanox ConnectX 2/3/4. Эти карты можно найти на барахолках по очень низким ценам, и почти всегда их визуальное состояние будет близкое к идеальному за счёт почти идеальных условий работы в дата-центрах.

После долгого изучения форумов и реддита я пришёл к таким выводам:

  • У Mellanox чуть лучше драйверы и стабильность.
  • Mellanox менее привередлив к Трансиверам и DAC-кабелям.
  • Mellanox (3) чуть более производительный, чем X520.
  • Mellanox имеет меньшее потребление как в idle, так и под нагрузкой.
  • Mellanox имеет больше фишек (например, RDMA).
  • Intel в целом дешевле.

Поэтому к покупке я решил рассматривать только карты Mellanox.

▍ Свичи


Первым делом я полностью отмёл старые Enterprise-свичи. Мне не очень импонировала идея иметь дома шумный и горячий свич с большим кол-вом портов, которые мне даже нечем занять.

Простое гугление приводит многих к такому варианту, как Mikrotik CRS305-1G-4S+IN. На момент выхода статьи этот свич всё ещё хорош для домашнего использования, он пассивный, с небольшим потреблением, а главное, Layer3 со всеми фишками SwOS. Но его цена не прошла проверку временем и сейчас очень не демократичная, а железо немного устарело.

Из дешёвых, но новых вариантов хочется отметить TP-Link TL-ST1008F, а также его управляемого собрата TL-ST5008F. Оба варианта обладают восемью портами SFP+, очень демократичной ценой и пассивным охлаждением.

На STH можно изучить обзор этого девайса. Стоит сказать, что это отличные варианты.



Продолжая тему «больших» 10g SFP+ свичей, Aliexpress может подкинуть много интересных «ноунейм» вариантов, например, такой или такой.

Но, как обычно, есть варианты ещё дешевле и проще. Для моих целей требуется всего лишь пара SFP+ портов, которые объединят сервер и рабочий ПК. И варианты с парой SFP+ существуют! О них я поговорю далее.

▍ Кабели


Тут вариантов три:

1. Трансиверы + патч. Хороший вариант в плане цены. На барахолках можно выцепить всё за копейки: как трансиверы, так и патч-кабели к ним. Проблема заключается в подборе компонентов, высоком потреблении энергии, а также в хрупкости кабелей. Плюсы можно найти в гибкости подбора компонентов, большом расстоянии, на котором могут работать эти кабели, а также в низкой цене на метр.


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


3. DAC-кабель. Всё тот же кабель с SFP+ портами, но в этот раз это именно кабель с медными проводниками. Соответственно, он не конвертирует электрический сигнал в свет и обратно, отсюда меньшее потребление, а также низкая цена.

Их легко найти как на Али, так и с быстрой доставкой на Озоне (но чуть дороже).

В минусы можно записать толщину кабелей и максимальную длину в 7 метров.


Фаза 2 — закупка


▍ Свич


Отдельный обзор на свич писать нет смысла. Это буквально ноунейм балалаяка с Aliexpress. И вы можете не париться с поиском и покупой лучшего! Все эти свичи с четырьмя 2,5gbe портами, а также парой SFP+ портов под капотом имеют новый контроллер Realtek rtl8372.

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

Разве что некоторые свичи имеют Web-интерфейс для настройки, но он очень банальный и нефункциональный.

Обзоры можно посмотреть в сети, например, на этот Hasivo.

В общем итоге Tagged Vlan работает даже на девайсах без веб-интерфейса, поэтому тратить сильно много денег не стоит.

Я купил свич Horaco, и, честно говоря, не могу его рекомендовать. Родной блок питания ужасен, поддержка продавца буквально нерабочая. Купил я его, так как он был самый дешёвый на тот момент.



Сейчас же стоит обратить внимание на вот такой вариант Hisource с OZON. Он также есть на AliExpress, но дороже на 700 рублей.



Чипсет и функционал идентичен моему horaco, поэтому буду считать его в итоговую таблицу цен.

▍ Сетевые карты


Как уже писал в изучении рынка, я долго смотрел разные варианты карт от mellanox. Но в общем выбор ограничен тремя вариантами.

▍ Mellanox connectx-2


Является самым старым, но при этом самым бюджетным вариантом. Китайские друзья предлагают их по цене в 1000 руб. + доставка 400 р.

Но этот вариант самый непредпочтительный. Да он даст честные 10 гигабит, но драйверы на неё уже устаревшие, rdma нет, а потребление вдвое выше, чем у 3 версии.



▍ Mellanox connectx-3


Вариант уже интересный. Карта также EOL, а её прошивка не обновляется с 2017 года, но уже есть rdma, низкое потребление и куча мелких фишек.

На рынке много вариантов исполнения карт под разных производителей, и если брать не generic-исполнение, то есть шанс нарваться на фирменную HP с ограниченной прошивкой. В таком случае вам придётся её прошивать в дженерик-карту, а это время и не 100%-ный шанс успеха.

На Али карт много, искать можно по модели CX311A, а я взял карты именно по этой ссылке.


▍ Mellanox connectx-4


Наверное, лучший вариант для домашней лабы в данный момент, но только если вы возьмёте более эффективную LX-версию.

Средняя цена на эти карты начинается от 4,5 тысяч рублей что +- в 2 раза выше, чем у 3-й серии, но при этом это не EOL-карта с большим кол-вом фишек, свежими драйверами, а также низким потреблением.

Если вы готовы немного расширить бюджет, то это лучший вариант. Ищется по модели CX4121A.



Для удобства приведу ссылку на сайт Nvidia, где описаны различия между адаптерами меланокс, 3-6-й серий.

Мои сетевые карты заказаны с Али. На вид идентичные, кроме цвета радиаторов.




Состояние заводское, ни единой пылинки даже в самых дальних углах.



Немного больше о картах
Ноунейм коробочки:



Карты 2015 года и 6-й ревизии, хотя у китайца на фото 7-я ревизия и 2014 год:



В комплекте и высокая и низкая планка:



А ещё на карте присутствует ядерный светодиод оранжевого/зелёного цвета:



▍ Кабели


В рисерче я уже описал краткие плюсы и минусы оптических, а также медных кабелей. В моём случае соединение будет в рамках одной стойки, поэтому я выбрал DAC-кабели.

Сами DAC-кабели имеют очень простую конструкцию, включающую в себя пару чипов памяти, а также проводники, по которым ходят данные.

Вот пример разборки с канала NFM:

Выбор кабеля иногда может быть сложен, ведь некоторые свичи (например, Cisco) не очень хорошо относятся к Dac-кабелям, прошитым на другой бренд. Но в нашем случае карты, как и свич, буквально всеядны и готовы к работе с любыми кабелями.

Изначально я выбрал недорогие кабели FIBO-TELECOM стоимостью 1400 рублей за 1 метр. Также на Али есть проверенные кабели ONTI по 1070руб/шт. (1 м).

Но случайно на барахолках нашей страны я нашёл комплект из трёх кабелей Mellanox, которые вместе стоили примерно ~1100 рублей за штуку с учётом доставки. Поэтому недолго думая я заказал брендовые, но б/у кабели.

Главное их проверять, так как б/у кабели могут иметь дефекты после хранения и транспортировки людьми, которые не знают о их хрупкости. Проблемы выражаются ошибками чтения EEPROM, а та же в виде нестабильной скорости в одну или обе стороны. Прочитать ошибки можно при помощи команды ethtool -m 'ваш сетевой порт', а также через ifconfig.



▍ Итоговая стоимость апгрейда


  • Свич Hisource — 2925 руб.
  • 2 dac-кабеля — 2236 руб. (не считая одного запасного).
  • 2 сетевых карты — 5120руб.

Итоговая цена всего апгрейда сети: 10 281 руб.

Я считаю, что это очень небольшой бюджет для столь крупного апгрейда, включающего в себя как 10 гигабит соединение сервера и рабочего ПК, так и дополнительные 3 порта на скорости 2.5 гбит/сек, которые также позволяют в будущем быстро обращаться к серверу!

Если добавить сюда wifi7-точку (например, unifi u7 pro), то можно получить высокую скорость доступа к серверу даже по wifi!

Но что, если попробовать другие варианты? Давайте посчитаем!

Сетевые карты Кабели Свич Итого
Мой ConnectX 3 — 5120 руб./2шт. Б/у — 2236 руб./2шт. Hisource 2925 руб. 10 281 руб.
Минимум ConnectX 2 — 2728 руб./2шт. Б/у — 2236 руб./2шт. Hisource 2925 руб. 7889 руб.
Идеальный ConnectX 4 — 12 336 руб/2шт. Fibo — 2800 руб./2шт. TP-LINK 14912 руб. 30 048 руб.

Фаза 3 — установка и отладка


▍ Слабый сервер под Windows 10


Первым делом я установил карту в достаточно слабенький сервер, который уже был в одной из прошлых статей. Это всего лишь старенький и слабый Celeron на 2 ядра, но даже тогда он смог показать скорости под 2 гигабита по самбе, а что же он сможет, если дать ему канал 10 гигабит?

Установка простая. Вскрываем-ставим-закрываем. В комплекте с PCIE-карточкой нашёлся низкопрофильный переходник, тем самым карта без проблем установилась в тонкий 2U-корпус.

В моём случае карту удалось поставить в PCIE2-порт, а это судя по документации: «1 x PCI Express 2.0 x16 Slot (PCIE2 @ x1 mode)», что в теории до 4 гигабит/сек. Даже не половина пропускной способности, но всё ещё больше чем 2,5 гбит юсб адаптер, который был в прошлой статье.



После запуска обнаружилось сразу две проблемы. Первая — невозможность сохранять настройки сетевой карты из её же менеджмент-интерфейса (CTRL+B во время загрузки), но в целом её настройки подходили для моих задач, поэтому я решил не вдаваться в них и пойти в Windows.


В Windows карта запустилась с ошибкой CODE 12 «это устройство не может найти достаточное количество свободных ресурсов для использования...», но во время гугления ошибки система предложила перезагрузиться, и после перезагрузки линк сразу поднялся, а проблема исчезла. Чудеса. Устанавливаем драйверы и забываем про этот сервер до тестов.


▍ Рабочий ПК под Windows 11


После запуска системы с подключённым SFP+ DAC кабелем, я не имел сети, совсем. Сетевая карта сразу работала и была в диспетчере устройств. Драйверы я поставил заранее.

В списке сетевых соединений постоянно мигало новое соединение, но IP оно не получало и постоянно разрывалось.

В итоге данная проблема решилась простой перезагрузкой системы. После неё линк поднялся сразу и работал стабильно на скорости 10гбит/сек.

Карта установлена в PCIE GEN3 X4 порт от чипсета.



▍ Proxmox


Это в итоге оказалась самая долгая часть. Proxmox уже имеет модули для поддержки Mellanox connectX3, но после установки нового pcie-устройства, нейминг устройств уехал, а это значит, что пора идти править конфиги.

После подключения монитора я выполнил ip a | less — последняя приписка нужна, дабы можно было листать огромный список интерфейсов, который не помещается в экран.


В моём случае теперь доступно 2 интерфейса, enp5s0 — это стандартный Ethernet, и enp7s0 — новый интерфейс.

Идём в nano /etc/network/interfaces и правим бридж, дабы он использовал enp7s0 вместо старого пятого в моём случае.

Сразу тут же под SFP+ интерфейсом можно прописать mtu 9000 для включения «jumbo frames».


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

Если вы при выборе порта поступите так же, как и я, то можно сменить порт прямо в веб-интерфейсе (pve-network-vmbr0).


Сразу же можно обновить сетевую карту, так как в Linux данный процесс максимально прост.

Обновление Mellanox ConnectX 3 под Linux
Проверка версии прошивки очень проста. Выполняем ethtool -i ПОРТ и смотрим на firmware-version, который был 2.32, когда на данный момент последняя прошивка имеет версию 2.42.5000. Прошивки можно взять отсюда.

Берём пакет, качаем пакет под свою систему через WGET и распаковываем через tar zcvf пакетнейм.tgz.

В папке пакета выполняем chmod +x install.sh.

Для работы софта потребуется пакет dkms, ставим его через apt-get install dkms
Запускаем сервис через mst start.

Теперь выполняем mst status, который должен вывести список наших сетевых карт. Если там пустота, запускаем сервис так: mst start --with_unknown (возможно, ваша карта в infiniband-прошивке) и выполняем mst status.

Если всё прошло успешно, то появятся 2 девайса: dev/mst/mt4099_pciconf0 и /dev/mst/mt4099_pci_cr0. Нам понадобится второй.

Качаем и распаковываем BIN файл прошивки отсюда и прошиваем её через flint -d ПутьКдевайсу -i ФайлПрошивки.bin burn, в моём случае вышло так: flint -d /dev/mst/mt4099_pci_cr0 -i fw-ConnectX3-rel-2_42_5000-MCX311A-XCA_Ax-FlexBoot-3.4.752.bin burn.

После успешной прошивки, которая длится около 30 секунд, перезагружаемся и вызываем ethtool -i ПОРТ. В результате версия прошивки должна смениться на ту, что мы зашивали.




▍ Свич


Подключение банальное — втыкаем пару SFP+ кабелей, куда нам нравится, и всё работает. Линк до роутера в моём случае через Ethernet и он гигабитный (ограничение портов роутера). Единственное, что заметил, так это меньший нагрев свича при подключении SFP+ вместо стандартного эзернета.

Также при возникновении проблем с линком/скоростью, можно заменить блок питания. Китайские продавцы кладут откровенно мусор, который не тянет заявленные токи под нагрузкой, а пульсации не радуют. Замена решает 90% возможных проблем. В моём случае я заменил блок со стокового (2А написано, но по факту после 0,5А вырубается) на mean well lrs 35-12, но подойдёт любой блок 12в и от 1A.



Фаза 4 — тестирование


Первый, но бесполезный тест в паре с сервером под J1800. iperf выдал скорости вплоть до 2,8гбит/сек и упёрся в производительность процессора. Было просто интересно, что может пара ядер старенькой архитектуры. Всё ещё неплохой результат.


Теперь более адекватный тест — виртуальная машина (6 ядер от i5 13600k + 10гб оперативной памяти), она находится на Proxmox хосте и делит кучу ресурсов с другими виртуалками, коих ещё 8 штук. Система использует сетевой адаптер VirtIO, а также образ диска в формате RAW.

Скорость колеблется в районе 7,8 гбит — 9 гбит/сек. Кажется, эксперимент уже прошёл успешно.


Та же виртуальная машина, но попробуем тест CrystalDiskMark, при этом используем стандартную функцию windows — «поделиться» диском на сервере, и примонтируем его на основном ПК (smb шара в общем).

Результаты интересные. Запись крупных блоков логично упёрлась в сеть 10 гигабит, ну а мелкоблочная запись не особо интересная и находится на неплохом, но низком уровне, если сравнивать с nvme SSD дисками.

Притом образ диска виртуальной машины лежит на ssd samsung PM9A3 объёмом 4тб, скорости которого по тестам в разы превосходят то, что мы получили даже при тесте диска в самой системе виртуальной машины.

Я пробовал разные варианты кэширования, но скорость мелкоблочки так и не выросла. Слева тест диска под системой, а справа тест папки по сети:


Теперь более стандартный тест на копирование файлов на сервер и обратно. Конечно же, копировать будем наши любимые linux ISO.

Честно говоря, не успевал делать скрины — копирование буквально пролетает за секунды!
Скорость копирования на сетевой диск колеблется от 6 до 9 гигабит, а отправка может достигать 9 гигабит/сек!

Работа достаточно затратная в плане нагрузки на процессор. 6 ядер от i5 13600k зачастую загружаются на 70%! Но если отказаться от виртуализации и использовать BareMetal NAS, то требования к процессору будут сильно снижены за счёт отсутствия оверхеда от виртуализации и доступности RDMA для карты ConnectX 3.


Обратный тест было решено провести на фильме объёмом 35 гигабайт, банально для того, чтобы успеть сделать скриншоты.

Скорость была в районе 8 гигабит с подъёмами до 9,5 и падениями до 3 гигабит. Результат, как я считаю, отличный.


Со скоростями разобрались, они вроде как неплохие, а что же по нагреву? Вся идея использования SFP+ и dac-кабелей родилась из-за фактора цены и потребления. Замерить потребление самой карты не так просто, а вот посмотреть на нагрев не составит труда.

Китайский свич оказался вполне себе холодным девайсом. Стоя просто на столе вне серверной полки, он имел температуру корпуса в районе 29 градусов. Но для чистоты эксперимента я поставил его в 1U пространство на уже тёплый роутер и дал поработать iperf полчасика на максимальной скорости 8-9 гигабит/сек.

В итоге температура Свича составил 38.5 градуса, если смотреть снизу на чип, и 34 градуса, если смотреть на корпус сверху. Видно, что греется только чип, SFP-адаптеры холодные.

Забавный факт в том, что при подключении 2,5 гбит клиентов в ethernet-порты этот свитч разогревается вплоть до 45 градусов, даже если нагрузки нет.


Сетевые карты чуть более горячие, удалось найти температуру вплоть до 50 градусов, если смотреть на радиатор, и это в душном 2U-корпусе без активного обдува. Владельцы x520 и x710 всплакнули.

В рабочем ПК карта имела некрашеный радиатор, температуру которого замерить не удалось, но на ощупь он был еле тёплый, хорошее охлаждение в 4U-корпусе сделало своё дело.


Заключение


Я долго думал о целесообразности апгрейда на фоне старых представлений о ценах на 10 гбит оборудование, а также повышенного потребления энергии.

Но на практике апгрейд оказался очень бюджетным (а можно ещё бюджетнее, если смотреть на железо чуть старее и прожорливее), а интеграция и настройка буквально не сложнее, чем работа с обычными сетевыми картами.

Могу ли я рекомендовать такой апгрейд? Если у вас есть задачи, которые получат преимущества от таких скоростей, то однозначно рекомендую.

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Tags:
Hubs:
Total votes 124: ↑129.5 and ↓-5.5+135
Comments145

Articles

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds