非ルートユーザーにインフィニバンドを許可する

非ルートユーザーにインフィニバンドを許可する

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 ルールが見つかりません:

ルール

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 でパッケージを更新する方がよいでしょう。詳細はこちらをご覧ください: RHBA 2012 リリース ノート

答え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. すべてのコンピューティングノードと管理ノードを再起動します。

注記: a. 変更後も、ユーザーはコマンドを実行するとこの結果を受け取ります。

ibv_devices

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

ただし、心配する必要はありません。好みの mpi アプリケーションを実行するだけで問題ありません。

b. この問題は、どの HCA ベンダーを使用しているかに関係なく、OS に直接関連しています。c

. これは、アップストリームで rdma パッケージに加えられた変更 (udev ルールがなくなった) が原因であると思われます。infiniband デバイスは、カーネルによって間違った権限で作成されます。この問題は、CentOS 6.3 および Scientific Linux 6.3 のユーザーによって報告されています。

希望は他人を助ける

答え4

あなたも私と同じような状況に陥ると思います。

rpingとib_write_bwを実行したところ、次のような出力が返されました。

MRを割り当てられませんでした

これはドタンが言った通りだ

非ルート ユーザーとして作業しており、ロック (つまり固定) できるメモリ ページの量に制限があると思われます。このサイズを増やすと、問題は解決するはずです。

ありがとう、ドタン

解決策は簡単です。ここでドタンが言ったようにhttps://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

/etc/security/limits.conf ファイルを編集し、次の行を追加します。

  • ソフト メモリロック 無制限
  • ハード メモリロック 無制限

関連情報