En el procedimiento siguiente, se explica cómo crear un dominio de E/S que incluye funciones virtuales SR-IOV PCIe.
Planee por adelantado para reducir el número de reinicios del dominio, lo que permite minimizar el tiempo de inactividad.
Antes de empezar
Antes de comenzar, asegúrese de haber activado la virtualización de E/S para el bus PCIe que es el elemento principal de la función física a partir de la cual se crean funciones virtuales. Consulte Cómo activar la virtualización de E/S para un bus PCIe.
primary# ldm list-io
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 7–6 y la página del comando man ldm(1M).
primary# ldm list-io
primary# ldm add-io vf-name domain-name
El siguiente comando de Oracle Solaris 11 muestra la disponibilidad de la función virtual:
guest# dladm show-phys
En el siguiente ejemplo dinámico, se muestra cómo crear una función virtual, /SYS/MB/NET0/IOVNET.PF0.VF0, para una función física, /SYS/MB/NET0/IOVNET.PF0, y cómo asignar la función virtual al dominio de E/S ldg1.
En este ejemplo, se presupone que las siguientes circunstancias son verdaderas:
El sistema operativo que se ejecuta en el dominio primary admite operaciones de SR-IOV dinámica.
El bus pci_0 está asignado al dominio primary y se ha inicializado para las operaciones de virtualización de E/S.
La función física /SYS/MB/NET0/IOVNET.PF0 pertenece al bus pci_0.
La función física /SYS/MB/NET0/IOVNET.PF0 no tiene funciones virtuales existentes asignadas a los dominios.
El dominio ldg1 está activo y se ha iniciado, y el sistema operativo admite operaciones de SR-IOV dinámica.
Cree la función virtual a partir de la función física /SYS/MB/NET0/IOVNET.PF0.
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0
Agregue la función virtual /SYS/MB/NET0/IOVNET.PF0.VF0 al dominio ldg1.
primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
El siguiente comando muestra que la función virtual se ha agregado al dominio ldg1.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1Ejemplo 7-13 Creación estática de un dominio de E/S mediante la asignación de una función virtual SR-IOV a él
En el siguiente ejemplo estático, se muestra cómo crear una función virtual, /SYS/MB/NET0/IOVNET.PF0.VF0, para una función física, /SYS/MB/NET0/IOVNET.PF0, y cómo asignar la función virtual al dominio de E/S ldg1.
En este ejemplo, se presupone que las siguientes circunstancias son verdaderas:
El sistema operativo que se ejecuta en el dominio primary no admite operaciones de SR-IOV dinámica.
El bus pci_0 está asignado al dominio primary y no se ha inicializado para las operaciones de virtualización de E/S.
La función física /SYS/MB/NET0/IOVNET.PF0 pertenece al bus pci_0.
La función física /SYS/MB/NET0/IOVNET.PF0 no tiene funciones virtuales existentes asignadas a los dominios.
El dominio ldg1 está activo y se ha iniciado, y el sistema operativo no admite operaciones de SR-IOV dinámica.
El dominio ldg1 tiene la propiedad auto-boot? definida como true, de modo que el dominio arranca automáticamente cuando se inicia el dominio.
Primero, inicie una reconfiguración retrasada en el dominio primary, active la virtualización de E/S y cree la función virtual a partir de la función física /SYS/MB/NET0/IOVNET.PF0.
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 primary# ldm create-vf /SYS/MB/NET0/IOVNET.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/NET0/IOVNET.PF0.VF0
Luego, cierre el dominio primary.
primary# shutdown -i6 -g0 -y
Detenga el dominio ldg1, agregue la función virtual e inicie el dominio.
primary# ldm stop ldg1 primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start ldg1
El siguiente comando muestra que la función virtual se ha agregado al dominio ldg1.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1