Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
9.5. Testing d'anciennes opérations RDMA InfiniBand
Note
Cette section s'applique uniquement aux périphériques InfiniBand. Depuis que les périphériques iWARP et RCI/IBoE sont basés
IP
, les utilisateurs doivent procéder à la section sur les tests d'opérations, une fois qu'IPoIB aura été configuré et les périphériques auront des adresses IP
.
Une fois que le service
rdma
est activé, que le service opensm (si nécessaire) est activé, et que la bibliothèque de l'espace utilisateur appropriée au matériel spécifique a été installée, les opération de rdma
espace utilisateur devraient être rendues possibles. Les programmes de test simples, grâce au paquet libibverbs-utils, sont utiles pour vérifier que les opérations RDMA fonctionnent correctement. Le programme ibv_devices indiquera quels périphériques sont présents dans le système, et la commande ibv_devinfo
donnera des informations détaillées sur chaque périphérique. Exemple :
~]$ibv_devices
device node GUID ------ ---------------- mlx4_0 0002c903003178f0 mlx4_1 f4521403007bcba0 ~]$ibv_devinfo -d mlx4_1
hca_id: mlx4_1 transport: InfiniBand (0) fw_ver: 2.30.8000 node_guid: f452:1403:007b:cba0 sys_image_guid: f452:1403:007b:cba3 vendor_id: 0x02c9 vendor_part_id: 4099 hw_ver: 0x0 board_id: MT_1090120019 phys_port_cnt: 2 port: 1 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 2048 (4) sm_lid: 2 port_lid: 2 port_lmc: 0x01 link_layer: InfiniBand port: 2 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 4096 (5) sm_lid: 0 port_lid: 0 port_lmc: 0x00 link_layer: Ethernet~]$ ibstat mlx4_1
CA 'mlx4_1' CA type: MT4099 Number of ports: 2 Firmware version: 2.30.8000 Hardware version: 0 Node GUID: 0xf4521403007bcba0 System image GUID: 0xf4521403007bcba3 Port 1: State: Active Physical state: LinkUp Rate: 56 Base lid: 2 LMC: 1 SM lid: 2 Capability mask: 0x0251486a Port GUID: 0xf4521403007bcba1 Link layer: InfiniBand Port 2: State: Active Physical state: LinkUp Rate: 40 Base lid: 0 LMC: 0 SM lid: 0 Capability mask: 0x04010000 Port GUID: 0xf65214fffe7bcba2 Link layer: Ethernet
Les sorties de commande de
ibv_devinfo
et de ibstat
rendent des informations légèrement différentes (ainsi, le port MTU est présent dans ibv_devinfo
mais pas dans la sortie de ibstat
, et le port GUID est présent dans la sortie de ibstat
, mais pas dans celle de ibv_devinfo
) et certaines choses sont nommées différemment (par exemple, le local identifier (LID) de base dans la sortie ibstat
correspond au port_lid
de la sortie de ibv_devinfo
)
Les programmes ping simples, comme ibping du paquet infiniband-diags, peuvent être utilisés pour tester la connectivité RDMA. Le programme ibping utilise un modèle client/serveur. Vous devez d'abord démarrer un serveur ibping sur une seule machine, puis exécuter ibping en tant que client sur une autre machine et lui demander de se connecter au serveur ibping. Comme nous sommes désireux de tester la fonctionnalité RDMA de base, nous avons besoin d'utiliser une méthode de résolution d'adresse spécifique RDMA, plutôt que d'adresses
IP
pour spécifier le serveur.
Sur le serveur, les utilisateurs peuvent utiliser les commandes
ibv_devinfo
et ibstat
pour afficher le port_lid
(lid de Base) et le Port GUID du port qu'ils veulent tester (en supposant que le port 1 de l'interface ci-dessus, le port_lid
/ Base LID
corresponde à 2
et le Port GUID à 0xf4521403007bcba1
)). Puis, lancer ibping avec les options nécessaires pour lier spécifiquement la carte et le port à tester; et aussi, en spécifiant ibping, on doit exécuter en mode serveur. Vous pourrez apercevoir les options disponibles à ibping en ajoutant les options -?
ou --aider
, mais dans ce cas, il faudra soit l'option -S
ou --Server
et pour relier la carte au port, il faudra soit -C
ou --Ca
et -P
ou --Port
. Remarque : dans cette instance, le port ne désigne pas un numéro de port de réseau, mais désigne le numéro de port physique situé sur la carte lorsque vous utilisez une carte multi-ports. Pour tester la connectivité de la structure RDMA en utilisant, par exemple, le deuxième port d'une carte multiport, vous devrez instruireibping de se lier au port 2
sur la carte. Lorsque vous utilisez une carte à port unique, ou si vous tester le premier port sur une carte, cette option n'est pas nécessaire. Exemple :
~]$ ibping -S -C mlx4_1 -P 1
Passez alors à la machine client et exécuter ibping. Prenez note de chaque port GUID du port auquel le programme ibping est lié, ou l' identificateur local (LID de l'anglais Local Indentifier) du port auquel le programme ibping est lié. Aussi, notez quelle carte et quel port de la machine client sont physiquement connectés au même réseau que la carte et le port qui était liés au serveur. Par exemple, si le second port de la première carte était lié au serveur, et que le port était connecté à une structure RDMA secondaire, alors, spécifier sur le client quelle carte ou port sont nécessaires pour être connecté également à cette structure secondaire. Une fois que ces choses sont connues, exécutez le programme ibping en tant que client et connectez-vous au serveur en utilisant soit le LID ou le GUID du port trouvé sur le serveur comme étant l'adresse à laquelle se connecter. Exemple :
~]$ ibping -c 10000 -f -C mlx4_0 -P 1 -L 2
--- rdma-host.example.com.(none) (Lid 2) ibping statistics ---
10000 packets transmitted, 10000 received, 0% packet loss, time 816 ms
rtt min/avg/max = 0.032/0.081/0.446 ms
ou
~]$ ibping -c 10000 -f -C mlx4_0 -P 1 -G 0xf4521403007bcba1 \
--- rdma-host.example.com.(none) (Lid 2) ibping statistics ---
10000 packets transmitted, 10000 received, 0% packet loss, time 769 ms
rtt min/avg/max = 0.027/0.076/0.278 ms
Cette sortie vérifie que les communications RDMA end-to-end fonctionnent pour les applications d'espace utilisateur.
L'erreur suivante peut être vue :
~]$ ibv_devinfo
libibverbs: Warning: no userspace device-specific driver found for /sys/class/infiniband_verbs/uverbs0
No IB devices found
Cette erreur indique que la bibliothèque de l'espace utilisateur nécessaire n'est pas installée. L'administrateur doit installer une des bibliothèques répertoriées de l'espace utilisateur (selon leur matériel) dans la section Section 9.2, « Paquets de logiciels relatifs à InfiniBand et à RDMA ». En de rares occasions, cela peut se produire si un utilisateur installe le mauvais type d'arch pour le pilote ou pour libibverbs. Par exemple, si libibverbs est d'arch x86_64
et que libmlx4 est installé, mais est de type i686
, alors cette erreur peut se produire.
Note
De nombreux exemples d'applications préfèrent utiliser des adresses ou des noms d'hôte au lieu de LID pour ouvrir une communication entre le serveur et le client. Pour ces applications, il faut définir les IPoIB avant de tenter de tester des communications RDMA end-to-end. L'application ibping est inhabituelle car elle accepte des LID simples comme forme d'adressage, et cela lui permet de constituer un test simple qui élimine les éventuels problèmes d'adressage d'IPoIB des scénarios de test et nous donne donc une vue plus isolée pour savoir si oui ou non, les communications RDMA simples fonctionnement.