Configurar SR-IOV para máquinas virtuales Hyper-V en Windows Server
SR-IOV (
Single Root Input/Output Virtualization) es una tecnología de virtualización de dispositivos de hardware host que permite que las máquinas virtuales tengan acceso directo a los dispositivos host. Puede virtualizar diferentes tipos de dispositivos, pero la mayoría de las veces se usa para virtualizar adaptadores de red. En este artículo, le mostraremos cómo habilitar y configurar SR-IOV para adaptadores de red de máquinas virtuales en un servidor Windows Hyper-V.
SRV-IOV es compatible con Hyper-V 2012+, incluido el servidor Windows Hyper-V gratuito. No profundizaremos en los principios de SR-IOV en detalle, ya que puede obtener pautas completas en la Web. Para una comprensión práctica, es suficiente saber que SR-IOV permite proporcionar acceso directo a los adaptadores de red físicos del host para máquinas virtuales y omitir el procesamiento de tráfico por parte de los conmutadores virtuales de Hyper-V. Un adaptador de red físico en modo SR-IOV puede dar servicio a varias máquinas virtuales.
Debido al uso de SR-IOV para máquinas virtuales Hyper-V, podrá aumentar significativamente el rendimiento, reducir la latencia de la red y la carga de la CPU provocada por el procesamiento del tráfico de la red por parte del software Hyper-V.
SR-IOV no es compatible con la formación de equipos NIC.
Para habilitar SRV-IOV en su host Hyper-V, se deben cumplir algunos requisitos.
En primer lugar, habilite SRV-IOV y soporte de virtualización en el BIOS de su servidor. Según el proveedor, la configuración puede variar.
Soporte de virtualización: Intel (tecnología de virtualización, Intel VT, VT-d, Vanderpool), AMD (SVM, AMD-V)
OIMMU
SR-IOV
ASPM
Es posible que no tenga todos los artículos, incluso ningún SR-IOV. Pero eso no significa que su servidor no admita SR-IOV. Por ejemplo, es posible que las placas base Supermicro no tengan SR-IOV en BIOS, pero ASPM está desactivado de forma predeterminada. Si habilita ASPM y soporte de virtualización, SR-IOV se habilitará automáticamente.
Tenga en cuenta que si se ha instalado un sistema operativo Windows host con el SR-IOV deshabilitado en la configuración del BIOS, luego de habilitarlo, el sistema considera que ha reemplazado un adaptador de red (la dirección IP estática actual se restablece).
Puede asegurarse de que su servidor Hyper-V admita SR-IOV a nivel de hardware mediante PowerShell:
(get-vmhost).IovSupport
(get-vmhost).IovSupportReasons
Si su servidor es compatible con la función, IovSupport contendrá
True. Si no es así, será
False. En este caso, el elemento IovSupportReasons muestra el motivo por el cual SR-IOV no es compatible. Por lo general, la razón se describe en detalle. Estas son las razones típicas:
El conjunto de chips del sistema no interrumpe la reasignación, sin la cual no se puede admitir SR-IOV.
SR-IOV no se puede usar en esta computadora porque el procesador no admite la traducción de direcciones de segundo nivel (SLAT). Para los procesadores Intel, esta característica podría denominarse tablas de páginas extendidas (EPT). Para los procesadores AMD, esta característica podría denominarse Indexación de virtualización rápida (RVI) o Tablas de páginas anidadas (NPT).
SR-IOV no se puede usar en este sistema ya que el hardware PCI Express no es compatible con los Servicios de control de acceso (ACS) en ningún puerto raíz. Póngase en contacto con el proveedor de su sistema para obtener más información.
Para usar SR-IOV en esta computadora, el BIOS debe actualizarse porque contiene información incorrecta que describe las capacidades del hardware. Comuníquese con el fabricante de su computadora para obtener una actualización.
El conjunto de chips del sistema no reasigna DMA, sin lo cual no se admite SR-IOV.
SR-IOV no se puede usar en este sistema, ya que se configuró para deshabilitar el uso del hardware de reasignación de E/S.
-
Para usar SR-IOV en este sistema, el BIOS del sistema debe actualizarse para permitir que Windows controle PCI Express. Comuníquese con el fabricante de su sistema para obtener una actualización.
Asegúrese de que el sistema tenga soporte de chipset para SR-IOV y que la virtualización de E/S esté habilitada en el BIOS.
SR-IOV no se puede usar en este sistema porque informa que no hay bus PCI Express. Póngase en contacto con el fabricante de su sistema para obtener más información.
La salida completa del
get-vmswitch | fl *iov*El comando contiene información útil. Por ejemplo:
IovVirtualFunctionCount : 6
IovVirtualFunctionsInUse : 3Los números muestran cuántos dispositivos virtuales IOV están disponibles y cuántos de ellos son utilizados por máquinas virtuales.
Al crear un conmutador virtual de Hyper-V, marque la opción de compatibilidad con SR-IOV: Habilitar virtualización de E/S de raíz única (SR-IOV).
O habilite la opción EnableIOV al crear un conmutador virtual mediante PowerShell:
New-VMSwitch -Name "VMNetExt" -NetAdapterName "Ethernet 2" -EnableIov 1Importante. No puede habilitar SR-IOV después de crear un conmutador virtual. Si no lo has hecho de una vez, tendrás que borrar vswitch y crear de nuevo.
Si SR-IOV es compatible con un host de hipervisor, no significa que funcionará en un conmutador virtual específico. El conmutador debe estar vinculado a un adaptador de red compatible con SR-IOV.
Hay otra cosa importante. Una placa base puede tener varios adaptadores de red, pero es posible que SR-IOV solo sea compatible con algunos de ellos. Además, si SR-IOV es compatible con un adaptador de acuerdo con su hoja de datos, no significa que esté funcionando en su placa base.
Entonces, después de haber configurado un interruptor, verifíquelo usando el comando:
get-vmswitch | select IovSupport, IovSupportReasons, IovEnabledLa opción IovEnabled muestra si SR-IOV está habilitado.
Puede mostrar una lista de adaptadores de red compatibles con SR-IOV mediante PowerShell:
Get-NetAdapterSriov | sort name | ft Name, InterfaceDescription, SriovSupportDespués de habilitar SR-IOV en los niveles de hipervisor y conmutador virtual, puede habilitarlo en sus máquinas virtuales (está deshabilitado de forma predeterminada). Puede encontrar la opción Habilitar SR-IOV en la sección Aceleración de hardware del adaptador de red de su máquina virtual.
O puede habilitar SR-IOV para el adaptador de red de la máquina virtual a través de PowerShell:
Set-VMNetworkAdapter -VMName mytestvm -VMNetworkAdapterName “Network Adapter” -IovWeight 100Para deshabilitar SR-IOV, cambie el valor de IovWeight a 0.
Puede encontrar todos los errores y eventos de SR-IOV en Hyper-V con un registro del Visor de eventos separado:
Registros de aplicaciones y servicios -> Microsoft -> Windows -> Hyper-V-SynthNic -> Admin.
Si SR-IOV funciona correctamente, verá las siguientes entradas en el Visor de eventos al iniciar la máquina virtual:
12597 Network adapter (%NIC_ID%) Connected to virtual network.
12582 Network adapter (%NIC_ID%) started successfully.
12584 Network adapter (%NIC_ID%) allocated a virtual function.
12588 Network adapter (%NIC_ID%) assigned a virtual function.SR-IOV aumenta el rendimiento de la red de máquinas virtuales y un hipervisor. Es posible que vea los resultados más altos del uso de SR-IOV en hosts Hyper-V con un alto tráfico de máquinas virtuales que causan una gran carga en las CPU del host.



