Infiniband für Nicht-Root-Benutzer zulassen

Infiniband für Nicht-Root-Benutzer zulassen

Ich habe Infiniband auf RHEL 6.3 zum Laufen gebracht

[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

aber es funktioniert nur als Root.

beim Versuch als Nicht-Superuser habe ich nichts bekommen:

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

Wie kann man also normalen Benutzern die Nutzung von Infiniband ermöglichen?

Antwort1

Ok, das ist ein Fehler in der RHEL 6.3-Version

Udev-Regel fehlt:

/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"

sehenhttps://www.centos.org/modules/newbb/viewtopic.php?topic_id=38586&forum=55

Antwort2

Es ist besser, das Paket einfach mit der reparierten Version rdma-3.3-4 zu aktualisieren. Weitere Details hier: http://rhn.redhat.com/errata/RHBA-2012-1423.html

Antwort3

hier sind ausführlichere Informationen für Personen, die dieses Problem lösen möchten, das unter 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 aufgetreten ist

**#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.Erstellen Sie die fehlende Datei als 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 ------------

auf dem Verwaltungsknoten (d. h. Hauptknoten, Serviceknoten usw.)

2. Kopieren Sie diese Datei per SSH oder einer beliebigen bevorzugten Methode auf einen beliebigen Compute-Knoten im Cluster.

**#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**

usw

3.Überprüfen Sie, ob die Datei im Ordner jedes Compute-Knotens in/etc/udev/rules.d

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

4. Starten Sie alle Compute-Knoten und Verwaltungsknoten neu.

NOTIZ: a. Nach der Änderung erhält der Benutzer beim Ausführen des Befehls immer noch dieses Ergebnis

ibv_devices

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

aber keine Sorge, führen Sie einfach Ihre bevorzugte MPI-Anwendung aus, dann ist alles in Ordnung.

b. Das Problem besteht unabhängig von der Verwendung eines HCA-Anbieters darin, dass eine direkte Verbindung zum Betriebssystem besteht.

c. Dies scheint durch eine Änderung im Upstream des RDMA-Pakets verursacht zu werden (keine Udev-Regeln mehr). Die Infiniband-Geräte werden vom Kernel mit den falschen Berechtigungen erstellt. Dieses Problem wurde von Benutzern von CentOS 6.3 und Scientific Linux 6.3 gemeldet.

Hoffe, dass es anderen hilft

Antwort4

Ich schätze, Sie geraten in eine ähnliche Situation wie ich.

Ich habe rping und ib_write_bw ausgeführt und die Ausgabe war wie folgt

MR konnte nicht zugeordnet werden

das ist, wie Dotan sagte, dass

Ich vermute, dass Sie als Nicht-Root-Benutzer arbeiten und dass es eine Begrenzung für die Anzahl der Speicherseiten gibt, die gesperrt (d. h. fixiert) werden können. Eine Erhöhung dieser Größe sollte das Problem lösen.

Danke, Dotan

die Lösung ist einfach, wie Dotan hier sagtehttps://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

Bearbeiten Sie die Datei /etc/security/limits.conf und fügen Sie die folgenden Zeilen hinzu:

  • Soft Memlock unbegrenzt
  • harte Speichersperre unbegrenzt

verwandte Informationen