разрешить infiniband для пользователей без прав root

разрешить infiniband для пользователей без прав root

У меня Infiniband работает на RHEL 6.3

[root@master ~]# ibv_devinfo 
hca_id: mthca0
transport:          InfiniBand (0)
fw_ver:             4.7.927
node_guid:          0017:08ff:ffd0:6f1c
sys_image_guid:         0017:08ff:ffd0:6f1f
vendor_id:          0x08f1
vendor_part_id:         25208
hw_ver:             0xA0
board_id:           VLT0060010001
phys_port_cnt:          2
    port:   1
        state:          PORT_ACTIVE (4)
        max_mtu:        2048 (4)
        active_mtu:     2048 (4)
        sm_lid:         2
        port_lid:       3
        port_lmc:       0x00
        link_layer:     InfiniBand

    port:   2
        state:          PORT_DOWN (1)
        max_mtu:        2048 (4)
        active_mtu:     512 (2)
        sm_lid:         0
        port_lid:       0
        port_lmc:       0x00
        link_layer:     InfiniBand

но он работает только как root.

при попытке из-под обычного пользователя я ничего не получил:

[nicolas@master ~]$ ibv_devices
device                 node GUID
------              ----------------
mthca0              001708ffffd06f1c

Итак, как разрешить обычным пользователям использовать Infiniband?

решение1

Хорошо, это ошибка в версии RHEL 6.3.

Правило Udev отсутствует:

/etc/udev/rules.d/90-rdma.rules

KERNEL=="umad*", SYMLINK+="infiniband/%k"
KERNEL=="issm*", SYMLINK+="infiniband/%k"
KERNEL=="ucm*", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="uverbs*", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="uat", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="ucma", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="rdma_cm", SYMLINK+="infiniband/%k", MODE="0666"

видетьhttps://www.centos.org/modules/newbb/viewtopic.php?topic_id=38586&forum=55

решение2

Лучше просто обновить пакет исправленной версией rdma-3.3-4. Подробнее здесь: http://rhn.redhat.com/errata/RHBA-2012-1423.html

решение3

вот более полная информация для тех, кто хочет решить эту проблему, возникшую в RH 6.3 Linux 2.6.32-279.9.1.el6.x86_64 #1 SMP Пятница 31 августа 09:04:24 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

**#ibstat**
CA 'mlx4_0'
        CA type: MT4099
        Number of ports: 2
        Firmware version: 2.10.700
        Hardware version: 0
        Node GUID: 0x0002c90300129780
        System image GUID: 0x0002c901013029781
        Port 1:
                State: Active
                Physical state: LinkUp
                Rate: 56
                Base lid: 1
                LMC: 0
                SM lid: 1
                Capability mask: 0x0251486a
                Port GUID: 0x0002c901013029781
                Link layer: InfiniBand

1.Создайте отсутствующий файл как root:

**vi /etc/udev/rules.d/90-rdma.rules**

------------ cut here ------------
KERNEL=="umad*", SYMLINK+="infiniband/%k"
KERNEL=="issm*", SYMLINK+="infiniband/%k"
KERNEL=="ucm*", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="uverbs*", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="uat", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="ucma", SYMLINK+="infiniband/%k", MODE="0666"
KERNEL=="rdma_cm", SYMLINK+="infiniband/%k", MODE="0666"
------------ cut here ------------

на узле управления (т.е. головном узле, сервисном узле и т.д.)

2.Скопируйте этот файл через ssh или любым другим предпочтительным способом на любой вычислительный узел в кластере.

**#ssh compute000 cp /home/90-rdma.rules /etc/udev/rules.d/90-rdma.rules**

**#ssh compute001 cp /home/90-rdma.rules /etc/udev/rules.d/90-rdma.rules**

**#ssh compute002 cp /home/90-rdma.rules /etc/udev/rules.d/90-rdma.rules**

**#ssh compute003 cp /home/90-rdma.rules /etc/udev/rules.d/90-rdma.rules**

**#ssh compute004 cp /home/90-rdma.rules /etc/udev/rules.d/90-rdma.rules**

и т. д.

3.Убедитесь, что файл создан в папке каждого вычислительного узла в/etc/udev/rules.d

**#ssh compute000 ls /etc/udev/rules.d | grep rdm 
*#90-rdma.rules ***

4.Перезапустите все вычислительные узлы и узлы управления.

ПРИМЕЧАНИЕ: а. После изменения пользователь все равно получит этот результат при запуске команды

ibv_devices

[root@master ~]# ibv_devices
    device                 node GUID
    ------              ----------------
    mlx4_0              0002c901013029781

но не волнуйтесь, просто запустите предпочитаемое вами приложение MPI, и все будет в порядке.

b. Проблема заключается в том, что независимо от использования любого поставщика HCA, проблема напрямую связана с ОС.

c. Похоже, что это вызвано изменением, внесенным в upstream в пакет rdma (больше нет правил udev), устройства infiniband создаются ядром с неправильными разрешениями. Эта проблема была сообщена пользователями CentOS 6.3 и Scientific Linux 6.3

Надежда поможет другим

решение4

Думаю, вы попали в такую ​​же ситуацию, как и я.

Я запустил rping и ib_write_bw, и получил такой вывод:

Не удалось выделить MR

это как сказал Дотан

Я подозреваю, что вы работаете как пользователь без прав root, и существует ограничение на количество страниц памяти, которые могут быть заблокированы (т.е. закреплены). Увеличение этого размера должно решить проблему.

Спасибо, Дотан.

решение простое, как сказал Дотанhttps://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

Отредактируйте файл /etc/security/limits.conf и добавьте следующие строки:

  • soft memlock неограниченный
  • жесткий memlock неограниченный

Связанный контент