Быстрая сеть в домашней лаборатории или как я связался с InfiniBand

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

37a388064bc7f531d23525b7f196064c.png

tl; dr Если кому интересно, то сейчас такая ситуация, что пару десктопов можно связать 56Gb сеткой за <$100+доставка из штатов. Если хочется больше компьютеров, то это <$100 за 12 портовый свитч 40Gb и ~$60 за десктоп, плюс доставка. Но это всё б/у и ноль гарантий.

Заранее извиняюсь, но аббревиатур будет много. И это не реклама — всему этому оборудованию уже лет как много, оно уже не поддерживается производителем и легко ищется б/у на eBay за очень недорого, по сравнению с ценами на новое от производителя. Но должен сказать, что новое (анонсировано в конце 2020) — уже почти на порядок быстрее. Так что это всё про домашние эксперименты и самообучение.

Медный век

Когда появился в домашней лаборатории второй компьютер, а это год 2013, то в какой-то момент стало понятно, что скорости Ethernet в 1Gb — маловато будет, а хочется экспериментов. Стал выяснять, что же есть в природе на тот момент. 10GbE было ужасно дорого, и нашлись карточки производства Mellanox. Кроме Ethernet, они умеют и InfiniBand (это важно в дальнейшем). Можно почитать на Wiki, чем они отличается, но кроме всего прочего — IB умеет и IP over IB, а это ровно то, что нужно для нормальной жизни. Большим плюсом было то, что б/у адаптеры на eBay продавали чуть-ли не за копейки ($20–30). Поэтому было куплено сразу три (одна про запас) Mellanox-овские карточки MHEH28-XTC, которые умеют и InfiniBand SDR и Ethernet 10GbE, но имели странный разъем CX4. Также за пиво были найдены 3 кабеля (длиной всего 0.5 м, но для лабы — самое то).

db0b21fee88da09fade6804dd041d86b.jpg

Дальше пошли всякие эксперименты, скорость передачи файлов по сети 600–700MB/s была получена. На RAM диске конечно, мои SSD в то время больше 250–300MB/s не умели. 

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

Как известно, аппетит растет во время еды, поэтому апгрейд. Нашлись MHGH28-XTC, которые уже умеют InfiniBand DDR, а это уже 16Gbps. Выяснилось, что не все кабели одинаково полезны, скорость не выросла, пришлось искать новые. Нашлись медные, но аж 8 метров длины, и ощутимо тяжелые, это вам не Cat 5/6. С ними измерения показали до 1600MB/s, и до более тонкого тюнинга руки не дошли. Диски и рейды, что были — всё равно медленнее.

Следующий апгрейд, самый бестолковый, MHJH29-XTC, умеют аж QDR — 32Gbps. Только выяснилось, что Firmware для этих новинок — есть только очень старая. Такая, что под Win ничего работать даже не собирается. Хорошо хоть, что Linux выручил. Но ничего не работает на скорости QDR на старых кабелях, а кабели для скорости QDR найти — нереально.

И вылезла другая очень важная проблема — если хочется соединить больше двух компьютеров, то нужен свитч. И это была большая проблема. Обычно это такие Enterprise звери, которые при включении издают звуки, как будто собираются улететь на реактивной тяге. Что для дома — не вариант. А маленького, тихого и компактного — не нашлось в природе. Пришлось изучать вопрос дальше.

Оптический век

С первых опытов уже прошло пять лет, и год стал 2018. Насколько я понимаю ситуацию, и почему так произошло — штатовские дата центры начали (и закончили) апгрейды своих сетей, и на eBay появилась куча новых интересных б/у железок за гуманную цены. А именно карточки ConnectX-3, свитчи, и оптические кабели. Это уже не предания старины глубокой, а относительно новое железо.

SIDENOTE: как я понимаю, это из-за перехода с 10/40GbE на 25/50/100+GbE. И у них есть вопросы совместимости, поэтому старое просто утилизировали.

27c7857a88c7904ee698a2f001c8f1ad.jpg

Что тут можно рассказать, сначала были куплены карточки и кабели. Причем они уже были настолько распространены, что искать не обязательно Mellanox’ы, есть тоже самое под именами HP/Dell/IBM, и они дешевле. Драйвера встроенные есть и в Win, и в Linux, работает всё почти само. Это всё железо умеет QDR/FDR10/FDR14, то есть по сути 40/56Gbps. Реальную скорость при правильной настройке можно 4700+MB/sec увидеть. Хоть диски и стали NVMe (PCI 3 все-таки), но сеть всё равно оказалась быстрее.

А самое хорошее — есть свитчи за разумные деньги (<$100 за 8/12 портов 32/40Gb). Например старенький IS5022, из недостатков - умеет только QDR, и кому-то может быть важно, что только 8 портов, из плюсов - можно держать дома и даже спать рядом, если доработать.

ce0afe220d38939e815c72f24b4a20de.jpeg

Вообще не шумит, если вентилятор Noctua, дует холодным воздухом, но совершенно не продакшен решение, конечно. Зато по ГОСТ 26074–84 и ГОСТ 8486–86.

WARNING: если кто-то захочет повторить — надо перепаивать провода у вентилятора, там другая распиновка. При попытке просто воткнуть обычный вентилятор — он не вертится, а начинает дымиться!

Или SX6005 — эти уже умеют FDR10 на 12 портов, но главный чип у них снизу, и просто бросить кулер сверху я пока не решился. Но собираюсь этот свитч раскурочить и попробовать. DIY, всё-же.

f711ab3246492ebf04d78cb215350077.jpg

Есть ещё много разных вариантов, но все их расписывать — я не настолько разбираюсь в ситуации (Brocade ICX серию можно посмотреть). 

У всего этого благолепия есть один важный недостаток — те два примера железок, что я выше привёл — это InfiniBand свитчи. Они не умеют Ethernet, и получается только IPoIB. Что из этого следует — Win/Linux машины прекрасно видят друг друга, общаются и всё работает отлично. Главная проблема для меня была — если вам нужны виртуальные машины и чтобы они видели друг друга по быстрой сети — просто так не получится, IB не маршрутизируется на level 3 (поправьте, кто умнее, если я тут чушь написал). Точнее сделать это с виртуальными машинами можно, но не на домашнем железе (SR-IOV нужен и проброс VF внутрь виртуалки), с муторным процессом настройки, плюс с миграцией отдельные заморочки.

К сожалению, пока на eBay нет дешевых 40/56GbE Ethernet свитчей (можете поискать SX1012, если интересно), с которыми можно было-бы поэкспериментировать. Придётся ещё несколько лет подождать. А там, глядишь, и до 25/100GbE можно будет в домашней лабе подобраться.

PS: С IB есть ещё всякие нюансы типа необходимости OpenSM где-то, если switch non-managed, но это всё-же не про настройку IB статья.

© Habrahabr.ru