Mi regalo de reyes fue un Asus PRO50N-AP109A. Es un portatil de bajo costo (unos 575¬) que tiene un procesador AMD Turion64 single core MK-36. Lo que me interesó de este portatil fue aparte de estar muy bien equipado (2G RAM, 120G DD), fue el procesador en si, que soporta Virtualización AMD-V. Es el portatil más barato con soporte de virtualización, ya que no todos los portatiles Core2Duo de Intel la soportan (hay que consultar esta tabla para saber cuales sí). Los portatiles más baratos que lo soportan cuestan 750¬… no hay single cores Intel con virtualización.

Desde que lo compré, instalé virtualbox-ose (ubuntu gutsy en universe) y me gustó la velocidad que tenía, pero investigando más, me extrañaba que para que fuera rápido tenía que desmarcar la opción “Enable VT-x/AMD-V”. Si la marco se cuelga en medio del arranque. Era altamente ilógico, ya que me habia costado bastante que el portatil tuviese AMD-V. Luego el colega aplatanado me pega este párrafo de la FAQ para desarrolladores de Virtualbox.

  • Q: Does VirtualBox support CPU virtualization enhancements such as Intel VT-x (codename Vanderpool) and AMD SVM?
  • A: Yes, we provide full support for Intel VT-x and experimental support for AMD SVM. However, we do not make use of these features by default. You have to enable it either globally or on a per VM basis. The reason is very simple: our x86 virtualization is very sophisticated and in most cases it provides significantly better performance than when relying on VT-x. Virtualization products that rely on VT-x are usually much less sophisticated and tuned. With VT-x, a special CPU environment has to be entered in order to execute guest code and whenever activity of the VMM is required, this environment has to be left and then entered again. This is painfully slow and will take some years until additional benefits of VT-x and SVM (such as nested paging) may outweigh the performance penalty. VirtualBox will continue to support the latest CPU enhancements and already today, you benefit from VT-x when running guest operating systems such as OS/2 Warp which need rarely-used processor features. In general, with VT-x enabled much less virtualization code from VirtualBox has to be executed which can result in a more reliable system in case there are problems. So if you run into an issue, we recommend to compare the results to a VT-x enabled VM.

Que resumiendo quiere decir que ellos tienen su implementación propia de las extensiones VT-x y AMD-V, con las que consiguen mejoras con respecto a usar las instrucciones de virtualización del procesador. Por tanto, siendo experimental el código de AMD-V, es lógico que vaya mejor con su emulación. No me hacía gracia haberme pegado el curro de encontrar este portatil con virtualizacion para después no usarla.

Buscando alternativas de virtualización, me encuentro con KVM Kernel based Virtual Machine. Aunque viene en gutsy (version kvm-28), decidi coger la version de hardy (kvm-58), siguiendo las instrucciones que puso Esaú para compilar paquetes fuente, ya que el soporte para AMD-V mejoró mucho en versiones kvm-51..53. Dicho y hecho.

Va una gráfica de la carga de la cpu después de haber lanzado un live cd de ubuntu con kvm primero y con virtualbox después.

Kvm vs virtualbox comparison

En ella se observa que con kvm tarda solo 100 segundos en arrancar mientras que con virtualbox tarda 133. Comparando ambos casos se observa que la carga del sistema comparada con la del usuario, es mayor en kvm respecto al de virtualbox. Por tanto, confirmamos que si queremos virtualizacion por kernel y no userspace, mejor kvm. En el primer caso daba la impresión de ir el sistema más suelto. Una vez la máquina virtual está encendida, la carga idle es similar (30%). El tiempo en detener el sistema en kvm fue de 30 sg mientras que en virtualbox fue 18sg. En este caso, al mensaje de “Pulse enter para apagar el sistema” que da la ubuntu live, kvm no hacía caso, mientras que virtualbox si apagó bien.

Por tanto, a falta de probar las versiones modernas de virtualbox, si quieres virtualizar con un Turion64 MK-36 o MK-38, te interesa probar la ultima versión de kvm.

$ sudo su
# vi /etc/apt/sources.list # comprueba que tienes un deb-src a hardy
# apt-get update
# cd /tmp
# apt-get source kvm
# apt-get build-dep kvm
# cd kvm-59+dfsg/
# dpkg-buildpackage -uc -us
# cd ..
# dpkg -i kvm_59+dfsg-0ubuntu3_amd64.deb
# dpkg -i kvm-source_59+dfsg-0ubuntu3_all.deb
# rm -Rf /usr/src/modules/kvm/ # si habias compilado algo antes
# m-a a-i kvm
# /etc/init.d/kvm restart # para que cargue los modulos
# lsmod | grep kvm # comprobar que cargó
# adduser miusuario kvm # para que tu usuario tenga permisos

Luego se lanza igual que un qemu

$ kvm -cdrom /nombre/de/tu/iso
Anuncios