Guía de administración para Oracle® VM Server for SPARC 3.2

Salir de la Vista de impresión

Actualización: Mayo de 2015
 
 

Temas avanzados sobre SR-IOV: SR-IOV InfiniBand

En esta sección, se describe cómo identificar las funciones físicas y virtuales InfiniBand, y cómo correlacionar la vista de Logical Domains Manager y Oracle Solaris de las funciones físicas y virtuales InfiniBand.

Visualización de funciones virtuales SR-IOV InfiniBand

En el ejemplo siguiente, se muestran diferentes maneras de mostrar información sobre la función física /SYS/MB/RISER1/PCIE4/IOVIB.PF0. El nombre de una función física que incluye la cadena IOVIB indica que se trata de un dispositivo 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

El comando ldm list-io -l proporciona información más detallada sobre el dispositivo de la función física especificada, /SYS/MB/RISER1/PCIE4/IOVIB.PF0. El valor maxvfs indica que el número máximo de funciones virtuales que admite el dispositivo físico es 64. Para cada función virtual asociada con la función física, la salida muestra lo siguiente:

  • Nombre de la función

  • Tipo de función

  • Nombre del bus

  • Nombre de dominio

  • Estado opcional de la función

  • Ruta del dispositivo

Esta salida de ldm list-io -l muestra que VF0 y VF1 están asignadas al dominio primary, y que VF2 y VF3 están asignadas al dominio de 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]

Identificación de las funciones SR-IOV InfiniBand

En esta sección, se describe cómo identificar dispositivos SR-IOV InfiniBand en sistemas Oracle Solaris 11 y Oracle Solaris 10.

Utilice el comando ldm list-io -l para mostrar el nombre de la ruta del dispositivo Oracle Solaris que está asociado con cada función física y cada función virtual.

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]

Oracle Solaris 11:

Utilice el comando dladm show-phys -l de Oracle Solaris 11 para establecer una coincidencia entre cada instancia de IP a través de InfiniBand (IPoIB) y su tarjeta física. Por ejemplo, el siguiente comando muestra las instancias de IPoIB que utilizan la tarjeta en la ranura PCIE4, que es la misma tarjeta que se muestra en el ejemplo anterior de ldm list-io -l.

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

Cada dispositivo adaptador de canal de host (HCA) InfiniBand tiene un ID único global (GUID). También hay GUID para cada puerto (normalmente, hay dos puertos para un HCA). Un GUID de un HCA InfiniBand identifica el adaptador de manera exclusiva. El GUID de puerto identifica de manera exclusiva cada puerto del HCA y desempeña un rol similar al de una dirección MAC de un dispositivo de red. Las herramientas de diagnóstico y herramientas de gestión InfiniBand utilizan estos GUID de 16 dígitos hexadecimales.

Utilice el comando dladm show-ib de Oracle Solaris 11 para obtener información sobre el GUID de los dispositivos SR-IOV InfiniBand. Las funciones físicas y virtuales del mismo dispositivo tienen valores relacionados de GUID de HCA. El dígito hexadecimal 11 del GUID del HCA muestra la relación entre una función física y sus funciones virtuales. Tenga en cuenta que en las columnas HCAGUID y PORTGUID se suprimen los ceros iniciales.

Por ejemplo, la función física PF0 tiene dos funciones virtuales, VF0 y VF1, que se asignan al dominio primary. El dígito hexadecimal 11 de cada función virtual se incrementa en un valor de uno respecto de la función física relacionada. Por lo tanto, si el GUID de PF0 es 8, los GUID de VF0 y VF1 serán 9 y A, respectivamente.

La siguiente salida del comando dladm show-ib muestra que los enlaces net5 y net6 pertenecen a la función física PF0. Los enlaces net19 y net9 pertenecen a VF0 del mismo dispositivo, mientras que net18 y net11 pertenecen a 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

El dispositivo en la siguiente salida de dladm show-física de Oracle Solaris 11 muestra la relación entre los enlaces y los dispositivos de puerto InfiniBand subyacentes (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

Utilice el comando ls -l para mostrar las rutas reales de los dispositivos de puerto InfiniBand (puerto IB). Un dispositivo de puerto IB es un elemento secundario de una ruta de dispositivo que se muestra en la salida de ldm list-io -l. Una función física tiene una dirección de unidad de una sola parte, como pciex15b3,673c@0, mientras que las funciones virtuales tienen una dirección de unidad de dos partes, pciex15b3,1002@0,2. La segunda parte de la dirección de la unidad tiene un valor de uno más alto que el número de la función virtual. (En este caso, el segundo componente es 2, por lo que este dispositivo corresponde a la función virtual 1). La siguiente salida muestra que /dev/ibp0 es una función física y /dev/ibp5 es una función virtual.

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

Puede utilizar el comando ibv_devices de OpenFabrics para ver el nombre del dispositivo de OpenFabrics y el GUID del nodo (HCA). Cuando hay funciones virtuales presentes, la columna Type (Tipo) indica si la función es física o virtual.

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

Oracle Solaris 10:

En un dominio de E/S invitado de Oracle Solaris 10, utilice el comando dladm show-dev para mostrar cada instancia de IPoIB, cuyo nombre tiene el formatoibdxx.

# dladm show-dev
vnet0          link: up        speed: 0     Mbps       duplex: unknown
ibd0           link: up        speed: 32000 Mbps       duplex: unknown
ibd1           link: up        speed: 32000 Mbps       duplex: unknown
ibd2           link: up        speed: 32000 Mbps       duplex: unknown
ibd3           link: up        speed: 32000 Mbps       duplex: unknown

Puede utilizar el comando ls -l en los nombres de ruta de HCA en el directorio /devices/ para extraer un HCA y su GUID de HCA.

# ls -l /devices/ib\:[0-9]*
crw-r--r--   1 root     sys       67,  0 Jun 12 16:27 /devices/ib:212B0001A17F56
crw-r--r--   1 root     sys       67,  0 Jun 12 16:27 /devices/ib:212C0001A17F56

Los GUID de la salida de ibv_devices (observe el dígito hexadecimal 11, "B" y "C" en este caso) indican que se trata de funciones virtuales asignadas al dominio de Oracle Solaris 10. Puede obtener más información sobre las instancias de IPoIB ejecutando el comando ls -l en los nombres de ruta IPoIB de /dev.

# ls -l /dev/ibd*
lrwxrwxrwx   1 root     other         29 May 23 16:26 /dev/ibd ->
../devices/pseudo/clone@0:ibd
lrwxrwxrwx   1 root     root          89 May 31 10:52 /dev/ibd0 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@1,ffff,ipib:ibd0
lrwxrwxrwx   1 root     root          89 May 31 10:52 /dev/ibd1 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,3/hermon@0/ibport@2,ffff,ipib:ibd1
lrwxrwxrwx   1 root     root          89 Jun 12 18:36 /dev/ibd2 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@1,ffff,ipib:ibd2
lrwxrwxrwx   1 root     root          89 Jun 12 18:36 /dev/ibd3 ->
../devices/pci@400/pci@1/pci@0/pci@0/pciex15b3,1002@0,4/hermon@1/ibport@2,ffff,ipib:ibd3

Cada ruta comienza con la ruta del dispositivo que se muestra en la salida de ldm list-io -l. Las funciones virtuales como pciex15b3,1002@0,4 tienen una dirección de unidad de dos partes, donde la segunda parte tiene un valor de uno más alto que el número de la función virtual (en este caso, VF3).

El dispositivo ibport tiene una dirección de tres partes seguida de dos puntos y, a continuación, el nombre de la instancia del dispositivo IPoIB. La primera parte de la dirección de la unidad es el número de puerto. La segunda parte es el valor hexadecimal de la clave de partición. Tenga en cuenta que los valores de clave de partición de InfiniBand son similares a las VLAN para Ethernet. La tercera parte es una cadena ipib.

La salida del comando ls -l /dev/ibd3 muestra que la instancia de IPoIB ibd3 utiliza el puerto 2 y el valor de clave de partición ffff.