9.4. Configurer le gestionnaire des sous-réseaux

9.4.1. Déterminer la nécessité

La plupart des commutateurs InfiniBand disposent d'un gestionnaire de sous-réseaux intégré. Toutefois, au cas où un gestionnaire de sous-réseau plus récemment mis à jour que le commutateur firmware soit requis, ou si un contrôle plus complet que le gestionnaire de commutateurs est nécessaire, Red Hat Enterprise Linux 7 inclut le gestionnaire de sous-réseaux opensm. Tous les réseaux InfiniBand doivent avoir un gestionnaire de sous-réseaux en cours d'exécution pour que le réseau fonctionne. Cela est vrai même si un simple réseau composé de deux machines sans interrupteur et des cartes sont branchées dos à dos, et un gestionnaire de sous-réseau est requis pour que le lien apparaisse sur les cartes. Il est possible d'en avoir plus d'un, auquel cas, l'un d'entre eux agira comme master, et tout autre sous-réseau de gestionnaire agira comme esclave, prêt à prendre la relève si le gestionnaire de sous-réseaux venait à échouer.

9.4.2. Configuration d'un fichier de configuration master opensm

Le programme opensm conserve son fichier de configuration maître dans /etc/rdma/opensm.conf. Les utilisateurs peuvent modifier ce fichier à tout moment et les modifications seront conservées lors de la mise à niveau. Vous trouverez une documentation complète sur les options dans le fichier lui-même. Toutefois, pour les deux modifications les plus courantes, c-a-d définir le GUID auquel se lier et la PRIORITÉ à encourir, il est fortement recommandé que le fichier opensm.conf ne soit pas édité, mais que le fichier /etc/sysconfig/opensm le soit à la place. S'il n'y a aucune modification dans le fichier de base /etc/rdma/opensm.conf, il sera mis à jour à chaque fois que le paquet opensm sera mis à jour. Comme de nouvelles options sont ajoutées régulièrement à ce fichier, cela facilite l'actualisation de la configuration actuelle. Si le fichier opensm.conf a été changé, alors, au moment de la mise à niveau, il faudra sans doute faire fusionner les nouvelles options dans le fichier édité.

9.4.3. Configurer les options opensm startup

Les options qui se trouvent dans le fichier /etc/sysconfig/opensm contrôlent comment le gestionnaire de sous-réseaux démarre, ainsi que le nombre d'exemplaires du gestionnaire de sous-réseaux démarrent. Par exemple, une carte de double port InfiniBand, avec chaque port branché sur des réseaux physiquement séparés, aura besoin d'une copie du gestionnaire de sous-réseaux en cours d'exécution sur chaque port. Le gestionnaire de sous-réseaux opensm va gérer uniquement un sous-réseau par instance d'application, et doit être exécuté à chaque fois pour chaque sous-réseau qui doit être géré. De plus, s'il y a plus d'un serveur opensm, définissez les priorités sur chaque serveur pour contrôler ceux qui doivent être des esclaves et ceux qui doivent être maîtres.
Le fichier /etc/sysconfig/opensm est utilisé pour fournir un moyen simple de définir la priorité du gestionnaire de sous-réseaux et pour contrôler à quel GUID le gestionnaire de sous-réseaux se lie. Il y a une explication approfondie des options dans le fichier /etc/sysconfig/opensm lui-même. Les utilisateurs ont uniquement besoin de lire et de suivre les instructions contenues dans le fichier pour permettre le basculement et l'opération Multi Fabric d'opensm.

9.4.4. Création d'une définition P_Key

Par défaut, opensm.conf recherche le fichier /etc/rdma/partitions.conf pour obtenir une liste de partitions à créer sur la structure. Toutes les structures doivent contenir le sous-réseau 0x7fff, et tous les commutateurs et hôtes doivent appartenir à cette structure. Toute autre partition peut être créée en plus, et tous les hôtes et interrupteurs n'ont pas besoin d'être membres de ces partitions supplémentaires. Cela permet à un administrateur de créer des sous-réseaux qui ressemblent aux structures VLAN Ethernet ou InfiniBand. Si une partition est définie par vitesse donnée, par exemple 40 Gbit/s, et qu'il y a un hôte sur le réseau qui est incapable d'aller à 40 Gbit/s, alors cet hôte sera incapable de joindre la partition, même s'il est autorisé à le faire car il ne pourra pas répondre aux exigences de vitesse. Il est donc recommandé que la vitesse d'une partition soit définie à la vitesse la plus lente correspondant à tout hôte ayant la permission de rejoindre la partition. S'il vous faut une partition plus rapide de certains sous-ensembles d'hôtes, alors, créez une partition différente avec la vitesse plus élevée pour cette partition.
Le fichier de partition suivant équivaudrait à une partition par défaut de 0x7fff à une vitesse réduite de 10 Gops, et une partition 0x0002 avec une vitesse de 40 Gops :
~]$ more /etc/rdma/partitions.conf
# For reference:
# IPv4 IANA reserved multicast addresses:
#   http://www.iana.org/assignments/multicast-addresses/multicast-addresses.txt
# IPv6 IANA reserved multicast addresses:
#   http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xml
#
# mtu =
#   1 = 256
#   2 = 512
#   3 = 1024
#   4 = 2048
#   5 = 4096
#
# rate =
#   2  =   2.5 GBit/s
#   3  =  10   GBit/s
#   4  =  30   GBit/s
#   5  =   5   GBit/s
#   6  =  20   GBit/s
#   7  =  40   GBit/s
#   8  =  60   GBit/s
#   9  =  80   GBit/s
#   10 = 120   GBit/s

Default=0x7fff, rate=3, mtu=4, scope=2, defmember=full:
        ALL, ALL_SWITCHES=full;
Default=0x7fff, ipoib, rate=3, mtu=4, scope=2:
        mgid=ff12:401b::ffff:ffff       # IPv4 Broadcast address
        mgid=ff12:401b::1               # IPv4 All Hosts group
        mgid=ff12:401b::2               # IPv4 All Routers group
        mgid=ff12:401b::16              # IPv4 IGMP group
        mgid=ff12:401b::fb              # IPv4 mDNS group
        mgid=ff12:401b::fc              # IPv4 Multicast Link Local Name Resolution group
        mgid=ff12:401b::101             # IPv4 NTP group
        mgid=ff12:401b::202             # IPv4 Sun RPC
        mgid=ff12:601b::1               # IPv6 All Hosts group
        mgid=ff12:601b::2               # IPv6 All Routers group
        mgid=ff12:601b::16              # IPv6 MLDv2-capable Routers group
        mgid=ff12:601b::fb              # IPv6 mDNS group
        mgid=ff12:601b::101             # IPv6 NTP group
        mgid=ff12:601b::202             # IPv6 Sun RPC group
        mgid=ff12:601b::1:3             # IPv6 Multicast Link Local Name Resolution group
        ALL=full, ALL_SWITCHES=full;

ib0_2=0x0002, rate=7, mtu=4, scope=2, defmember=full:
        ALL, ALL_SWITCHES=full;
ib0_2=0x0002, ipoib, rate=7, mtu=4, scope=2:
        mgid=ff12:401b::ffff:ffff       # IPv4 Broadcast address
        mgid=ff12:401b::1               # IPv4 All Hosts group
        mgid=ff12:401b::2               # IPv4 All Routers group
        mgid=ff12:401b::16              # IPv4 IGMP group
        mgid=ff12:401b::fb              # IPv4 mDNS group
        mgid=ff12:401b::fc              # IPv4 Multicast Link Local Name Resolution group
        mgid=ff12:401b::101             # IPv4 NTP group
        mgid=ff12:401b::202             # IPv4 Sun RPC
        mgid=ff12:601b::1               # IPv6 All Hosts group
        mgid=ff12:601b::2               # IPv6 All Routers group
        mgid=ff12:601b::16              # IPv6 MLDv2-capable Routers group
        mgid=ff12:601b::fb              # IPv6 mDNS group
        mgid=ff12:601b::101             # IPv6 NTP group
        mgid=ff12:601b::202             # IPv6 Sun RPC group
        mgid=ff12:601b::1:3             # IPv6 Multicast Link Local Name Resolution group
        ALL=full, ALL_SWITCHES=full;

9.4.5. Activation d'opensm

Les utilisateurs ont besoin d'activer le service opensm car il n'est pas actif par défaut une fois installé. Exécuter la commande suivante en tant qu'utilisateur root :
~]# systemctl enable opensm