Virtio – Paravirtualización de I/O

Hace un rato que estoy leyendo sobre virtualización, pero no de CPU, sino de I/O (otro más acá)… muy interesante, me aclaró algunas dudas que tenía, dado que últimamente al configurar este tipo de software se me confundían las cosas 🙂

Resulta que a nivel de I/O tenemos algo parecido a la virtualización al nivel de CPU: emulación, paravirtualización y ejecución «directa», por llamarlo de alguna manera. Sugiero leer el artículo para más detalles, pero sólo quiero agregar que recién estamos en la etapa de paravirtualización, y que (en buena hora) Intel y AMD agregaron unidades IOMMU en sus últimos diseños para poder asignar dispositivos directamente a una (o más, según el caso) VM, evitando el Hypervisor y ahorrando ciclos de CPU. Pero esto parece estar verde aún.

Virtio vendría a ser como una serie de drivers de paravirtualización de I/O. Lo bueno es que no sabía que VirtualBox soportaba para las interfaces de red, algo que al parecer (y de esta manera) intenta ser un estándar  (net y block devices por ahora),  ya que tiene una API de comunicación Host <–> Guest abierta, independiente y en paralelo a la propuesta de KVM como hypervisor.

Luego de ver un poco todo esto, me puse  a configurarlo en una VM con WinXP, le instalé estos drivers y ya estoy usando menos CPU para la parte de red en mi guest 🙂

Acá se ve un poco la mejora a nivel de tráfico de red *real* que hay usando I/O paravirtualizado:

http://www.linux-kvm.org/page/Using_VirtIO_NIC

En fin, esperemos que todo esto mejore más aún. KVM ya soporta virtio para dispositivos de almacenamiento, además de los de red (linkeo la instalación de los drivers de Windows porque lógicamente Linux tiene estas baterías ya incluídas, je).

Saludos


Comentarios

4 respuestas a «Virtio – Paravirtualización de I/O»

  1. Hola que tal Marcelo, encontre tu blog buscando unas cosas y ya que estoy aca me parece bueno hacerte una pregunta sobre el funcionamiento de Ubuntu, ya que tengo un problema que he intentado solucionar de mil maneras y no encuentro dar con la solucion.

    Me sucede lo siguiente:
    En mi notebook, inicio sesion en Ubuntu 9.10, y muchas veces, es como que se queda congelado. En realidad no es eso exactamente, sino que la temperatura del micro empieza a subir (lo veo en el medidor de temperatura) y cuando llega como a los 55 ºC empieza a quedarse congelada la maquina sin responder.
    Ni bien inicio sesion, se inicia Gnome-do, y cualquier tecla que aprete me aparece en Gnom-do algo asi como «raw text mode» y obviamante, nada funciona.

    Ahora, la solucion es cerrar sesion e iniciar de nuevo.
    Al principio no me molestaba, pero ya ahora se pone pesado, y ademas tengo miedo de que pase algo mas grave en la maquina.

    Bueno, si podes ayudarme en algo, seria de gran ayuda, sino, no hay problema, desde ya gracias.

    JUAN.

  2. Hola Juan, por lo que contás es muy probable que algo físico le esté pasando… probá con un Live-CD de Ubuntu, dejarla prendida un rato y ver si se «congela», para descartar algo en tu configuración… si es así, llamá al fabricante, la gran mayoría tiene soporte.

    De paso, por cualquier consulta relacionada con Ubuntu podés suscribirte a la lista de correo de Ubuntu-Ar:

    http://ubuntu-ar.org/

    Saludos

  3. Hola Marcelo , aprovecho para felicitarte por el blog y me gustaría saber cual te parece puede ser la mejor opción de virtualización para este esquema …. CPU Clon con 4 GB de memoria para virtualizar Zimbra y posiblemente un windows 2003 , cual segun vos es la mejor opción? La instalación base es un Lucid en RAID1 , los candidatos XEN , VMWARE SERVER 2.0 , KVM o VBOX? Saludos!

  4. Es una decisión complicada, depende de varios factores que vos tenés que analizar:

    – Costo de Soporte, se te permite o sí o sí debe ser gratuito?
    – Quién lo hace (sysadmin), en qué plataforma de virtualización está más familiarizado?
    – Qué CPU tiene el servidor? Tiene extensiones de virtualización?
    – Qué tareas de administración están planificadas, desde dónde?

    No tengo mucha experiencia en VMWare ni en Xen (aunque si muchos comentarios de este último por parte de colegas), así que mi opinión puede ser un poco sesgada, pero iría con Xen si necesitás algo *hoy* totalmente con software soportado y que no se puede caer, con herramientas fáciles para poner a administrar a un sysadmin junior y que te llamen a vos sólo si pasa algo importante (empresas/infraestructuras más o menos grandes).
    Por otro lado iría con KVM si hay un poco de tiempo para experimentar y aprenderlo (las herramientas de administración gráficas son un poco más básicas), aunque es muy performante, su arquitectura es excelente y para mí en el futuro a Xen lo desbanca (tiene soporte de Red Hat, IBM, Canonical…).
    Virtualbox es buenísimo pero sólo para entornos chicos/medianos y de escritorio, más que nada por sus prioridades de desarrollo (está avanzando en algunas features «enterprise» que VMW, VB, Xen y KVM ya tienen hace tiempo), mientras que otras muy de «escritorio» o «usuario final» las implementó primero.

    Espero que te sirva, cualquier cosa la seguimos en Ubuntu-Ar (suscribite!) 😉

    Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *