A diferencia de Virtualbox,VMWare Workstation Prou otros hipervisores de tipo 2,Proxmoxrequiere que le dediques una PC entera. Pero si estás dispuesto a configurarlo, Proxmox puede servir como una base potente para cualquier laboratorio doméstico o servidor de virtualización. Incluso puedes llevar la utilidad de Proxmox un paso más allá al habilitar el paso a través de PCI.

De forma predeterminada, las máquinas virtuales dentro de Proxmox no pueden acceder a los dispositivos conectados a las ranuras de expansión PCI Express de la placa base. Pero al habilitar el paso a través de PCI, puede aprovechar las NIC, las tarjetas de sonido, el controlador RAID y otras tarjetas PCIe dentro de sus máquinas virtuales favoritas. La única salvedad es que el proceso puede volverse extremadamente complejo, especialmente si está tratando de usar GPU con máquinas virtuales Proxmox. Por eso, hemos creado una guía detallada para ayudarlo a configurar el paso a través de PCI en Proxmox.

Relacionado
4 configuraciones de BIOS que todo usuario de PC debería conocer

Si bien no deberías modificarlas por capricho, aquí hay 4 opciones importantes ocultas dentro del BIOS de tu placa base.

6

Habilitación de IOMMU en el BIOS

Antes de poder comenzar a ingresar comandos en el shell de Proxmox, deberá activar una configuración llamada IOMMU en el BIOS de su placa base. Como puede imaginar por el nombre, la unidad de administración de memoria de entrada y salida supervisa la asignación de direcciones de memoria a todos sus periféricos, incluidos aquellos conectados a las ranuras PCIe.

A pesar de ser el requisito principal para el paso de PCI, IOMMU no es compatible con muchas placas base y procesadores. En el caso de la CPU, debería funcionar bien siempre que no sea demasiado antigua, pero la situación es un poco complicada en el caso de la placa base, ya que muchas placas base de servidor baratas y sin marca para procesadores Xeon más antiguos no son compatibles con esta tecnología.

Por lo tanto, asegúrese de confirmar si su placa base es compatible con IOMMU antes de intentar este proceso, ya que solo perderá tiempo si no puede habilitar esta configuración. Una vez que haya revisado las especificaciones de su placa base (y CPU) y haya confirmado que ambas funcionan con IOMMU, es hora de sumergirse en el BIOS.

  1. Reinicie su máquina Proxmox y presione la teclaEliminarmientras se inicia.
  2. En la mayoría de los casos, la opción IOMMU debe estar ubicada dentro del submenúde CPUo Configuraciónmiscelánea dentro de la pestañaConfiguración.
    Ingresar a la pestaña Varios en el menú BIOS
  3. Haga clic enIOMMUy establezca su estado enHabilitado.
    Habilitación de IOMMU en el BIOS
  4. (Opcional) Si aún no hahabilitado la virtualización, puede dirigirse a la secciónConfiguración avanzada de CPUy activarVT-x,Modo SVM,AMD-Vo cualquier nombre que tenga su placa base para esta opción.
    Habilitar el modo SVM en el BIOS
  5. Asegúrese deguardar los cambiosantes de salir del BIOS.

Confirmar si las configuraciones de IOMMU están habilitadas correctamente

Una vez que el servidor Proxmox se reinicie, es momento de ejecutar algunos comandos de terminal utilizando la interfaz de usuario web desde otro sistema en la misma red.

  1. Dentro de la interfaz web, seleccione elnodoque va a utilizar para este proyecto y haga clic en su ventanaShell.
    Apertura del shell de un nodo dentro de la interfaz web de Proxmox
  2. Ejecute este comando para confirmar si IOMMU está habilitado correctamente en su sistema.
    mensaje grep -e DMAR -e IOMMU
    El comando para verificar si IOMMU está funcionando en la interfaz web de Proxmox
    Si habilitó correctamente IOMMU en el BIOS en la sección anterior, el mensajeContadores de rendimiento de IOMMU admitidosdebería aparecer como salida.
  3. Asegúrese de que la reasignación de interrupciones esté habilitada ejecutando el siguiente comando:
    dmesg | grep 'reasignación'
    El comando para verificar si la reasignación de interrupciones de IOMMU funciona en la interfaz de usuario web de Proxmox
  4. (Opcional) Si no ve el mensaje deMapeo de interrupciones/IRQ habilitado, abra el archivoiommu_unsafe_interrupts.confusando el editorNano.
    nano iommu_interrupciones_inseguras.conf
    Pegue esta línea en el archivo antes de presionarCtrl+Xpara guardar eYpara salir del archivo de configuración.
    opciones vfio_iommu_type1 permitir_interrupciones_inseguras=1

Habilitación del paso de PCI para la mayoría de los dispositivos

Una persona sostiene una NIC de 10 GbE frente a un monitor que muestra la interfaz de usuario de Proxmox

Una vez que la configuración de IOMMU esté configurada correctamente, puede seguir estos pasos para configurar la función de transferencia PCI en Proxmox:

  1. Dentro de Proxmox Shell, abra el archivo de configuración delgestor de arranque GRUBusando el editor de textoNanoingresando este comando:
    nano /etc/predeterminado/grub
    El comando para abrir el archivo de configuración del cargador de arranque GRUB en la interfaz web de Proxmox
  2. Localice la líneaGRUB_CMDLINE_LINUX_DEFAULTy sobrescríbala con este argumento.
    GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt"
    Agregar el parámetro iommu=pt dentro del archivo de configuración del cargador de arranque GRUB en la interfaz web de Proxmox
    Si utiliza una CPU Intel, deberá agregar un argumento más largo:
    GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu silencioso=activado"
  3. Guarde y salga delarchivo de configuraciónpresionandoCtrl+Xseguido deY.
  4. Ejecute este comando para actualizar el gestor de arranque GRUB:
    actualización-grub
    Actualización del gestor de arranque GRUB en Proxmox
  5. Acceda al archivo demóduloscon la ayuda del editorNano.
    nano /etc/módulos
    El comando para abrir el archivo de módulos de la interfaz web de Proxmox
  6. Agregue estas variablesde entrada/salida de función virtualal archivo antes de guardar y regresar al shell usando la misma combinación de teclas que antes.
    • Vfio
    • vfio_iommu_tipo1
    • vfio_pci
    • vfio_virqfd
      Agregar las variables vfio dentro del archivo de módulos de la interfaz web de Proxmox
  7. Reinicie su sistema Proxmox.

Una vez que hayas completado estos pasos, solo tienes que agregar el dispositivo PCIe a tu máquina virtual. A menos que uses una tarjeta gráfica, puedes omitir la siguiente sección del artículo.

(Opcional) Habilitar el paso a través de PCI para GPU

Un Intel Arc A750 junto a una ASUS Rog Strix RTX 3080 Ti y una GTX 1080 Ti

Permítanme comenzar esta sección diciendo lo siguiente: si valoran su cordura, deberían olvidarse de usar GPU en las máquinas virtuales Proxmox. A diferencia del dispositivo PCIe promedio, configurar la función de transferencia directa para tarjetas gráficas es un proceso arduo que puede fallar fácilmente dependiendo de múltiples factores, incluidas las especificaciones de la placa base y el modelo, el fabricante y la generación de la GPU.

Pero si aún así estás decidido a seguir adelante, aquí hay algunas cosas importantes que debes tener en cuenta. Para una experiencia sin errores, recomiendo usar GPU un poco más antiguas en lugar de sus contrapartes más recientes. Y sí,GPU,en plural. Aunque estés accediendo a la interfaz web desde otro sistema, necesitarás al menos una fuente de salida de video exclusivamente para la máquina Proxmox. Afortunadamente, esto incluye las iGPU en procesadores modernos, pero como dije, el rendimiento puede variar significativamente según las especificaciones de tu PC.

También es importante colocar la GPU en la ranura PCIe adecuada en la placa base. Si la GPU está conectada al zócalo PCIe que tiene el mismo grupo IOMMU que el SSD M.2, el controlador SATA, el conector Ethernet u otros dispositivos similares, intentar pasar la tarjeta gráfica a una máquina virtual puede provocar que toda la máquina Proxmox se congele cuando inicie dicha máquina virtual. Claro, técnicamente podría ejecutar el comandopcie_acs_override=downstream,multifunctionpara dividir algunos grupos IOMMU, pero puede provocar algunos problemas inesperados más adelante.

Para simplificar las cosas, sugiero conectar la GPU a la que desea acceder desde una máquina virtual en la ranura PCIe x16 más rápida, ya que esta suele tener su propio grupo IOMMU. En la mayoría de los casos, debería ser el primer zócalo x16 de la placa base. Luego, puede insertar su tarjeta gráfica secundaria en cualquier otra ranura y conectarla a su monitor con la ayuda de un cable de pantalla. Una vez hecho esto, simplemente siga estos pasos dentro del shell de Proxmox:

  1. (Opcional) Como medida de precaución, abrablacklist.confpara evitar que la máquina Proxmox acceda a la GPU que planea usar dentro de las máquinas virtuales.
    nano /etc/modprobe.d/blacklist.conf
    El comando para abrir el archivo blacklist.conf en la interfaz web de Proxmox
  2. (Opcional) Agregue estos parámetros dentro del archivo si está usando una tarjeta gráfica Nvidia:
    • nueva lista negra
    • lista negra de nvidia
    • lista negra de nvidiafb
    • lista negra nvidia_drm
      Los controladores importantes de Nvidia dentro del archivo blacklist.conf en la interfaz web de Proxmox
      Como ya habrás adivinado, los comandos son ligeramente diferentes en las GPU AMD:
    • lista negra amdgpu
    • lista negra de radeon
      Lista negra de GPU AMD en Proxmox
      Mientras tanto, solo necesitas agregar un único parámetro para las ofertas de Intel:
    • lista negra i915
      Inclusión en la lista negra de controladores de GPU Intel en Proxmox
  3. Anote el valor de la ranura PCIe delcontrolador VGAde la tarjeta gráfica ydel controlador de audioejecutando el siguiente comando:
    lspci-v
    Ejecución del comando lspci dentro de la interfaz web de Proxmox
    El valor de la ranura es el conjunto de números que aparecen en el formatoxx:xx.xantes de cada dispositivo PCIe.
  4. Ejecute el comando lspci nuevamente, excepto que esta vez deberá usar un conjunto diferente de indicadores e incluir el ID de la ranura PCIe de su GPU.
    lspci -n -s ID_de_ranura
    Cómo encontrar los identificadores de proveedor y dispositivo de los dispositivos PCIe en la interfaz web de Proxmox
    Repita este proceso también para el controlador de audio y copie los ID de dispositivo tanto para el controlador VGA como para el controlador de audio, ya que los necesitará en el siguiente paso.
  5. Abra el archivovfio.confcon la ayuda del editor de textoNano.
    nano /etc/modprobe.d/vfio.conf
    El comando para abrir el archivo vfio.conf en la interfaz web de Proxmox
  6. Pegue la siguiente línea en el archivo de configuración.
    opciones vfio-pci ids=Dispositivo_1,Dispositivo_2 deshabilitar_vga=1
    Cómo agregar los identificadores de proveedor y dispositivo de una GPU a vfio.config en la interfaz de usuario web de Proxmox
    Asegúrese de guardar el archivo vfio.conf después de cambiar los valores de Device_1 y Device_2 con los ID hexadecimales que copió en el paso anterior.
  7. Ejecute estos dos comandos para guardar los cambios en el sistema de archivosinitramfs.
    • actualización-initramfs -u
    • reiniciar

Cómo agregar dispositivos PCIe a sus máquinas virtuales Proxmox

Una tarjeta WLAN y una tarjeta de expansión USB colocadas frente a un monitor que muestra la interfaz de usuario de Proxmox

Por último, es hora de dejar de lado el shell de Proxmox y modificarlo con la configuración de la máquina virtual. Si no tienes una máquina virtual, ahora es el momento de crear una. Cuando hayas terminado, estos son los pasos que debes seguir para usar los dispositivos PCIe dentro de la máquina virtual:

  1. Seleccione lamáquina virtualdonde planea utilizar los dispositivos PCIe y navegue a su pestañaHardware.
    Cómo acceder a la pestaña Hardware de una máquina virtual en la interfaz web de Proxmox
  2. Haga clic en el botónAgregar dispositivoy seleccioneDispositivo PCI.
    Cómo agregar un dispositivo PCI a una máquina virtual en la interfaz web de Proxmox
  3. Active el botón de opciónDispositivo sin procesary seleccione sudispositivode la lista.
    Cómo seleccionar un dispositivo PCI para una máquina virtual en la interfaz web de Proxmox
  4. Pulse el botónAgregar.
    Habilitación de un dispositivo PCI en una máquina virtual en la interfaz web de Proxmox

Equipando sus máquinas virtuales con potentes tarjetas de expansión

Cómo conectarse a una máquina virtual de Windows 11 mediante Escritorio remoto después de habilitar el acceso directo a GPU

Si siguió todos los pasos al pie de la letra, su máquina virtual no debería tener problemas para detectar un dispositivo PCIe normal. Sin embargo, las GPU son una historia completamente diferente, ya que requieren diferentes calibraciones y ajustes para funcionar con diferentes sistemas operativos de VM. Por ejemplo, es posible que Windows 11 no funcione con noVNC cuando intente configurar su tarjeta gráfica discreta como GPU principal.

En mis pruebas, seguí este procedimiento para mi GTX 1080 (GPU de transferencia directa) y mi Intel Arc A750 (tarjeta gráfica secundaria), y pude hacer que mi 1080 funcionara en una máquina virtualcon Windows 11 Pro. Como tal, tendrás que instalar la versión Pro del sistema operativo y usar el Escritorio remoto para acceder a la máquina virtual con GPU. Del mismo modo, Ubuntu tiene su propio conjunto de peculiaridades, aunque no creo que sea necesario mencionar lo complicado que es hacer que la transferencia directa de GPU funcione en las versiones más nuevas de macOS.

Relacionado
Intenté ejecutar macOS en Proxmox: así fue como funcionó

Gracias a Proxmox, puedes convertir cualquier PC antiguo en un Hackintosh

1