允许非 root 用户使用 Infiniband

允许非 root 用户使用 Infiniband

我在 RHEL 6.3 上运行了 Infiniband

[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 Fri Aug 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**

ETC

3.验证该文件是否在每个计算节点的文件夹中创建/etc/udev/rules.d

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

4.重新启动所有计算节点和管理节点。

笔记: a. 更改后,用户运行命令时仍会得到此结果

ibv_devices

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

但不要担心,只需运行您喜欢的 mpi 应用程序就可以了。

b. 无论使用哪种 HCA 供应商,该问题都直接与操作系统相关。c

. 这似乎是由对 rdma 包上游所做的更改(不再有 udev 规则)引起的,内核以错误的权限创建了 infiniband 设备。CentOS 6.3 和 Scientific Linux 6.3 的用户已报告此问题

希望能够帮助别人

答案4

我想你也会遇到和我类似的情况。

我运行了 rping 和 ib_write_bw,输出如下

无法分配 MR

正如 Dotan 所说

我怀疑您是以非 root 用户身份工作的,并且可锁定(即固定)的内存页数量存在限制。增加此大小应该可以解决问题。

谢谢 Dotan

解决方案很简单,正如 Dotan 所说https://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

编辑文件 /etc/security/limits.conf 并添加以下行:

  • 软 memlock 无限
  • 硬 memlock 无限

相关内容