
Estoy ejecutando Ubuntu 18.04 como host y Windows 10 como invitado, usando QEMU/KVM como hipervisor y libvirt como herramienta de administración.
Tengo un nvme ssd /dev/nvmewin que quiero pasar al invitado de Windows (el invitado arrancará desde este dispositivo)
También estoy usando OVMF para arrancar en modo UEFI.
Actualmente sólo funciona si el dispositivo está expuesto como dispositivo IDE. El invitado no arrancará si el dispositivo está en SCSI, SATA o Virtio (pantalla azul con código de error INACCESSIBLE_BOOT_DEVICE)
Mi motivación para utilizar un bus diferente es que creo que producirá un mejor rendimiento de E/S.
Entonces mi pregunta:
- ¿Es cierto que utilizar un bus diferente producirá un mejor rendimiento de E/S?
- Si es así, ¿cómo puedo exponer el dispositivo bajo un bus y un arranque diferentes?
Aquí está la parte de configuración de mi dominio sobre el dispositivo:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/nvmewin'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
Respuesta1
¿Es cierto que utilizar un bus diferente producirá un mejor rendimiento de E/S?
Sí. Me acerqué a la velocidad nativa con el bus virtio con atributos cache=none io=native
predeterminados del hipervisor cache
y io
la configuración parece ser más rápida cuando se compara con la marca de disco de cristal, pero en realidad el caché está habilitado, por lo que los resultados de la prueba deben tomarse con cautela.
Si es así, ¿cómo puedo exponer el dispositivo bajo un bus y un arranque diferentes?
Sólo es necesario instalar los controladores del bus virtio. El kernel de Windows no los tiene, por lo que Windows no podrá encontrar los discos en el momento del arranque si los controladores no están instalados.
Se puede encontrar más informaciónaquí