• Dispositivos PCIPassThrough que no se resetean al apagar la MV

    Si pasas dispositivos PCI a máquinas virtuales de PVE y luego, cuando apagas la MV, el dispositivo no vuelve al host o no lo puedes utilizar nuevamente en otra máquina, este post puede interesarte.

    Cuando una máquina virtual se apaga, todos los dispositivos usados por esa MV son «des-inicializados» y pasados por un ciclo de apagado y re-encendido para que el host vuelva a reconocerlos y los vuelva a poner a disposición de usar para si o volverlos a pasar a la misma u otra máquina virtual que los solicite. El kernel de linux se encarga de hacer todo ese trabajo. Pero cuando un dispositivo no tiene un método conocido de reseteo queda deshabilitado hasta que se le corte la energía y se la vuelva a proporcionar.

    LibVirt y QEmu, antes de dar la orden de apagar la máquina virtual por completo, esperan que los dispositivos usados en ella pasen por este ciclo de reseteo y estén disponibles nuevamente para reconectarse al host. Lo normal es que, si alguno de los dispositivos no termina de hacer el ciclo de reseteo entre en un estado de «apagándose» y no se pueda volver a usar hasta que reinicies el host por completo. En algunos casos incluso puede que la máquina virtual no se apague del todo.

    Por eso, lo mejor es siempre pasar dispositivos PCI que tengan métodos de reseteo y la mejor forma de ver cuáles son es correr este script.

    El script, lo que hace es buscar en cada uno del los dispositivos PCI del sistema el archivo reset, que vendría a ser el protocolo de reseteo en forma de archivo. Si lo encuentra, significa que el dispositivo es reseteable y así te lo indicará el script en verde. Si el dispositivo no es reseteable también te lo notificará, pero en rojo.


    Deja una respuesta