LINUX.ORG.RU

PCIe slave-slave шлюз между двух компьютеров

 , plx,


0

3

Привет!

Сейчас у меня есть компьютер, в котором к головному процессору цепляются ARMы по сети, т.е. в одном корпусе 8 раздельных сетей на 2 компа каждая.

Хочу поменять начинку и никак не срастается с сетью. Мне хочется взять что-то очень простое и очень готовое, чтобы оно сделало сразу две вещи:

  1. сообщило ARM-у, что у этой железки есть девайс (SD карточка, NVME диск или что-то ещё), с которого можно загрузиться, а само сходило по второму выходу к головному компьютеру и забрало оттуда что-то типа образа жесткого диска.

  2. позволило копировать данные между ARM-ом и головным компьютером в каком-нибудь простом варианте. Типа например DMA или что-то ещё.

Такой девайс, очевидно, возможен, потому что его модель — это две сетевухи с двух сторон, соединенные проводом (это как раз то, что у меня уже есть). Хочется убрать все эти сетевухи и добавить возможность загрузки через такой модуль.

Очень хочется узнать, что где-то рядом в интернете есть пласт готовой информации об этом, увидев которую будет сразу ясно, что всё собирается из готовых копипаст за пару недель.

Есть такое?

Собственно netboot на стороне arm железки
nfs/iscsi/etc сервер для отдачи дисков + tftp/http сервер для реализации загрузки на стороне центрального сервера.

Лучше наверное не придумали.

в одном корпусе 8 раздельных сетей на 2 компа каждая

Это чем-то обусловлено хитрым? Почему не сделать одну сеть для всех устройств?

Flotsky ★★
()

Либо ты общаешься по сети, тогда имеешь все эти прослойки, или ты вешаешь оборудование на шину i2c, i3c, smbus и пр., много их.

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

PS: но тут тоже прослойки есть, просто их меньше.

soomrack ★★★★★
()
Последнее исправление: soomrack (всего исправлений: 1)
Ответ на: комментарий от Flotsky

Это чем-то обусловлено хитрым?

проще запихать две сетевухи на 4 гигабитных выхода, чем затаскивать внутрь свитч и настраивать его.

Я уже пробовал этот путь с втаскиванием свитча и конфигурированием его из головного линукса. Очень больно и годится для тех, кто прям делает свои свитчи.

Собственно netboot на стороне arm железки

ей нужна для начала сетевуха (которая и ограничена гигабитом), а хочется побольше и без занимания такого количества serdes-ов. Поэтому хочется просто сразу PCIe сеть сделать.

max_lapshin ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

проще запихать две сетевухи на 4 гигабитных выхода, чем затаскивать внутрь свитч и настраивать его.

Не понимаю к чему это. На стороне главного сервера просто объединяете все интерфейсы в программный мост и вот вам «свитч».

ей нужна для начала сетевуха (которая и ограничена гигабитом)

Я не знаю что у вас за железки. Может у них «наружу торчит» и pci-e?
Сомневаюсь, что это чем-то поможет, но вдруг можно будет нагородить или сетевую карту побыстрее(10Gb/s) или с несколькими портами и их bonding или какую infiniband карточку? Но сути структуры это не меняет наверное, только прослоек добавляет.

Flotsky ★★
()
Ответ на: комментарий от max_lapshin

Ничего не понял. Ты хочешь pcie-pcie напрямую гонять?

https://unix.stackexchange.com/questions/552684/direct-pcie-to-pcie-connection-for-communications

Вот тут не про то что ты хочешь?

А дальше u-boot’ом патченым реализуешь загрузку какую захочется. Но это не пару недель. Я бы на полгода расчитывал.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

А дальше зависит от того, что железяки умеют. Если ты их можешь срастить в нормальную pci-e шину(то есть RC и endpoints, а не вот та описанная выше содомия) - жизнь твоя сильно упростится

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

кажется, это называется non-transparent bridge

https://events.static.linuxfound.org/sites/events/files/slides/Linux%20NTB_0.pdf

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

max_lapshin ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

Из того что я кратко посмотрел - готовым оно выглядит разве что в влажных мечтах. Чипы есть, да, но вот готового железа/бекплейна как-то не наблюдается. Ну и точёное оно всё же под NUMA-кластеры/блейд-системы, всё что сбоку придётся лопатить руками.

Раз уж у тебя армы, в них pcie контроллер зачастую умеют быть как RC, так и EP, соответственно из них можно сообразить нормальную шину, возможно с обычным «прозрачным» pcie-switch, что сильно уменьшит количество головняка, как я в прошлом мообщении и сказал.

Ну или надо чуть более подробных пояснений по железу и тому что из него хочется получить.

Ну и уточни, ты из готового пытаешься собрать, или железо делать собираешься? Очень сильно разнящиеся подходы будут.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

конечно из готового.

Если брать jetson orin/xavier, то они могут быть endpoint и там вообще почти всё готово. А вот jetson tx2 не могут, там нужен такой выпрямитель.

max_lapshin ★★★★★
() автор топика
Ответ на: комментарий от Dark_SavanT

Яндекс упорно предлагает мне купить «Плата сетевого адаптера AIC NTB Non-Transparent Bridge PCIe card with PLX»

Непонятно, что это вообще такое, надо с продавцами связаться.

max_lapshin ★★★★★
() автор топика

PCIe протокол он же не адаптирован на большие расстояния и для этого всего понадобятся специальные провода.

напрямую два бриджа PCIe соединить нельзя, нужен какой-то мост, а что это будет, специальный NTB бридж, два 10(2.5) гбит карточки и провод, или две pcie карточки с ком портами, это уж как нравится.

thunderbolt для этого подойдёт, драйвер только надо посмотреть, есть ли в линуксе, для DMA части

можно попробовать по xhci, бывает, что один из портов xhci может работать в режиме дебаг порта, так можно remote debug делать, может можно и сеть соорудить.

Какой-то сетевой драйвер, ppp там всякий придётся запускать.

Все эти NTB и прочие RDMA стоят дорого

dimon555 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Возможно действительно, раз уж уже есть pci-e, поставить туда по конвертеру в оптику/10G медь и гонять по ней. Выйдет дешевле и стандартнее, чем NTB городить.

В целом то что написано в топике решается патченым u-boot, ну или загрузкой мелкого линуксового образа который займётся общением и если что сделает kexec на новое ядро, если такое прилетело.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

на jetson xavier, который поддерживает режим устройства оно именно так и работает: два девайса просто лоб в лоб втыкаются своими PCIe разъёмами и спариваются после этого. 3 гигабита скорости выходит сразу

max_lapshin ★★★★★
() автор топика