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.
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]
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.