¿Cómo configurar el paso directo de PCI en Proxmox para acceder directamente al hardware?

La transmisión directa de PCI le permite asignar hardware real, como GPU o NIC, directamente a máquinas virtuales en Proxmox. Esta guía explica paso a paso el proceso de configuración para que pueda mejorar el rendimiento y la fiabilidad de las máquinas virtuales.

download-icon
Descarga gratuita
para VM, SO, BD, archivos, NAS, etc.
alejandro

Updated by Alejandro on 2026/03/06

Tabla de contenidos
  • ¿Qué es la transferencia PCI en Proxmox?

  • Requisitos de hardware y compatibilidad

  • Validación del soporte de hardware antes de la configuración

  • Habilitar IOMMU en la BIOS

  • Configuración de Proxmox VE para el paso directo de PCI

  • Preparación de dispositivos para la asignación de paso directo

  • Asignación de dispositivos a máquinas virtuales mediante la interfaz web

  • Validación posterior al paso directo dentro del sistema operativo invitado

  • Consejos avanzados y resolución de problemas

  • Solución de copia de seguridad a nivel empresarial para sus máquinas virtuales Proxmox

  • Preguntas frecuentes sobre el paso a través de PCI en Proxmox

  • Conclusión

El paso directo PCI es una de las funciones más potentes de Proxmox VE. Permite asignar dispositivos PCIe físicos, como GPU, tarjetas de red (NIC) o controladores de almacenamiento, directamente a sus máquinas virtuales. Esto puede mejorar el rendimiento, reducir la latencia y posibilitar cargas de trabajo avanzadas que requieren acceso directo al hardware. Pero ¿cómo se configura? En esta guía explicaremos todo, desde los conceptos básicos hasta la solución avanzada de problemas, para que pueda dominar el paso directo PCI en Proxmox en su entorno.

¿Qué es la transferencia PCI en Proxmox?

La transferencia PCI permite que una máquina virtual controle un dispositivo PCIe físico como si estuviera instalado directamente en su propia placa base. Al asignar un dispositivo mediante la transferencia PCI en Proxmox, dicho dispositivo deja de ser visible para el sistema anfitrión hasta que la máquina virtual lo libere: se trata de un aislamiento real del hardware.

¿Por qué es esto importante? Algunas cargas de trabajo requieren acceso directo a hardware especializado por razones de velocidad o compatibilidad:

  • Asignar una GPU para el aprendizaje automático o la codificación de vídeo.

  • Paso a través de una NIC de alta velocidad para dispositivos de red.

  • Asignar un controlador de almacenamiento a ZFS u otros sistemas de archivos dentro de una máquina virtual.

En el corazón de esta función se encuentra la IOMMU (Unidad de Gestión de Memoria Entrada-Salida). La IOMMU asigna de forma segura los accesos a la memoria de los dispositivos entre las máquinas virtuales y la memoria RAM física. En plataformas Intel se denomina VT-d; en AMD se conoce como AMD-Vi o modo SVM. Sin soporte para IOMMU tanto a nivel de CPU como de placa base, la función de paso directo de dispositivos PCI en Proxmox no funcionará de forma fiable —ni siquiera funcionará en absoluto.

La mayoría de las CPUs modernas de clase servidor admiten estas funciones de forma nativa, pero siempre consulte la documentación de su modelo específico antes de comenzar.

Requisitos de hardware y compatibilidad

Antes de configurar el paso directo PCI en Proxmox, asegúrese de que su hardware lo soporte completamente; de lo contrario, podría encontrarse con obstáculos frustrantes más adelante.

Primero: Compatibilidad con CPU

  • Las CPU Intel deben admitir VT-d.

  • Las CPU AMD necesitan el modo AMD-Vi/SVM.

Consulte las especificaciones de su procesador en línea si no está seguro; busque “VT-d” (Intel) o “AMD-Vi”/“SVM” (AMD).

Segundo: Compatibilidad con la placa base

No todos los chipsets implementan la funcionalidad completa de IOMMU, ¡incluso si su CPU sí lo hace! Las placas base para servidores suelen funcionar mejor; algunas placas base para consumidores recortan aquí ciertas funcionalidades.

Busque el modelo de su placa en el sitio web del fabricante o explore foros comunitarios en busca de historias de éxito con la función de paso directo PCI en Proxmox.

Tercero: Compatibilidad del dispositivo

La mayoría de los dispositivos PCIe pueden pasarse directamente, incluidas las GPU (NVIDIA/AMD/Intel), las NIC, los controladores USB y las tarjetas RAID, aunque algunos presentan peculiaridades:

  • Los dispositivos multifunción pueden requerir que se activen todas las funciones simultáneamente.

  • Las tarjetas compatibles con SR-IOV pueden presentar múltiples funciones «virtuales» para compartir entre máquinas virtuales.

¡Si es posible, pruebe primero con hardware de repuesto antes de implementar cargas de trabajo críticas!

Cuarto: Configuración del firmware

Actualice el firmware de BIOS/UEFI antes de comenzar; las versiones anteriores pueden carecer de opciones clave de virtualización requeridas por Proxmox VE 7.x+.

Validación del soporte de hardware antes de la configuración

Conviene comprobar la compatibilidad antes de realizar cambios:

1. Inicie el sistema en la shell de Proxmox.

2. Ejecute lscpu — confirme que las banderas de virtualización están presentes (vmx para Intel; svm para AMD).

3. Compruebe los dispositivos PCI disponibles:

   lspci -nnk

Identifique qué dispositivos desea asignar más adelante.

4. Buscar registros dmesg:

   dmesg | grep -i iommu

Si no aparece nada sobre la activación de IOMMU tras el arranque, incluso después de habilitar las opciones correspondientes en la BIOS, es posible que necesite hardware distinto o actualizaciones del firmware.

¡Al confirmar estos puntos ahora, evita perder tiempo más tarde solucionando configuraciones no compatibles!

Habilitar IOMMU en la BIOS

Habilitar IOMMU a nivel de firmware es esencial: el resto de la funcionalidad de paso directo de PCI en Proxmox depende de que esto funcione correctamente desde el encendido:

1. Reinicie su servidor e ingrese en la configuración del BIOS/UEFI (pulse Supr, F2 o una tecla similar durante el arranque).

2. Busque la configuración de virtualización en los menús Avanzado > Configuración de CPU o Chipset.

  • Para Intel: active VT-d/Tecnología de virtualización de Intel para E/S dirigida.

  • Para AMD: active el modo SVM, AMD-Vi o simplemente IOMMU, según la redacción del menú.

3. Configure cualquier opción encontrada relacionada con «IOMMU», «VT-d» o «modo SVM» como Habilitado.

4. Si está disponible, active ACS (Servicios de control de acceso): esto ayuda a aislar los dispositivos multifunción en grupos separados para que no interfieran entre sí durante la asignación.

5. Guarde los cambios (F10) y salga de la configuración del BIOS/UEFI.

Si no está seguro de si los ajustes surtieron efecto después de reiniciar nuevamente en Proxmox:

dmesg | grep -e DMAR -e IOMMU

Debe ver líneas como DMAR: IOMMU habilitado (Intel) o AMD-Vi: IOMMU habilitado (AMD).

¡Sin una configuración adecuada del firmware aquí, ningún ajuste de software logrará que el paso directo PCI funcione en Proxmox!

Configuración de Proxmox VE para el paso directo de PCI

Una vez que el firmware esté listo, configuremos Proxmox paso a paso:

Paso 1: Determine su tipo de gestor de arranque

Proxmox utiliza GRUB (el más común) o systemd-boot, según el método de instalación:

Ejecutar:

efibootmgr -v

Si la salida menciona systemd-boot, eso es lo que está utilizando; de lo contrario, asuma GRUB a menos que se haya instalado personalizadamente algo distinto.

¿Por qué es esto importante? La forma en que configuramos los parámetros del kernel difiere entre ellos, ¡y dichos parámetros son fundamentales para activar las funciones de paso directo PCI de Proxmox en el momento del arranque!

Paso 2: Editar los parámetros de arranque del kernel

Los parámetros del kernel indican a Linux cómo gestionar las extensiones de virtualización durante la fase inicial del arranque:

Para usuarios de GRUB:

1. Abra /etc/default/grub en un editor:

    nano /etc/default/grub

2. Busque la línea que comienza con GRUB_CMDLINE_LINUX_DEFAULT.

3a. En los procesadores Intel, agregue:

    quiet intel_iommu=on iommu=pt

3b. En procesadores AMD, añada:

    quiet amd_iommu=on iommu=pt

Nota: Los núcleos modernos suelen activar automáticamente AMD-Vi si SVM/IOMMU están habilitados en la BIOS, pero agregar ambas banderas garantiza fiabilidad ante futuras actualizaciones.

4. Guardar el archivo (Ctrl+X, luego Y, y después Intro).

5. Actualice la configuración de GRUB para que los cambios surtan efecto en el siguiente reinicio:

    update-grub

Para los usuarios de systemd-boot:

1. Abra /etc/kernel/cmdline:

   &nbsp nano /etc/kernel/cmdline

2. Añada los parámetros adecuados, como se indica arriba (intel_iommu=on iommu=pt o amd_iommu=on iommu=pt), al final de la línea, tras las entradas existentes, como la información de root/zfs.

3. Guarde el archivo y luego actualice la configuración del gestor de arranque:

     proxmox-boot-tool refresh

¿Qué significan estas banderas?

  • intel_iommu=on: Habilita el motor VT-d en conjuntos de chips Intel compatibles;

  • amd_iommu=on: Activa la función equivalente en los conjuntos de chips AMD compatibles;

  • iommu=pt: Establece el modo de paso directo para que los dispositivos no utilizados no queden bloqueados para su asignación;

  • quiet: Reduce el ruido de la consola durante el arranque; ¡no es estrictamente necesario, pero mantiene los registros ordenados!

Paso 3: Cargar los módulos del kernel VFIO

Los módulos VFIO («Entrada/Salida de funciones virtuales») permiten la cesión segura de dispositivos PCIe desde el espacio del kernel del sistema operativo anfitrión directamente a las máquinas virtuales invitadas mediante la pila QEMU/KVM:

Edite el archivo /etc/modules para que estos módulos se carguen automáticamente en cada arranque:

nano /etc/modules

Agregue las líneas al final si aún no están presentes:

vfio  
vfio_iommu_type1  
vfio_pci  
vfio_virqfd      # Opcional, ¡pero mejora la estabilidad del manejo de interrupciones!

Guarde el archivo al terminar (Ctrl+X, luego Y).

Paso 4: Actualizar initramfs y reiniciar el servidor

Actualizar initramfs garantiza que los nuevos controladores y configuraciones se incluyan desde las primeras etapas del proceso de arranque de Linux:

Ejecute ambos comandos a continuación como usuario root o con sudo:

update-initramfs -u -k todos
reiniciar

Una vez que el reinicio finalice correctamente, proceda inmediatamente a los pasos de verificación indicados a continuación: ¡no los omita!

Paso 5: Verifique que todo funcione correctamente hasta ahora

Una vez que vuelva a estar en línea, realice las siguientes comprobaciones:

Compruebe que la IOMMU se ha activado correctamente.

dmesg | grep -e DMAR -e IOMMU

Busque mensajes de confirmación como «DMAR: IOMMU habilitado» (Intel) o «AMD-Vi: encontrado» / «IOMMU habilitado» (AMD).

Comprobar el estado del reasignación de interrupciones—

dmesg | grep 'remapping'

Espera líneas como «DMAR-IR: Se ha habilitado el remapeo de IRQ…», lo que indica un funcionamiento correcto; esto es imprescindible, especialmente al asignar GPUs o NICs que requieren interrupciones MSI/MSI-X dentro de las máquinas virtuales.

Si alguno de los comandos no devuelve nada relevante, revise cuidadosamente los pasos anteriores antes de continuar con la configuración de paso directo PCI en Proxmox.

Preparación de dispositivos para la asignación de paso directo

Ahora llega la preparación real de los dispositivos: ¡el corazón de cualquier implementación exitosa de paso directo PCI en Proxmox! A continuación se explica cómo garantizar una transferencia segura desde el kernel del host al contexto de la máquina virtual invitada...

Comprobar el aislamiento de dispositivos mediante grupos IOMMU

Cada dispositivo PCIe se encuentra dentro de un «grupo IOMMU». Los dispositivos que comparten el mismo grupo no pueden asignarse de forma independiente: deben moverse juntos debido a los recursos de bus compartidos o a limitaciones de hardware impuestas directamente por el diseño del chipset.

Para enumerar los grupos de forma clara, ejecute:

find /sys/kernel/iommu_groups/ -type l | sort | while read link; do \
group=$(echo $link | cut -d'/' -f5); \
device=$(basename $link); \
echo "Grupo $group : $(lspci -nns $device)"; done;

Identifique el (los) dispositivo(s) objetivo: ¡si está(n) agrupado(s) por separado, ¡perfecto! Si no es así, intente mover físicamente la(s) tarjeta(s) entre ranuras o bien active la opción de sustitución de ACS («Servicios de control de acceso») en la BIOS, si está disponible...

Solo como último recurso, considere agregar el parámetro del kernel—

pcie_acs_override=downstream,multifunction

para desagregar grupos persistentes, ¡pero tenga cuidado con las implicaciones de seguridad, ya que se pierden las garantías estrictas de aislamiento al usar trucos de anulación!

Coloque en lista negra los controladores de host para que no reclamen el dispositivo primero

En muchas GPU, NIC y controladores de almacenamiento, los controladores predeterminados de Linux toman el control demasiado pronto, lo que impide una transferencia limpia a VFIO... ¿Solución? Coloque explícitamente esos controladores en lista negra—

Edite el archivo /etc/modprobe.d/blacklist.conf:

Para las GPU de NVIDIA, agregue las siguientes líneas:

blacklist nouveau 
blacklist nvidia 
blacklist nvidiafb 
blacklist nvidia_drm

Para GPU AMD, agregue—

blacklist amdgpu 
blacklist radeon

Para las iGPU Intel, agregue—

lista negra i915

¡Guarde el archivo al finalizar! Nota: solo para servidores sin interfaz gráfica; no agregue a la lista negra el adaptador de pantalla principal utilizado por la consola del host, a menos que exista una ruta alternativa de administración remota...

Asignación de dispositivos a máquinas virtuales mediante la interfaz web

Una vez completada la configuración previa, asignar hardware real mediante la interfaz web es sencillo pero muy potente...

1. Seleccione la máquina virtual de destino en el árbol de navegación izquierdo dentro del panel de control de la interfaz web;

2. Vaya a la pestaña Hardware;

3. Haga clic en el botón en negrita etiquetado como Add y seleccione la opción «PCI Device».

4. En el cuadro de diálogo, seleccione el modo «Raw Device» y luego elija la entrada deseada que coincida con la salida anterior de lspci;

5. Para las tarjetas multifunción, marque las casillas «All Functions» y «Primary GPU», según corresponda;

6. Las opciones avanzadas incluyen activar/desactivar «PCI Express», «ROM-Bar», etc.; ¡actívelas únicamente si así lo recomiendan la documentación del fabricante o las guías de la comunidad específicas para el tipo o modelo de tarjeta!

7. Haga clic en el botón en negrita etiquetado como «Add».

Inicie o reinicie la máquina virtual después: el sistema operativo invitado debería detectar ahora el dispositivo físico real, tal como lo haría una instalación en hardware físico directo...

Validación posterior al paso directo dentro del sistema operativo invitado

Asignar no es suficiente: ¡usted quiere comprobar que todo funcione según lo previsto! A continuación se explica cómo los administradores validan rápidamente el éxito, independientemente de que ejecuten invitados Windows o Linux…

En invitados Linux

Abrir la ventana de terminal dentro del sistema operativo invitado y ejecutar—

lspci | grep VGA         # Debe mostrar la cadena esperada del modelo/proveedor de la GPU.lsmod | grep vfio_pci    # Debe confirmar que el módulo vfio-pci está cargado activamente.dmesg                    # Examinar el búfer de registros cerca del final en busca específicamente de errores o advertencias relacionadas con el dispositivo(s) pasado(s) al sistema.  
glxinfo                  # Comprobación útil para verificar que el renderizador OpenGL coincide con el nombre y la versión esperados de la GPU dedicada.ethtool <interfaz> # Para tarjetas de interfaz de red (NIC), confirma que la velocidad de conexión y las características coinciden con las expectativas.smartctl                 # Para controladores de almacenamiento, valida los datos SMART visibles, consultables, etc.

En invitados Windows

Abrir el Administrador de dispositivos y buscar en Adaptadores de pantalla/Controladores de sonido/etc.—los elementos transmitidos aparecen sin triángulos de advertencia ni signos de exclamación una vez que se instalan los controladores correctos.Por favor, traduzca el siguiente contenido al español:Por favor, traduzca el siguiente contenido al español:Por favor, traduzca el siguiente contenido al español:Por favor, traduzca el siguiente contenido al español:Por favor, traduzca el siguiente contenido al español:Por favor, traduzca el siguiente contenido al español:

Si aparece un código de error (por ejemplo, «Error 43», frecuente en tarjetas NVIDIA): ¡Consulte las sugerencias para solucionar problemas que figuran a continuación sobre la ocultación de la firma del hipervisor y soluciones alternativas!

Sugerencia de herramienta opcional: para análisis profundos, utilice la utilidad NirSoft DevManView, que ofrece un desglose detallado, incluidos los campos de versión/fecha/estado del controlador por cada componente detectado...

Consejos avanzados y resolución de problemas

Incluso los administradores experimentados encuentran obstáculos a veces… A continuación se presentan soluciones comprobadas que abarcan la mayoría de los problemas más frecuentes al implementar el paso directo PCI en Proxmox hoy en día—

  • Configure siempre el tipo de máquina virtual como «q35» junto con el firmware UEFI OVMF siempre que sea posible, ya que esto maximiza la compatibilidad, especialmente con asignaciones de GPU.

  • Pase TODAS las funciones que pertenezcan a la misma tarjeta juntas, por ejemplo, gráficos + bloque de audio HDMI; ¡de lo contrario, las máquinas virtuales con Windows o Linux podrían fallar silenciosamente durante la inicialización!

  • Instale los controladores oficiales más recientes DENTRO del sistema operativo invitado, no del anfitrión, para la tarjeta/controlador que se esté asignando…

  • Solución alternativa para el código de error 43 de NVIDIA: en la configuración de la máquina virtual (archivo .conf ubicado en /etc/pve/qemu-server/<vmid>.conf), añada la siguiente línea: args:-cpu host,kvm=on,hv_vendor_id=null. Esto oculta la firma de KVM/QEMU, engañando así las comprobaciones del controlador…

  • Algunas GPU AMD antiguas o de gama media sufren un error de reinicio que impide su reutilización tras varios inicios y detenciones sin necesidad de un reinicio completo… Solución: instale el módulo DKMS de código abierto vendor-reset en el lado del host, siguiendo detalladamente las instrucciones de GitHub…

  • Si aparecen errores de asignación de interrupciones, pruebe a agregar el parámetro del núcleo: vfio_iommu_type1.allow_unsafe_interrupts=1. Úselo únicamente como medida temporal hasta que se aplique una solución adecuada, ya que desactiva las comprobaciones estrictas de seguridad…

  • Pasar controladores USB a menudo requiere todo el concentrador o grupo debido a las limitaciones del diseño del chipset… Confirme la agrupación mediante los scripts anteriores o la salida de lspci…


  • ¿Los SSD NVMe se agotan en el tiempo de espera? Agregue la bandera del kernel: nvme_core.default_ps_max_latency_us=0.

Recuerde: siempre documente cada cambio realizado durante el proceso para que la reversión o solución de problemas siga siendo sencilla incluso meses después…

Solución de copia de seguridad a nivel empresarial para sus máquinas virtuales Proxmox

Una vez que haya configurado cargas de trabajo avanzadas mediante el paso directo de PCI en Proxmox VE, es fundamental proteger esas máquinas virtuales contra eventos de pérdida de datos—desde eliminaciones accidentales hasta ataques de ransomware o fallos de hardware—lo que nos lleva de forma natural a considerar estrategias de copia de seguridad específicamente diseñadas para entornos empresariales como el suyo.

Vinchin destaca como una solución profesional de copia de seguridad de máquinas virtuales, diseñada específicamente pensando en las necesidades empresariales, y ofrece un soporte sólido no solo para Proxmox VE, sino también para VMware vSphere/ESXi/vCenter, Hyper-V, oVirt/RHV/OLVM, XCP-ng/XenServer/Citrix Hypervisor y nubes OpenStack KVM/ZStack/Huawei FusionCompute/H3C CAS UIS/Sangfor HCI —¡un total de más de quince plataformas de virtualización líderes a nivel mundial! Dado que usted está trabajando específicamente con Proxmox aquí, la integración nativa de Vinchin garantiza flujos de trabajo de protección perfectamente integrados y adaptados exactamente a la arquitectura de esta plataforma, así como a las demás mencionadas anteriormente, lo cual resulta especialmente útil si en el futuro se implementa una infraestructura híbrida.

Los aspectos más destacados incluyen la tecnología de copias de seguridad incremental perpetuo, que minimiza el uso de almacenamiento al capturar únicamente los bloques modificados tras una copia de seguridad completa inicial, así como motores integrados de desduplicación y compresión que reducen drásticamente la huella de las copias de seguridad sin comprometer la velocidad de recuperación. Vinchin también permite la migración V2V entre plataformas entre hipervisores compatibles, otorgando flexibilidad a los equipos de TI durante actualizaciones o transiciones a la nube. Otras funciones sobresalientes incluyen copias de seguridad programadas o repetitivas, cifrado de datos, transmisión multi-hilo, política de retención GFS y capacidades de restauración granular, todas accesibles mediante una consola web intuitiva diseñada para que incluso los no especialistas puedan dominarla rápidamente.

Realizar una copia de seguridad de una máquina virtual Proxmox solo requiere cuatro pasos simplificados dentro de la interfaz web de Vinchin:

(1) Seleccione la máquina virtual de destino desde el inventario;

Realizando una copia de seguridad de una máquina virtual Proxmox

(2) Seleccione el almacenamiento de copia de seguridad preferido;

Realizando una copia de seguridad de una máquina virtual Proxmox

(3) Configurar estrategias de copia de seguridad;

Copia de seguridad de una máquina virtual Proxmox

(4) Enviar trabajo, con supervisión del progreso integrada.

Realizar una copia de seguridad de una máquina virtual Proxmox

No se requiere programación compleja, y las operaciones de recuperación son igualmente sencillas gracias a las herramientas de restauración instantánea y recuperación granular integradas en la confiable arquitectura del motor de Vinchin, que cuentan con la confianza de miles de organizaciones grandes y pequeñas en todo el mundo. Descargue su prueba gratuita completa, válida durante sesenta días, y experimente una implementación sin esfuerzo desde el primer momento: ¡haga clic abajo, comience ya y proteja lo que más le importa hoy mismo!

Preguntas frecuentes sobre el paso a través de PCI en Proxmox

P1: ¿Cómo puedo revertir de forma segura mi servidor si mi GPU pasada provoca una pantalla negra tras reiniciar?

A1: Conéctese de forma remota mediante SSH, edite los archivos de lista negra/vfio.conf, elimine las entradas problemáticas, actualice initramfs y reinicie; como alternativa, use el puerto de gráficos integrados si está disponible.

P2: ¿Por qué desaparece mi controlador USB tanto del host como de la máquina invitada tras la asignación?

A2: Muchos concentradores/controladores USB comparten su grupo; siempre pase el grupo completo en lugar de una sola función, siempre que sea posible.

P3: ¿Qué mejora de rendimiento puedo esperar en comparación con el hardware virtual emulado?

A3: Velocidades casi nativas: normalmente más del 90 % del rendimiento en hardware físico, siempre que no haya cuellos de botella en otros lugares (por ejemplo, asignación insuficiente de CPU o memoria RAM).

Conclusión

El paso a través de PCI desbloquea todo el potencial de Proxmox VE al otorgar a las máquinas virtuales acceso directo al hardware, logrando un rendimiento casi nativo para GPUs, tarjetas de red (NIC) y controladores de almacenamiento. El éxito depende estrictamente de la compatibilidad del hardware (soporte de IOMMU en la CPU y la placa base) y de una configuración precisa: habilitar IOMMU en la BIOS, vincular los dispositivos a los controladores VFIO y aislar correctamente las funciones. Aunque la configuración requiere atención minuciosa, la recompensa en términos de menor latencia y soporte para cargas de trabajo especializadas es considerable. Valide siempre los grupos mediante lspci/dmesg y aproveche la interfaz web de Proxmox para la asignación. Domine estos pasos y el paso a través de PCI se convertirá en una herramienta transformadora dentro de su arsenal de virtualización.

Compartir en:

Categories: VM Tips