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.
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.
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.
- Reinicie su máquina Proxmox y presione la teclaEliminarmientras se inicia.
- 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.
- Haga clic enIOMMUy establezca su estado enHabilitado.
- (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.
- 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.
- Dentro de la interfaz web, seleccione elnodoque va a utilizar para este proyecto y haga clic en su ventanaShell.
- Ejecute este comando para confirmar si IOMMU está habilitado correctamente en su sistema.
mensaje grep -e DMAR -e IOMMU
Si habilitó correctamente IOMMU en el BIOS en la sección anterior, el mensajeContadores de rendimiento de IOMMU admitidosdebería aparecer como salida. - Asegúrese de que la reasignación de interrupciones esté habilitada ejecutando el siguiente comando:
dmesg | grep 'reasignación'
- (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 vez que la configuración de IOMMU esté configurada correctamente, puede seguir estos pasos para configurar la función de transferencia PCI en Proxmox:
- Dentro de Proxmox Shell, abra el archivo de configuración delgestor de arranque GRUBusando el editor de textoNanoingresando este comando:
nano /etc/predeterminado/grub
- Localice la líneaGRUB_CMDLINE_LINUX_DEFAULTy sobrescríbala con este argumento.
GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt"
Si utiliza una CPU Intel, deberá agregar un argumento más largo:GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu silencioso=activado"
- Guarde y salga delarchivo de configuraciónpresionandoCtrl+Xseguido deY.
- Ejecute este comando para actualizar el gestor de arranque GRUB:
actualización-grub
- Acceda al archivo demóduloscon la ayuda del editorNano.
nano /etc/módulos
- 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
- 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
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:
- (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
- (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
Como ya habrás adivinado, los comandos son ligeramente diferentes en las GPU AMD:lista negra amdgpu
lista negra de radeon
Mientras tanto, solo necesitas agregar un único parámetro para las ofertas de Intel:lista negra i915
- Anote el valor de la ranura PCIe delcontrolador VGAde la tarjeta gráfica ydel controlador de audioejecutando el siguiente comando:
lspci-v
El valor de la ranura es el conjunto de números que aparecen en el formatoxx:xx.xantes de cada dispositivo PCIe. - 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
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. - Abra el archivovfio.confcon la ayuda del editor de textoNano.
nano /etc/modprobe.d/vfio.conf
- Pegue la siguiente línea en el archivo de configuración.
opciones vfio-pci ids=Dispositivo_1,Dispositivo_2 deshabilitar_vga=1
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. - 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
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:
- Seleccione lamáquina virtualdonde planea utilizar los dispositivos PCIe y navegue a su pestañaHardware.
- Haga clic en el botónAgregar dispositivoy seleccioneDispositivo PCI.
- Active el botón de opciónDispositivo sin procesary seleccione sudispositivode la lista.
- Pulse el botónAgregar.
Equipando sus máquinas virtuales con potentes tarjetas de expansión
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.
Intenté ejecutar macOS en Proxmox: así fue como funcionó
Gracias a Proxmox, puedes convertir cualquier PC antiguo en un Hackintosh