Q: Infiniband и FreeBSD

Читаю тут Гугл про Infiniband (по случаю вчерашнего поста) и внезапно выяснил, что 2-портовые карты на eBay продаются вообще по $22 (+ доставка, две карты получаются чуть меньше $100)

Так как я давно вынашиваю мысль поднять дома линк быстрее 1Gbit/s на небольшом пятачке вокруг рабочего стола, я сильно возбудился. Но есть вопросы:

  1. Верно ли я понимаю, что CX4-кабель для Ethernet и Infiniband MicroGigaCN (как его называет Mellanox) и просто банальный 4xSAS (SFF-8470) - это все одно и то же?
  2. Есть ли драйвера для Mellanox Infiniband под FreeBSD9? Или таки светит мне Linux на NAS?
  3. Верно ли я понимаю, что взяв три 2-портовые карты (1-портовых нету) я могу 3 машины соединить в P2P-сеть и внутри каждой пары будут искомые 10G (после вычета оверхеда - 8G data)? В каждой паре заведу свою IP-подсеть, роутинга не надо. Что в такой конструкции будет с subnet manager, можно ли OpenSM-у сказать "этот интерфейс не твой"?

Comments

кабели у IB обычно оптика, плохо гнутся.
по поводу TCPIP over IB, то тут не всё просто. аппаратно всегда поддерживается только RDMA протокол, а TCPIP реализован, но может быть без аппаратного ускорения, соответственно 10 гбит не видать.
если без свитча, то я так понимаю нужен типа cross-over кабель, даже не знаю, есть ли такой. сам никогда не слышал про IB без свитча.
я бы не стал замарачиваться и просто бы сделал 2x 1 Gbit bundling.

Оптика как раз гнётся хорошо, плохо гнутся cx4 или twinax.

CX4 - автокроссовер.

Тут сразу много ответов:

1) Про кабели я спрашиваю т.к. если у 10G ether/CX4 кабели такие же, то по $22 за карту грех не попробовать infiniband, ну выкину если че, куплю потом Myricom по $115. Кабели получаются дороже карт.
На фотографиях медный IB и CX4 выглядят очень похоже (и очень похоже на external SAS 4x)

2) Но, конечно, от FreeBSD отказываться не хочется (потому что ZFS), вопрос с драйверами больной. Есть, конечно, OpenSolaris, для него есть вроде как OFED.

3) Про кроссовер: чувак, который натолкнул меня на мысль о дешевизне пишет что для P2P не нужен свитч и кабели - обычные медные.

4) TCP/IP нафиг необязателен, обойдусь iSCSI если че. Для IP у меня 1G есть и отлично.

5) Но вот 1G bundle - у меня не получилось: всякие round-robin крутятся по IP или по MAC, для соединения WS - NAS это не работает. Должно бы сработать iSCSI bundle, но руки не дошли попробовать.

через shipito комплект 2шт Myricom c 5м кабелем обошелся в 175$

ofed и для фри есть, типа.

2) Но, конечно, от FreeBSD отказываться не хочется (потому что ZFS)

читал не очень приятное про производительность zfs на больших объёмах (десяток винтов и больше), врут?

http://www.ebay.com/itm/Myricom-10G-PCIE-8AL-C-10GB-NETWORK-ADAPTER-CX4-...
http://www.ebay.com/itm/CX4-CX4-10Gbase-5M-cable-NEW-Qty-stock-5-Meter-/...

сделал offer на десятку меньше ценника и он согласился сразу
на шипите весь процесс регистрации занял 10мин
и оно уже уехало из шипито ко мне

попробуй вымутить скидку по двадцатке за карточки и десятку за кабель
думаю перед рождеством это проканает

У меня 5 дисков (медленных, зеленые WD) и мне все нравится - все уперто в 1G ether

А где?

Я вот вижу поимпорченное в ядро, которое не собирается сходу.

А с шапито этим - ты адрес на шипитушный поменял в eBay или в PayPal или в обеих или как?
Я вот прочел, что если аккаунт российский, то eBay не дает платить за лоты, которые USA only.

1) меняется в ebay, экспортируется при оплате в paypal
2) адрес надо ставить как primary

при оплате есть возможность выбрать любой адрес

ахез, но даже на их сайте написанно что есть. это раз.
найти проимпорченное в ядро что-либо несобирающееся -- это мегакруто: насколько я понимаю в NOTES включаются все опции. и если что-то не собирается -- маэйллист засирается руганью

Есть еще шопфанс -- там всего 3 за мелкую и $5 за покрупнее входящую посылку.

Адрес я лично менял на ибее только, но есть засада. Если поставить его primary, то некоторые лоты можно купить, но не получится за них потом заплатить палкой -- та ругается на international customer и все. Я так на страйк нарвался, теперь вот спрашиваю всегда тех, кто не шлет за пределы Штатов -- примут ли деньги с интернационального аккаунта палки или нет.

на ebay я добавил ещё 1 адрес шипитушный
и при оплате указываю доставку на этот адрес
в пейпале ничего не добавлял - оно само туда прописалось при оплате

некоторые продавцы не дают платить с карточек выпущенных за пределами США
например вот этот отказал в покупке
http://www.ebay.com/itm/NEW-Supermicro-CSE-M35T1-Mobile-Rack-CSE-M35T-1B...
пришлось покупать вот у этого
http://www.ebay.com/itm/Supermicro-CSE-M35T1-Mobile-Rack-/380386910360?p...
этот не такой щепетильный и корзину продал

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

при покупке сетевух деньги были пейпальские
но корзина точно платилась с карточки

А если его не поставить primary, то не даст заплатить за USA only?

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

Точнее надо сказать так: одно дело купить, другое заплатить. Может быть там две проверки, одна у ибея, другая у палки. У ибея проверяется первичный адрес, а вот палка уже знает все, в т.ч. и то, что карта международная. Поэтому тут одного описания лота мало, надо спрашивать.

Смех смехом, но
1) драйвера по умолчанию не собираются, нужно WITH_OFED
2) clang у меня их не собрал (userland - собрался), пробую gcc

Да, я разобрался вроде бы, WITH_OFED в make.conf - и должно собраться.

Но впечатление, что жизни в этом месте особой нет.

В-общем, закажу сейчас мешок карт, дальше будет видно.

NOTES -- это не по умолчанию, однако.
про clang надо бы в пассылку написать

В Notes я не нашел поминания OFED/Infiniband

А вот WITH_OFED в make.conf - сработало. Собрались утиля, которые хотят от kernel чего-то такого, чего там нет.

ну судя по этому патчу http://people.freebsd.org/~jeff/ofed.diff, который почти год назад должен был попасть в тогдашний карент (нынешний 9-релиз) необходимо

+# Infiniband Bus and drivers
+options OFED # Infiniband protocol stack and support
+options SDP # Sockets Direct Protocol for infiniband
+device ipoib # IP over IB devices
+options IPOIB_CM # Use connect mode ipoib
+device mlx4ib # ConnectX Infiniband support
+device mlxen # ConnectX Ethernet support
+device mthca # Infinihost cards

приколись, бивис, это в генерик!

Да, кстати, опишите, как получится. Что-то такое тоже интересовало. Я попробовл сунуться посмотреть на 10гбпс эзернет, но там оказалось слишком уж кучеряво по цене.

Ну есть еще Myricom 10G по $115

И это понятный такой путь, Ethernet и все дела.

Кстати, самое важное не спросил: а какую задачу решаете? Я в своё время (см выше, когда смотрел на 1гбпс эзернет) думал сделать как-то так:
Ящик с вениками, файлопомойка, фильмы, т.п., отдаёт в свич 10гбпс. В свич воткнуты остальные участники забега, но уже по 1гбпс (2 компа) + один на все те же 10. Я на это дело смотрел года два назад, но "подсчитал и прослезился".

У меня основные участники забега - две моих рабочих машины. Основная, ну и тестовая, где есть Linux/Mac OS на bare metal (а не в виртуалке).
Ну и файлсервер. Остальные машины в доме - кто на 1G, кто и вовсе по Wifi, там скорость почти не парит.

Проблема которую я решаю - раздражение от ожидания, когда мне с NAS (или на NAS) надо вылить гигабайт 50-100, сейчас узкое место - 1G. Ну то есть оно конечно в фоне, но при этом участники заметно проседают.

Ну и если проблему можно решить за $150 + пересылка (три карты, три кабеля), а заодно получить infiniband тот же (с микросекундными latency, с RDMA) - это прекрасно.
C Myrinet без свитча - получается подороже т.к. карт надо уже 4, они 1-портовые.

50-100... Я уже на 5-7гб скучать начинаю.

Спасибо.

7Gb со скоростью 100Mb/sec - это же 2 минуты?

Ну да, конечно тоже хочется быстрее.

1) RDMA и у ethernet есть.
2) насколько я знаю, просто так от RDMA толку нет. его надо приготовить со стороны приложения.
3) на ethernet карта-карта задержка не выше. задержка выше на свичах потому что store-and-forward. но уже сейчас опять есть свичи с cut-throw.

>Проблема которую я решаю - раздражение от ожидания, когда мне с NAS (или на NAS) надо вылить гигабайт 50-100, сейчас узкое место - 1G

а PCIe-шные USB3 карты не катят?

Меня все-таки $22 за двухпортовую 10G-карту очень возбудили. Хотя и Myrinet есть по $50.

не знаю что нашел ты, но я вижу однопортовую за 22

MELLANOX INFINIHOST MHEA28-XTC DUAL PORT 10GB/s NEW

$22.99

а, я по слову infiniband искал.

насколько я понимаю PCI 8x не прокачает 20Gb/s.

Это гигабиты.

разумеется.
я в курсе различия большой и маленькой буквы b.

Сооответственно, если PCIe - второй, то 8 lanes - это 4Gb/sec. На практике я вижу где-то 3.6Gb/sec в видеокарту по 8x

вообще-то, как показывает гугление, он -- первый.

http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family...

PCI Express revision 1.0a compatible card

далее, ервый раз я прочитал эту цифру в документаци на TILERA, ссылку на которую дать не представляется возможным, но вот тут такая же цифра:

http://lkml.indiana.edu/hypermail/linux/kernel/0805.1/0938.html

PCIe 4x дает 6.5Gbit/s. т.е. у 8x будет 13Gbit/s.

А мне вот vstat.exe от этой карточки (сегодня пришли) тупо пишет, если вкратце

uplink={BUS=PCI_E, SPEED=2.5 Gbps, WIDTH=x8, CAPS=2.5*x8}

И порты - две штуки по 4x 2.5Gbps
Т.е. выглядит все весьма сбалансированно.

А какая реально будет скорость - скажу когда кабеля придут или у Морозовского возьму.

bw PCI = 1/2 bw портов -- это сбалансированно?

в pci - 8 lanes, в каждом порту - 4 lane. Все по 2.5Gbit, все - двунаправленные.

то, что я писал про оверхед pcie в пустоту упало, да?

Как будто у IB оверхеда нету?

Я подозреваю, что он банально такой же, те же 8/10

т.е. больше, чем у езернета?

а какой pcie по твоему дает 6Gb/s? неужели 7.5, т.е. x3? не, x4.

Ась?

Ну по той ссылке чувак очень пессимистично размер транзакции оценивает.
Вот Википедия врет нам: Long continuous unidirectional transfers (such as those typical in high-performance storage controllers) can approach >95% of PCIe's raw (lane) data rate.

На практике в видеокартах я вижу 3.6GB/sec на PCIe x8 (вот взял и померял) т.е. не 95%, а 90.

у меня есть pdf от tilera, который оценивает производительность x4 как 6Gbit/s.
я собственеными руками программировал трансфер через pcie и могу сказать, что даже такой эффективности достигнуть очень не просто, и для начала размер транзакции будет 64KB.

На практике в видеокартах я вижу 3.6GB/sec на PCIe x8 (вот взял и померял) т.е. не 95%, а 90.

3.6*8 = 28.8 Gbit/s.

2.5*8 = 20.0 Gbit/s, значит у тебя явно не 2.5 линии, а 5.
5.0*8 = 40.0 Gbit/s => 28.8/40 = .72, что довольно близко к .60, болльше видимо за счет другого pcie.

ну а википедия идет в жопу, перепечатка маркетингового булшита не инетресна.

Не, ну .72 от "100%". А в этих 100% - еще 20% оверхеда.

ничего не понял.

Давай с другого бока зайдем.
data rate (оверхед вычтен) у PCIe 2 - 500MB/sec на lane. x8 = 4GB/sec. Из коих я вижу 3.6

.5 *8 = 4.
т.е. lane не по 2.5 Gbit/s, а по 5.
на твоей карте lane 2.5 Gbit/s.

Ну да.

То есть разумно ожидать там половину, 1.8Gb/sec на два порта (в каждую сторону). Ну то есть 7.2 гигабит/сек на порт из возможных (с учетом кодирования 8/10) 8.

То есть разумно ожидать там половину, 1.8Gb/sec на два порта (в каждую сторону).

неразумно. "The PCI-SIG also said that PCIe 2.0 features improvements to the point-to-point data transfer protocol". так что только 6.5Гиг/порт.

и кстати, хорошо еще если ты с одного порта сумеешь получить больше 6.5.

Ну с учетом того, что у меня тама "файлсервер", я и половины этого на практике не получу.

Ну infiniband - это же готично!

да нет, обычный зелёный текстолит с микросхемами ;)

в файлсервере 2 карты - 10Гб и 1Гб
10 по CX4 завязана кросовером с любимым компом
а остальные участникики забега сидят на дешевом 1Гб свитче
получается вполне бюджетно

QSFP -- это другое, это QIB (40 Gbps) в физическом формате SPF/SPF+

Upd: вот, например

О, теперь все стало на свои места.

CX4 - это, по мелланоксовски, MicroGigaCN (у некоторых кабелей в названии так и написано MicroGigaCN/СX4)

Осталось понять, CX4 и SFF-8470 - это одно и то же?

> CX4 и SFF-8470 - это одно и то же?
Да, с точностью до разъёмов (их, кажется, бывает 4 вида). У всех внутри 8 AWG28 витых пары.

Подожди, если ты про 4xSAS разъемы, то у них у всех свои номера (8470, 8086, 8087, 8088).
Ну, судя по Википедии конечно, http://en.wikipedia.org/wiki/Serial_attached_SCSI у меня вживую только 8087 есть (как раз 4xSAS, на RAID-контроллере)

И я продолжаю надеяться, что 8470 - един.

Да, похоже, что внешние все такие, но -- я встречал их с двумя видами защёлок и с винтами. То есть несовместимые вставляться вставляются, но не закрепляются. Точной номенклатуры разъёмов, разумеется, не помню.

При этом всё это были 10GbEth-CX4, разумеется: от Cisco, D-Link и ещё кого-то, кажется, Extreme Networks.

Точнее, CX4 - это среда передачи, 4*copper, а SFF-8470 -- один из видов разъёмов.

Хорошая поднята тема. Меня тоже интересуют, какие карты заведутся с FreeBSD (и только - с ней, ибо использую FreeNAS). Стек InfiniBand в ОСи присутствует: http://lists.freebsd.org/pipermail/svn-src-all/2011-March/036785.html

Но - какого вендора/модели заказать чтобы не ошибиться?

Интересно, IXSystem позиционирует на этой железке какую ОС:

http://www.ixsystems.com/ix/servers/intel-based-servers/1u-servers/ix12x...

Используют : Mellanox ConnectX-2 QDR Infiniband 40Gbps Controller with 1 External QSFP Infiniband Connector

Если пройтись по Mellanox-у:

http://www.mellanox.com/content/pages.php?pg=ethernet_cards_overview&men...

OS Supported: FreeBSD

Еще, судя по коммитам в HEAD Фри, базу для NAS используют эти люди: http://www.isilon.com/ ,
но информации о начинке не нашел

Драйвера то есть. Но те что есть на сайте у Mellanox - 2009 года. И внутри написано "Mellanox 10 GigE Driver for ConnectX EN"

OFED в девятке тоже есть, правда не собирается (по глупости - пути к include не прописаны).
И драйвера какие-то для Mellanox лежат в sys/ofed/drivers только внутри у этих драйверов #include linux/pci.h, что наводит на мысли.

Т.е. похоже что все недоделаное очень.

Я, конечно, к FreeBSD сильно привязан, но 10G за $22 очень хочется попробовать.

Есть еще Myricom, впрочем. Дороже, но зато все точно будет работать.

Нет инфинибэнда под FreeBSD. Забудь ещё минимум на пол-года. Работа идёт, но как-то вяло

http://wiki.freebsd.org/InfiniBand

И вообще, там все карты скорее на сторадж похожи, чем на сеть :) Впрочем, с 10G Ether та же фигня

(а ты не хочешь тут зарегистрироваться, а то камент от тебя чудом не пропал)

10G все-таки обычный ether, соответственно с ним IP будет работать и все такое.

Вообще-то сдается мне, что не так все плохо. Я на девятке 10/40G ethernet mellanox тестировал со стоковыми драйверами. И сборкой того самого OFED. Перформанс тема отдельная, но ethernet - точно работает

А как драйвер называется?

А то
lexa@home-gw:~# man -k mellanox
mellanox: nothing appropriate
lexa@home-gw:~# man -k Mellanox
Mellanox: nothing appropriate

Да, с манами все плохо. По-моему грузился вот этот:
../ofed/drivers/infiniband/hw/mlx4
И видятся карточки как mlxenX

У меня в /boot/kernel никакого такого модуля нет. Это 9.0-RC2 месячной давности, сейчас обновлюсь и ее посмотрю.

В-общем, занес я уже руку потратить $120 на три карты (с доставкой), не заведется под FreeBSD - ну поставлю VMWare и FreeBSD уже под ней. Не догоню, так хоть согреюсь.

Кабели, суки, дорогие. Дешевые - с винтиками, а с защелками как-то безобразно дорого.

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

Вот такая сетевушка:

mlxen0: flags=8843 metric 0 mtu 9000
options=d07bb
ether 00:02:c9:2e:d7:d0
inet 10.9.0.1 netmask 0xfffffffc broadcast 10.9.0.3
inet6 fe80::202:c9ff:fe2e:d7d0%mlxen0 prefixlen 64 scopeid 0xc
nd6 options=21
media: Ethernet autoselect (10Gbase-SR )
status: active

Собирать нужно так:
Add "WITH_OFED=yes" to /etc/make.conf
...

Add this to GENERIC:
options OFED
options SDP
device ipoib
options IPOIB_CM
device mlxen
device mlx4ib

This builds and installs a kernel with all of the ib modules built in.
They can be compiled separately but the kernel has to be built with support for OFED because it changes the
sizes of some kernel datastructures.

В случае ethernet достаточно
OFED
device mlxen

и пересборки мира не требуется

You can add 'opensm_enable="YES"' to /etc/rc.conf to have opensm start on all ib ports automatically. with both enabled concurrently.

Это, же, как я заключаю по названию девайса, ConnectX EN, то есть 10G ether.

В любом случае, я решил что Infiniband дома - это готично и заплатил $69 за три карты (и почти столько за доставку, блин). После нового года посмотрим как оно...

Люди, помогите разобраться!
Пересобрал мир и ядро со следующими параметрами:

http://www.opennet.ru/openforum/vsluhforumID1/92667.html#13

echo WITH_OFED=1 >> /etc/src.conf
echo WITH_OFED=1 >> /etc/make.conf

include GENERIC
ident OFED

options OFED
options OFED_DEBUG_INIT
options SDP
options SDP_DEBUG
options IPOIB_DEBUG
options IPOIB_CM

device mlx4ib
device mlxen
device mthca

Проблема вот в чем:
Есть Linux-сервера с инфини, и пара FreeBSD-машин тоже с инфини))

BSD-машины видят друг друга без проблем и видят Linux-машины тоже без проблем!!!
А вот Linux-машины не видят BSD-машины!!!!

Пинговал FreeBSD машину с Линукс хостов, на FreeBSD машине слушал через
tcpdump инфини интерфейс, дык вот, запросы приходят, но он на них почему то не отвечает... вернее отвечает, но не на все...!!!....на 5 ответит - на 300 промолчит (цифры примерные)((((((((

З.Ы.
С линуксом не хотят работать??))

Уже неделю бьюсь, ничего не получается((..Что может быть?