Bicefalia Tecnología

Mi visión del mundo IT

Bicefalia Tecnología header image 2

Linux virtualization PCI passthrough (KVM&Ubuntu)

October 18th, 2009 · No Comments

Seguramente muchos de vosotros ya utilizais la posibilidad de poder hacer un passthrough de un dispositivo PCI a la maquina virtual. Es decir , ver el dispostivo desde la VM como si estuviera conectado físicamente. Esta posibilidad se puede hacer desde otros hipervisores usando la “emulación” “VMware, VirtualBox” y seguramente otros menos conocidos tambien. Ya sabemos que la emulación es menos performante.

En mi busqueda de la solución me encontré que el problema no siempre se resolvia de igual forma, por ej si usaba VirtualBox tenia que utilizar un producto “premium”.  Y VmWare pues ya sabemos todos “pasar por caja”.

La opción que empleé fue la siguiente, Ubuntu 9.04, KVM con extensiones libvirt y activacion en mi caso Intel de las extesiones VT.

Para poder realizar esta configuración, lo primero que debemos de comprobar es si mi servidor/laptop tiene estas extensiones de virtualización:

Intel: cat /proc/cpuinfo | grep vmx

AMD: cat /proc/cpuinfo | grep svm

En el caso que estas salidas contengan información sabremos que nuestra CPU contiene las oportunas extensiones.

En mi caso, estas extensiones estan “disable”  por defecto, tuve que entrar en la BIOS y activarlas. ¿Porque digo activarlas? porque me aparecen dos entradas una es la extension para la virtualizacion y otra es las extension para la virtualzacion de I/O. Para este ejercicio active las dos.

Como vemos en el grafico adjunto, queremos que un dispositivo PCI pueda ser utilizado de forma virtualizada y compartida “sin emulacion” por varias VM y por la maquina física.

Estas features estan activadas desde la versión de kernel 2.6.26-xx.

¿Que software debo de instalarme? Basicamente nos instalremos KVM y libvirt, lo encontraremos por defecto en los sources de la version de Ubuntu (desde la version 8.04).

Una vez instalados tendremos la posiblidad desde “Virtual Machine Manager” crear una maquina virtual.

Me ha sorprendido lo ligero que es el modulo KVM y el excelente rendimiento de la maquina virtual.

Tags: Linux · administración · virtualizacion