Guide d'administration d'Oracle® VM Server for SPARC 3.3

Quitter la vue de l'impression

Mis à jour : Octobre 2015
 
 

Rubriques SR-IOV avancées : SR-IOV InfiniBand

Cette section indique comment identifier les fonctions physiques et virtuelles InfiniBand et mettre en corrélation les vues Oracle Solaris et Logical Domains Manager des fonctions physiques et virtuelles InfiniBand.

Liste des fonctions virtuelles SR-IOV InfiniBand

L'exemple suivant illustre différentes manières d'afficher les informations relatives à la fonction physique /SYS/MB/RISER1/PCIE4/IOVIB.PF0. La présence de la chaîne IOVIB dans le nom de fonction physique indique qu'il s'agit d'un périphérique SR-IOV InfiniBand.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS
----                                      ----   ---      ------   ------
pci_0                                     BUS    pci_0    primary  IOV
niu_0                                     NIU    niu_0    primary
/SYS/MB/RISER0/PCIE0                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER1/PCIE1                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER2/PCIE2                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER0/PCIE3                      PCIE   pci_0    primary  OCC
/SYS/MB/RISER1/PCIE4                      PCIE   pci_0    primary  OCC
/SYS/MB/RISER2/PCIE5                      PCIE   pci_0    primary  EMP
/SYS/MB/SASHBA0                           PCIE   pci_0    primary  OCC
/SYS/MB/SASHBA1                           PCIE   pci_0    primary  OCC
/SYS/MB/NET0                              PCIE   pci_0    primary  OCC
/SYS/MB/NET2                              PCIE   pci_0    primary  OCC
/SYS/MB/RISER0/PCIE3/IOVIB.PF0            PF     pci_0    primary
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
/SYS/MB/NET0/IOVNET.PF0                   PF     pci_0    primary
/SYS/MB/NET0/IOVNET.PF1                   PF     pci_0    primary
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_0    primary
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_0    primary
/SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF0        VF     pci_0    primary
/SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF1        VF     pci_0    primary
/SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF2        VF     pci_0    iodom1
/SYS/MB/RISER0/PCIE3/IOVIB.PF0.VF3        VF     pci_0    iodom1
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0        VF     pci_0    primary
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1        VF     pci_0    primary
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2        VF     pci_0    iodom1
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3        VF     pci_0    iodom1

La commande ldm list-io -l fournit des informations plus détaillées sur le périphérique de fonction physique spécifié, /SYS/MB/RISER1/PCIE4/IOVIB.PF0. La valeur maxvfs indique que le nombre maximal de fonctions virtuelles pris en charge par le périphérique physique est 64. Pour chaque fonction virtuelle associée à la fonction physique, la sortie affiche ce qui suit :

  • Nom de fonction

  • Type de fonction

  • Nom de bus

  • Nom de domaine

  • Etat facultatif de la fonction

  • Chemin de périphérique

Cette sortie, ldm list-io -l, montre que VF0 et VF1 sont assignés au domaine primary et que VF2 et VF3 sont assignés au domaine d'E/S iodom1.

primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0
NAME                                      TYPE   BUS      DOMAIN   STATUS
----                                      ----   ---      ------   ------
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0]
    maxvfs = 64
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0        VF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1        VF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2        VF     pci_0    iodom1
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3        VF     pci_0    iodom1
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]

Identification des fonctions SR-IOV InfiniBand

Cette section indique comment identifier les périphériques SR-IOV InfiniBand.

Servez-vous de la commande ldm list-io -l pour afficher le nom du chemin d'accès de périphérique Oracle Solaris associé à chaque fonction physique et virtuelle.

primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0
NAME                                      TYPE   BUS      DOMAIN   STATUS
----                                      ----   ---      ------   ------
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0]
    maxvfs = 64
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0        VF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1        VF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF2        VF     pci_0    iodom1
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,3]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF3        VF     pci_0    iodom1
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,4]

Exécutez la commande dladm show-phys -L pour faire correspondre chaque instance IPoIB (IP over InfiniBand) à sa carte physique. Par exemple, la commande suivante met en évidence les instances IPoIB qui utilisent la carte se trouvant dans l'emplacement PCIE4, qui est la même carte que celle de l'exemple ldm list-io -l ci-dessus.

primary# dladm show-phys -L | grep PCIE4
net5              ibp0         PCIE4/PORT1
net6              ibp1         PCIE4/PORT2
net19             ibp8         PCIE4/PORT1
net9              ibp9         PCIE4/PORT2
net18             ibp4         PCIE4/PORT1
net11             ibp5         PCIE4/PORT2

Chaque adaptateur de canal hôte (HCA, Host Channel Adapter) InfiniBand possède un ID unique, appelé GUID. Chaque port possède également un GUID (en général, un HCA est doté de deux ports). Un GUID de HCA InfiniBand identifie l'adaptateur de façon unique. Les GUID des ports identifient chaque port de HCA de façon unique et jouent un rôle semblable à celui de l'adresse MAC d'un périphérique réseau. Ces GUID à 16 chiffres sont utilisés par les outils de gestion et de diagnostic InfiniBand.

Exécutez la commande dladm show-ib pour obtenir les informations de GUID des périphériques SR-IOV InfiniBand. Les fonctions physiques et virtuelles d'un même périphérique ont des valeurs de GUID de HCA proches. Le 11e chiffre hexadécimal du GUID de HCA indique la relation entre une fonction physique et ses fonctions virtuelles. Notez que les zéros de tête sont supprimés dans les colonnes HCAGUID et PORTGUID.

Par exemple, la fonction physique PF0 est accompagnée de deux fonctions virtuelles, VF0 et VF1, qui sont affectées au domaine primary. Le 11e chiffre hexadécimal de chaque fonction virtuelle est incrémenté de un par rapport à celui de la fonction physique correspondante. Ainsi, si le GUID de PF0 est 8, les GUID de VF0 et de VF1 sont respectivement 9 et A.

La sortie de la commande dladm show-ib ci-après indique que les liens net5 et net6 appartiennent à la fonction physique PF0. Les liens net19 et net9 appartiennent à VF0 du même périphérique tandis que net18 et net11 appartiennent à VF1.

primary# dladm show-ib
LINK         HCAGUID         PORTGUID        PORT STATE  PKEYS
net6         21280001A17F56  21280001A17F58  2    up     FFFF
net5         21280001A17F56  21280001A17F57  1    up     FFFF
net19        21290001A17F56  14050000000001  1    up     FFFF
net9         21290001A17F56  14050000000008  2    up     FFFF
net18        212A0001A17F56  14050000000002  1    up     FFFF
net11        212A0001A17F56  14050000000009  2    up     FFFF

Le périphérique de la sortie dladm show-phys suivante indique la relation entre les liens et les périphériques de port InfiniBand sous-jacents (ibpX).

primary# dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
...
net6              Infiniband           up         32000  unknown   ibp1
net5              Infiniband           up         32000  unknown   ibp0
net19             Infiniband           up         32000  unknown   ibp8
net9              Infiniband           up         32000  unknown   ibp9
net18             Infiniband           up         32000  unknown   ibp4
net11             Infiniband           up         32000  unknown   ibp5

Exécutez la commande ls -l pour afficher les chemins d'accès de périphérique des ports InfiniBand (IB port). Un périphérique IB port est subordonné à un chemin d'accès de périphérique visible dans la sortie de la commande ldm list-io -l. Une fonction physique possède une adresse d'unité en une partie, par exemple pciex15b3,673c@0, tandis que les fonctions virtuelles ont des adresses d'unité en deux parties, par exemple pciex15b3,1002@0,2. La valeur de la seconde partie de l'adresse d'unité est égale au numéro de la fonction virtuelle additionné de un. (Dans ce cas, le deuxième composant est 2, ce qui signifie que ce périphérique correspond à la fonction virtuelle 1.) La sortie suivante indique que /dev/ibp0 est une fonction physique et /dev/ibp5 une fonction virtuelle.

primary# ls -l /dev/ibp0
lrwxrwxrwx   1 root     root          83 Apr 18 12:02 /dev/ibp0 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0/hermon@0/ibport@1,0,ipib:ibp0
primary# ls -l /dev/ibp5
lrwxrwxrwx   1 root     root          85 Apr 22 23:29 /dev/ibp5 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,2/hermon@3/ibport@2,0,ipib:ibp5

Vous pouvez utiliser la commande ibv_devices pour afficher le nom du périphérique OpenFabrics ainsi que le GUID du noeud (HCA). Lorsque des fonctions virtuelles sont présentes, la colonne Type indique si la fonction est physique ou virtuelle.

primary# ibv_devices
device                 node GUID            type
------              ----------------        ----
mlx4_4              0002c90300a38910         PF
mlx4_5              0021280001a17f56         PF
mlx4_0              0002cb0300a38910         VF
mlx4_1              0002ca0300a38910         VF
mlx4_2              00212a0001a17f56         VF                        
mlx4_3              0021290001a17f56         VF