¿Qué son los Hipervisores?

El hipervisor, también llamado monitor de máquina virtual (VMM), es el núcleo central de algunas de las tecnologías de virtualización de hardware más populares y eficaces, entre las cuales se encuentran las de Microsoft: Microsoft Virtual PC, Windows Virtual PC, Microsoft Windows Server e Hyper-V.

Los hipervisores son aplicaciones que presentan a los sistemas operativos virtualizados (sistemas invitados) una plataforma operativa virtual (hardware virtual), a la vez que ocultan a dicho sistema operativo virtualizado las características físicas reales del equipo sobre el que operan.

Los hipervisores también son los encargados de monitorizar la ejecución de los sistemas operativos invitados.

Con el uso de hipervisores es posible conseguir que múltiples sistemas operativos compitan por el acceso simultáneo a los recursos hardware de una máquina virtual de manera eficaz y sin conflictos.

Existen tres tipos principales de hipervisores en el mercado:

i) Hipervisores de tipo 1 (También llamados nativos, unhosted o bare-metal): en ellos el hipervisor se ejecuta directamente sobre el hardware físico; el hipervisor se carga antes que ninguno de los sistemas operativos invitados, y todos los accesos directos a hardware son controlados por él.

Aunque esta es la aproximación clásica y más antigúa de la vitualización por hardware, actualmente las soluciones más potentes de la mayoría de fabricantes usa este enfoque. Es el caso de Microsoft Hyper-V, Citrix XEN Server y VMWare ESX-Server.

Nota: es muy frecuente que a los hipervisores en general se les aplique el término VMM (Monitores de máquina virtual), mientras que el término «Hypervisor» se reserva para los hipervisores de tipo 1.

ii) Hipervisores de tipo 2 (también llamados hosted): en ellos el hipervisor se ejecuta en el contexto de un sistema operativo completo, que se carga antes que el hipervisor. Las máquinas virtuales se ejecutan en un tercer nivel, por encima del hipervisor.

Son típicos de escenarios de virtualización orientada a la ejecución multiplataforma de software, como en el caso de CLR de .NET o de las máquinas virtuales de Java.

iii) Hipervisores híbridos: en este modelo tanto el sistema operativo anfitrión como el hipervisor interactúan directamente con el hardware físico.

Las máquinas virtuales se ejecutan en un tercer nivel con respecto al hardware, por encima del hipervisor,
pero también interactúan directamente con el sistema operativo anfitrión.

Es la aproximación usada en Microsoft Virtual PC, Microsoft Virtual Server, Parallels, VirtualBox, VMWare Server…

Nota: en algunas clasificaciones es posible que se incluyan los VMM de tipo híbrido dentro de los de tipo 2.

Los hipervisores de tipo 1 a su vez pueden ser de dos tipos:

i) Monolíticos: son hipervisores que emulan hardware para sus máquinas virtuales.

Esta aproximación, usada por productos como VMWare ESX, obliga a usar una gran cantidad de código que se interpone entre los recursos físicos reales y las operaciones de acceso a ellos efectuadas por las máquinas virtuales.

El proceso que sigue una llamada a hardware en un sistema virtualizado usando un hipervisor de tipo monolítico es:

1) El hardware emulado debe interceptar la llamada.
2) El VMM redirije estas llamadas hacia los drivers de dispositivo que operan dentro del hipervisor, lo cual requiere de numerosos cambios de contexto en el código de la llamada.
3) Los drivers del hipervisor enrutan la llamada hacia el dispositivo físico.

Este funcionaminto obliga a desarrollar drivers específicos para el hipervisor de cada componente hardware.

ii) De MicroKernel: en esta aproximación el hipervisor se reduce a una capa de software muy sencilla, cuya única funcionalidad es la de particionar el sistema físico entre los diversos sistemas virtualizados.

Con esta manera de funcionar los hipervisores de microkernel no requieren de drivers específicos para acceder al hardware.

En el caso de Hyper-V, que es la solución de virtualziación de Microsoft basada en hipervisor de tipo 1 de microkernel, el acceso a los recuros físicos se hace desde la partición primaria, usando los drivers nativos de Windows Server 2008 R2.

En las particiones hija se utilizan drivers sinténticos, que son simplemente enlaces a los drivers reales ubicados en la partición primaria.

De esta manera los hipervisores de microkernel no sólo aumentan el rendimiento al reducir el código intermedio y el número de cambios de contexto necesarios, sino que también aumentan la estabilidad de los sistemas, al haber menos componentes, y sobre todo la seguridad, al reducir la superficie de ataque del hipervisor.

Written by

2 Comments to “¿Qué son los Hipervisores?”

  1. Byron Orbea dice:

    La parte teórica e ayudo mucho, pero veo que esta parcializado a dar una buena imagen de Microsoft y su producto Hyper-V.

    • datakeeper dice:

      Hola:
      Muchas gracias por dejarnos tus comentarios.
      Aunque trabajamos habitualmente con las tres principales tecnologías de virtualización (VMWare, Hyper-V y Citrix), ciertamente Hyper-V es el producto de virtualización en el que más focalizada está nuestra empresa, y por ello el artículo hace hincapié en lo que estimamos son algunas de sus ventajas frente a otras arquitecturas.
      Tomamos nota de tu crítica y trataremos de ser más objetivos en próximos artículos.
      Saludos.

Leave a Reply to Byron Orbea

Message