permitir infiniband para usuários não root

permitir infiniband para usuários não root

Eu tenho o Infiniband rodando no 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

mas está funcionando apenas como root.

ao tentar de um não superusuário, não obtive nada:

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

Então, como permitir que usuários regulares usem o infiniband?

Responder1

Ok, este é um bug na versão RHEL 6.3

A regra do Udev está faltando:

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

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

Responder2

É melhor simplesmente atualizar o pacote com a versão reparada, rdma-3.3-4. Mais detalhes aqui: http://rhn.redhat.com/errata/RHBA-2012-1423.html

Responder3

aqui estão informações mais completas para pessoas que desejam resolver este problema enfrentado no RH 6.3 Linux 2.6.32-279.9.1.el6.x86_64 #1 SMP Sex 31 de agosto 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.Crie o arquivo ausente como 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 ------------

no nó de gerenciamento (ou seja, nó principal, nó de serviço, etc.)

2.Copie este arquivo via ssh ou qualquer método preferido para qualquer nó de computação no 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**

etc.

3.Verifique se o arquivo foi criado na pasta de cada nó de computação em/etc/udev/rules.d

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

4.Reinicie todos os nós de cálculo e nós de gerenciamento.

OBSERVAÇÃO: a. Após a alteração o usuário ainda obterá este resultado ao executar o comando

ibv_devices

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

mas não se preocupe, basta executar seu aplicativo mpi preferido e tudo ficará bem.

b. O problema é que, independentemente do uso de qualquer fornecedor de HCA, ele esteja diretamente conectado ao sistema operacional.

c. Isso parece ser causado por uma alteração feita no upstream do pacote rdma (não há mais regras do udev), os dispositivos infiniband são criados pelo kernel com as permissões erradas. Este problema foi relatado por usuários do CentOS 6.3 e Scientific Linux 6.3

Espero que ajude outras pessoas

Responder4

Eu acho que você entra em uma situação semelhante à minha.

Executei o rping e o ib_write_bw, com a saída como

Não foi possível alocar MR

isso é como Dotan disse que

Suspeito que você esteja trabalhando como usuário não root e que haja um limite para a quantidade de páginas de memória que podem ser bloqueadas (ou seja, fixadas). Aumentar esse tamanho deve resolver o problema.

Obrigado Dotan

a solução é simples, como aqui disse Dotanhttps://www.rdmamojo.com/2014/10/11/working-rdma-redhatcentos-7/

Edite o arquivo /etc/security/limits.conf e adicione as seguintes linhas:

  • memlock suave ilimitado
  • memlock rígido ilimitado

informação relacionada