RoCE: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 61: Строка 61:
Имена интерфейсов могут отличаться, ip можно выбирать любые из допустимых диапазонов для внутренних сетей.
Имена интерфейсов могут отличаться, ip можно выбирать любые из допустимых диапазонов для внутренних сетей.
Настройки сети можно по желанию сохранить с помощью [https://www.altlinux.org/Etcnet#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Infiniband etcnet].
Настройки сети можно по желанию сохранить с помощью [https://www.altlinux.org/Etcnet#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Infiniband etcnet].
= Проверка работы RDMA =
== Проверка отправки потока данных через RDMA ==
На первой машине (сервер):
rping -s -a 192.168.21.1 -v
На второй машине (клиент):
rping -c -a 192.168.21.1 -v
Будет большое число строк данных вида ротации строк:
<pre>
ping data: rdma-ping-11278: [\]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
ping data: rdma-ping-11279: \]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
ping data: rdma-ping-11280: ]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
ping data: rdma-ping-11281: ^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ
ping data: rdma-ping-11282: _`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR
</pre>
убивается по ctrl-c.
Один и тот же ip выше — не ошибка, так и должно быть: для сервера — где слушать, для клиента — куда стучаться.


[[Категория:Admin]]
[[Категория:Admin]]

Версия от 21:31, 25 июля 2018

В данной статье описывается настройка RoCE (RDMA over Converged Ethernet) для c7 и адаптеров ConnectX-3. Но основная последовательность действий в другой среде будет такой же, различия могут быть в именах пакетов и особенностях драйверов.

Подготовка

Базовая подготовка такая же, как для Infiniband и повторяет пункты 1-3([1][2][3]) руководства по Infiniband . Некоторые модули, например, ib_ipoib можно не загружать, но большинство лучше оставить, чтоб работали все утилиты.

Настройка адаптера

Для использования Converged Ethernet если карта VPI и может работать как в режиме ib, так и в режиме eth, может понадобится вручную переключить её в режим eth:

echo eth > /sys/class/infiniband/mlx4_0/device/driver/0000:81:00.0/mlx4_port1

PCI id устройства скорее всего будет другим, но он там должен быть один, всегда можно проверить по lspci. Портов может быть несколько, в режим eth нужно перевести все, что предполагается использовать перед выполнением дальнейших дествий. При использовании etcnet такие команды можно прописать в /etc/net/netup-pre.

Имя интерфейса можно получить из вывода ip link:

ip link | grep portid

в нашем случае это ens3 и ens3d1.

Поднять интерфейс можно стандартным:

ip link set ens3 up

Успешную конфигурацию интерфейса можно с помощью ibv_devinfo:

# ibv_devinfo
hca_id: mlx4_0
        transport:                      InfiniBand (0)
        fw_ver:                         2.42.5000
        node_guid:                      248a:0703:0069:dfa0
        sys_image_guid:                 248a:0703:0069:dfa3
        vendor_id:                      0x02c9
        vendor_part_id:                 4103
        hw_ver:                         0x0
        board_id:                       MT_1090111019
        phys_port_cnt:                  2
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             1024 (3)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

                port:   2
                        state:                  PORT_DOWN (1)
                        max_mtu:                4096 (5)
                        active_mtu:             1024 (3)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

Подключенный и активированный порт должен иметь статус PORT_ACTIVE.

Настройка IP сети

Нужно настроить обычную IP сеть между eth-интерфейсами ConnectX-3 со своей подсетью: на первой машине:

ip addr add 192.168.21.1/24 dev enp131s0

и на второй:

ip addr add 192.168.21.2/24 dev ens3

Имена интерфейсов могут отличаться, ip можно выбирать любые из допустимых диапазонов для внутренних сетей. Настройки сети можно по желанию сохранить с помощью etcnet.

Проверка работы RDMA

Проверка отправки потока данных через RDMA

На первой машине (сервер):

rping -s -a 192.168.21.1 -v

На второй машине (клиент):

rping -c -a 192.168.21.1 -v

Будет большое число строк данных вида ротации строк:

ping data: rdma-ping-11278: [\]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
ping data: rdma-ping-11279: \]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
ping data: rdma-ping-11280: ]^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
ping data: rdma-ping-11281: ^_`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ
ping data: rdma-ping-11282: _`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR

убивается по ctrl-c.

Один и тот же ip выше — не ошибка, так и должно быть: для сервера — где слушать, для клиента — куда стучаться.