Este procedimiento describe cómo crear una función virtual SR-IOV InfiniBand.
primary# ldm start-reconf root-domain-name
Realice este paso sólo si aún no está activada la virtualización de E/S para el bus que tiene la función física.
primary# ldm set-io iov=on bus
primary# ldm create-vf pf-name
Puede ejecutar este comando para cada función virtual que desea crear. También puede utilizar la opción –n para crear más de una función virtual a partir de la misma función física en un único comando. Consulte Example 8–6 y la página del comando man ldm(1M).
Ejecute uno de los siguientes comandos:
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
En el ejemplo siguiente, se muestra información sobre la función física /SYS/MB/RISER1/PCIE4/IOVIB.PF0:
Esta función física se encuentra en la ranura 4 PCIe.
La cadena IOVIB indica que la función física es un dispositivo SR-IOV InfiniBand.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary 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
El siguiente comando muestra más detalles sobre la función física especificada. El valor maxvfs indica el número máximo de funciones virtuales que admite el dispositivo.
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
El siguiente ejemplo muestra cómo crear una función virtual estática. Primero, inicie una reconfiguración retrasada en el dominio primary y active la virtualización de E/S en el bus PCIe pci_0. Debido a que el bus pci_0 ya se ha asignado al dominio raíz primary, utilice el comando ldm set-io para activar la virtualización de E/S.
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm set-io iov=on pci_0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
Ahora, utilice el comando ldm create-vf para crear una función virtual a partir de la función física /SYS/MB/RISER1/PCIE4/IOVIB.PF0.
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ---------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0
Tenga en cuenta que puede crear más de una función virtual durante la misma reconfiguración retrasada. El siguiente comando crea una segunda función virtual:
primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. ----------------------------------------------------------------------- Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1
Por último, reinicie el dominio raíz primary para que se apliquen los cambios.
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...
Este procedimiento describe cómo destruir una función virtual SR-IOV InfiniBand.
Una función virtual se puede destruir si actualmente no está asignada a un dominio. Una función virtual sólo se puede destruir en el orden secuencial inverso de creación, por lo que sólo la última función virtual creada se puede destruir. La configuración resultante es validada por el controlador de la función física.
primary# ldm start-reconf root-domain-name
primary# ldm destroy-vf vf-name
Puede ejecutar este comando para cada función virtual que desea destruir. También puede utilizar la opción –n para destruir más de una función virtual a partir de la misma función física en un único comando. Consulte Example 8–8 y la página del comando man ldm(1M).
Ejecute uno de los siguientes comandos:
primary# ldm stop-domain -r root-domain
primary# shutdown -i6 -g0 -y
El siguiente ejemplo muestra cómo destruir una función virtual InfiniBand estática, /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1.
El comando ldm list-io muestra información sobre los buses, las funciones físicas y las funciones virtuales.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary IOV ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0 PF pci_0 primary ... /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0 VF pci_0 /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0
Puede obtener más información sobre la función física y las funciones virtuales relacionadas ejecutando el comando ldm list-io -l.
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 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1] /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 VF pci_0 [pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]
Una función virtual se puede destruir únicamente si no está asignada a un dominio. La columna DOMAIN (DOMINIO) de la salida de ldm list-io -l muestra el nombre de cualquier dominio al que está asignada una función virtual. Además, las funciones virtuales se deben destruir en el orden inverso de su creación. Por lo tanto, en este ejemplo, se debe destruir la función virtual /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 antes de que se pueda destruir la función virtual /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.
Después de identificar la función virtual correspondiente, puede destruirla. Primero, inicie una reconfiguración retrasada.
primary# ldm start-reconf primary Initiating a delayed reconfiguration operation on the primary domain. All configuration changes for other domains are disabled until the primary domain reboots, at which time the new configuration for the primary domain will also take effect. primary# ldm destroy-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 ----------------------------------------------------------------------- Notice: The primary domain is in the process of a delayed reconfiguration. Any changes made to the primary domain will only take effect after it reboots. -----------------------------------------------------------------------
Durante una reconfiguración retrasada, puede emitir más de un comando ldm destroy-vf. Por lo tanto, también puede destruir la función virtual /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.
Por último, reinicie el dominio raíz primary para que se apliquen los cambios.
primary# shutdown -i6 -g0 -y Shutdown started. Changing to init state 6 - please wait ...