Virtualización vs Paravirtualización
Este si que es un problema….. ¿que es cada cosa?
A raid de dar un curso de Hyper-V a salido esta pregunta entre mis alumnos que después de mirar en internet no les quedaba claro la explicación porque ponían cosas contradictorias. Realmente el título de la entrada deberia ser Virtualización completa Vs Paravirtualización que es mas apropiado para las definiciones que voy a dar. También recomiendo que echéis un vistazo a estas dos entradas para aclarar conceptos: ¿Que es la virtualización? y ¿Que es un Hipervisor?
Bueno, voy a explicar que es cada cosa a riesgo de meter la pata, porque si que es cierto que hay cosas en la red mal definidas pero los conceptos son claros. Para que quede bien definido voy a ser drástico en las definiciones, o negro o blanco, ya que hay una gama gris intermedia «Virtualización parcial«, «Virualización asistida por hardware«… que aunque se puede definir bien, puede dar a equivocaciones, aquí la tecnología y los avances del harware tienen mucho que decir.
¿no es suficiente la virtualización? A la virtualización, tan buena, se le sacó una pega que es el rendimiento, siempre se desea un mayor rendimiento y todos los avances en virtualización son precisamente para mejorar esto. De ahí que los fabricantes de hardware han empezado a producir sus máquinas preparadas para dar un mejor rendimiento en entornos virtuales.
Virtualización completa:
Tenemos un Hardware, cualquier hardware, y tenemos el hipervisor que tiene el VMM (Virtual Machine Monitor). Los Sistemas operativos usan drivers genéricos y estos SO permanecen inalterados. Se traduciría en que el hipervisor hace todo el trabajo sin alterar nada. Hoy en dia el rendimiento es bastante alto alto (aún haciendo el trabajo el hypervisor) porque al usar los mismos drivers genéricos que el host el kernel que usan es muy pequeño «Microkernel» y ademas aprovechan cualidades del hardware que cada vez mas esta preparado para la virtualización.
Paravirtualización:
Tenemos un Hardware preparado para ser virtualizado (VT hardware), un hipervisor muy «delgado» y unos sistemas operativos invitados con drivers paravirtualizados. Traduciríamos como que los invitados hablan directamente con el hardware del host ya que este está preparado para ello y el hypervisor apenas interviene. Se consigue una virtualización con mas rendimiento (a día de hoy) que con la completa. Por contra, los SSOO invitados tienen que estar modificados para que trabajen de esta forma.
———–
La verdad es que la virtualización, cada vez esta mas asistida por el hardware (Intel-VT y AMD-V están avanzando mucho en este campo) seguramente estas palabras que estamos definiendo cambiaran su significado con otro mas acorde con las nuevas tecnologías.