루트가 아닌 사용자에게 인피니밴드 허용

루트가 아닌 사용자에게 인피니밴드 허용

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

하지만 루트로만 작동합니다.

슈퍼유저가 아닌 사람이 시도했을 때 아무것도 얻지 못했습니다.

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

그렇다면 일반 사용자가 인피니밴드를 사용하도록 허용하는 방법은 무엇입니까?

답변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. 누락된 파일을 루트로 생성합니다.

**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 애플리케이션을 실행하면 괜찮을 것입니다.

비. 문제는 HCA 공급업체의 사용 여부와 상관없이 OS에 직접 연결된다는 것입니다.

씨. 이는 rdma 패키지의 업스트림 변경(더 이상 udev 규칙 없음)으로 인해 발생하는 것으로 보이며, 인피니밴드 장치는 잘못된 권한으로 커널에 의해 생성됩니다. 이 문제는 CentOS 6.3 및 Scientific Linux 6.3 사용자에 의해 보고되었습니다.

희망은 다른 사람들에게 도움이 될 것입니다

답변4

저와 비슷한 상황에 처하신 것 같아요.

rping과 ib_write_bw를 실행했는데 다음과 같은 결과가 나왔습니다.

MR을 할당할 수 없습니다.

도탄이 말한 대로야

귀하는 루트가 아닌 사용자로 작업하고 있으며 잠글 수 있는(즉, 고정할 수 있는) 메모리 페이지의 양에 제한이 있는 것 같습니다. 이 크기를 늘리면 문제가 해결됩니다.

고마워요 도탄

Dotan이 말했듯이 해결책은 간단합니다.https://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

/etc/security/limits.conf 파일을 편집하고 다음 줄을 추가합니다.

  • 소프트 memlock 무제한
  • 하드 memlock 무제한

관련 정보