sudo: Jack of all trades, master of some

Habilitar PCI Passthrough en Proxmox VE

1 comentario

PCI passthrough permite a las máquinas virtuales tener acceso exclusivo a dispositivos PCI, de manera que se comporten como si estuvieran conectados físicamente a la máquina virtual.

Esto pudiera ser provechoso por ejemplo en hardware que tenga varias interfaces de red y se quiera utilizar una o varias sin usar bridges u otro tipo de virtualización de red.

Configuración de GRUB

Editar el archivo /etc/default/grub y cambiar:

Para procesadores INTEL

GRUB_CMDLINE_LINUX_DEFAULT="quiet" por: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

Actualizar GRUB y reiniciar

update-grub
reboot

Para procesadores AMD

GRUB_CMDLINE_LINUX_DEFAULT="quiet" por: GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

Actualizar GRUB y reiniciar

update-grub
echo "options kvm allow_unsafe_assigned_interrupts=1" > /etc/modprobe.d/kvm_iommu_map_guest.conf 
reboot

Para comprobar que funciona correctamente el siguiente comando debe devolver alguna salida:

dmesg | grep -e DMAR -e IOMMU

Determinar la dirección del dispositivo PCI

Localizar el dispositivo PCI utilizando lspci.

Por ejemplo:

lspci
...
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
...

Configuración de la máquina virtual

Agregar hostpci0:DIRECCIÓN al final del archivo /etc/pve/nodes/proxmox3/qemu-server/vmNÚMERO.conf donde NÚMERO es el ID de la máquina virtual.

Donde DIRECCIÓN es la dirección física del dispositivo, en este caso puede ser 03:00.0 o 04:00.0 en dependencia del dispositivo que se quiera utilizar.

Verificaciones

Iniciar la máquina virtual, entrar del monitor qm qm monitor vmNÚMERO, ejecutar el comando info pci y verificar que el dispositivo se muestre.

Notas

Esto solo funciona en hardware que soporte iommu que a su vez está dado por el soporte de VT del procesador.

Referencias

https://pve.proxmox.com/wiki/Pci_passthrough

http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM

Comentarios desactivados
  1. Leonardo Miranda Collantes 5 años atrás

    todo muy bien, pero ahora cuando quiero iniciar las maquinas virtuales me sale:

    Could not access KVM kernel module: No such file or directory
    failed to initialize KVM: No such file or directory

    eso lo debe de haber provocado el comando:
    echo “options kvm allow_unsafe_assigned_interrupts=1” > /etc/modprobe.d/kvm_iommu_map_guest.conf

    Como resuelvo eso? gracias