Я установил 2 двухпортовые карты ConnectX-3 HCA Mellanox FDR (CX354A), каждую на отдельные машины. Машины подключаются друг к другу напрямую (без переключателя). Оба порта на картах подключены таким образом, что порт 1 соответствует порту 1, а порт 2 - порту 2. Каждый порт настроен следующим образом:
HCA1 port1: ib0 inet addr:192.168.10.13 Bcast:192.168.10.255 Mask:255.255.255.0
port2: ib1 inet addr:192.168.10.15 Bcast:192.168.10.255 Mask:255.255.255.0
HCA2 port1: ib0 inet addr:192.168.10.24 Bcast:192.168.10.255 Mask:255.255.255.0
port2: ib1 inet addr:192.168.10.26 Bcast:192.168.10.255 Mask:255.255.255.0
Выполнение 2 команд opensm на HCA1, как показано ниже, и ibstat показывает, что все 4 порта включены и активны.
root@HCA1# opensm -g <ib0 GUID> --daemon
root@HCA1# opensm -g <ib1 GUID> --daemon
Когда все настроено выше, я могу пинговать с любого IP-адреса на любой другой из указанных выше.
ОДНАКО, когда я отсоединил кабели для порта 1, эхо-запрос между подключенной парой портов 2 не работает. Отключение пары port2 и подключение только пары port1, ping работает нормально даже для отключенного port2 IP (?) Что может быть причиной этого и как я могу решить эту проблему. Пожалуйста, укажите, какую дополнительную информацию я должен опубликовать.
Я пытаюсь установить полностью изолированное соединение для каждой пары портов и запустить отдельные процессы openMPI для одновременного тестирования и сравнения пропускной способности для двух кабелей Infiniband. Может ли кто-нибудь посоветовать, как это можно сделать?
Что касается того, что я узнал, я думаю, мне нужно создать разные ключи раздела для каждой пары портов. (в настоящее время они используют pkey по умолчанию 0xffff) Однако этот pkey по умолчанию не может быть изменен после того, как infiniband настроен во время загрузки. Любое предложение или совет?
Обе машины работают под управлением CentOS 6.4, и я установил Mellanox OFED 1.5.3.
Это результат работы ibstat на обеих машинах:
[root@HCA1 Desktop]# ifconfig ib0
ib0 Link encap:InfiniBand HWaddr 80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet addr:192.168.10.13 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::202:c903:21:8f11/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1
RX packets:4144160 errors:0 dropped:0 overruns:0 frame:0
TX packets:4141376 errors:0 dropped:2 overruns:0 carrier:0
collisions:0 txqueuelen:1024
RX bytes:702746349 (670.1 MiB) TX bytes:719570861 (686.2 MiB)
[root@HCA1 Desktop]# ifconfig ib1
ib1 Link encap:InfiniBand HWaddr 80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet addr:192.168.10.15 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::202:c903:21:8f12/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1024
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@HCA2 Desktop]# ifconfig ib0
ib0 Link encap:InfiniBand HWaddr 80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet addr:192.168.10.24 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::202:c903:21:8f51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1
RX packets:4141382 errors:0 dropped:0 overruns:0 frame:0
TX packets:4144161 errors:0 dropped:2 overruns:0 carrier:0
collisions:0 txqueuelen:1024
RX bytes:703005597 (670.4 MiB) TX bytes:719323129 (685.9 MiB)
[root@HCA2 Desktop]# ifconfig ib1
ib1 Link encap:InfiniBand HWaddr 80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00
inet addr:192.168.10.26 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::202:c903:21:8f52/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1024
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Загруженные модули выглядят следующим образом:
[root@HCA1 Desktop]# /etc/init.d/openibd status
HCA driver loaded
Configured IPoIB devices:
ib0 ib1
Currently active IPoIB devices:
ib0
ib1
The following OFED modules are loaded:
rdma_ucm
rdma_cm
ib_addr
ib_ipoib
mlx4_core
mlx4_ib
mlx4_en
ib_mthca
ib_uverbs
ib_umad
ib_ucm
ib_sa
ib_cm
ib_mad
ib_core
iw_cxgb3
iw_nes
Хорошо, я не совсем знаком с настройкой CentOS, но я думаю, что происходит следующее. Эта одна или обе копии opensm работают по ссылке ib0, но не по другой. ib0 - это значение по умолчанию для OpenSM.
Насколько я понимаю, вам понадобятся две копии openm, работающие в этой конкретной настройке, потому что без коммутатора, связывающего все HCA вместе, это, по сути, две структуры, и вам нужно запустить диспетчер подсети на обеих структурах. Вы правильно выбрали это, но на самом деле не запускаете их правильно (особенно 2-й экземпляр).
Ping работает, когда оба подключены, потому что Linux передает ping на второй интерфейс и отвечает за оба IP-адреса. Все что работает над ib0 (Pair1).
В Ubuntu, с которым я знаком, есть файл конфигурации / etc / default / opensm.
Похоже, что в CentOS все по-другому. Формат этого файла в Ubuntu используется для запуска openm с правильными портами, потому что вам нужен менеджер подсети opensm на каждом порту.
В основном то, что вы хотите сделать, не запускать
opensm -g --daemon
дважды, но вместо этого
/ usr / sbin / ibstat -p
Что даст следующий результат:
0x001a4bffff0c34e5
0x001a4bffff0c34e6
Тогда беги
opensm -g 0x001a4bffff0c34e5 --daemon
opensm -g 0x001a4bffff0c34e6 --daemon
В Ubuntu сценарий инициализации фактически автоматизирует этот процесс для ports = ALL (читается из / etc / default / opensm), где ALL - ключевое слово, выбранное сценарием инициализации.
Вероятно, есть сценарий инициализации для opensm под CentOS. Тем временем можно использовать указанные выше команды или написать свой собственный сценарий запуска.
ОБНОВЛЕНИЕ: я не уверен, будет ли это иметь значение или нет, но у меня также загружены следующие два модуля ядра, которых у вас нет.
ib_ipath
ib_qib
Вы также установили последнюю версию прошивки на HCA? На самом деле это очень важно. Не думайте, что у них новинки с завода.
Как я вижу, две разные физические подсети настроены с одним и тем же адресом подсети 192.168.10.0. Я думаю, вам следует назначить разные адреса подсети, чтобы решить эту проблему.