Arquitectura de Hipervisor de Hyper-V

Hyper-V es la tecnología de virtualización de hardware basada en el uso de hipervisor de tipo 1 de microkernel de Microsoft.

El hipervisor de Hyper-V, o simplemente Hipervisor, es la plataforma específica de virtualización que permite a varios sistemas operativos ejecutarse sobre el mismo hardware de manera aislada y compartiendo el acceso a los recursos físicos.

El hipervisor de Hyper-V consigue el aislamiento entre las distintas máquinas virtuales mediante el uso de particiones, que se definen como la unidad lógica de aislamiento soportada por el Hipervisor y en el contexto de la cual se ejecuta un sistema operativo virtualizado.

En los sistemas Hyper-V siempre existe una partición especial denominada partición primaria.

En esta partición es donde se va a ejecutar la pila de virtualización, que contiene todos los procesos, drivers y canales de comunicación a través de los cuales todas las particiones, incluida la primaria, acceden directamente a los recursos hardware.

La partición primaria es la primera que se crea, y en el caso de usar el rol de Hyper-V será una partición con el sistema operativo Windows Server 2008 R2 instalado (la instalación puede ser tanto en modo completo como en modo server core).

En el caso de usar Hyper-V Server 2008 R2, la partición primaria sólo contendrá este producto, que es un conjunto de software independiente específicamente diseñado para ejecutar la virtualización con Hyper-V.

El resto de particiones de un servidor de Hyper-V se denominan particiones hija.

 Elementos de la arquitectura de Hyper-V

i) Gestión de procesador: las particiones no tienen acceso al procesador físico ni pueden manejar interrupciones, en su lugar acceden a una vista virtual del procesador y se ejecutan en una región de memoria virtual de uso exclusivo para cada sistema operativo virtual.

El Hipervisor maneja las interrupciones del procesador, redireccionándolas hacia la partición adecuada en cada caso.

ii) Gestión de los espacios de memoria: Hyper-V usa un método de aceleración que permite remapear rápidamente los espacios de memoria física en los espacios de memoria virtuales usados por las particiones hijas. Este método se denomina Input Output Memory Managemnt Unit (IOMMU).

iii) Gestión de dispositivos: las particiones hija tampoco tienen acceso a otros dispositivo físicos, como el disco duro, la controladora de vídeo o la controladora de red. En su lugar acceden a una representación virtual de estos dispositivos, denominada dispositivos virtuales, o VDevs.

iv) Gestión de comunicación entre particiones: las peticiones que los sistemas operativos virtuales hacen a sus VDevs deben ser redirigidas a los dispositivos físicos correspondientes. Esta redirección se hace a través del VMBus, que es un canal de comunicación entre particiones que traslada las peticiones hechas a VDevs en las particiones hijas, a peticiones a los drivers reales de dispositivo físico que operan en la partición primaria.

v) Gestión de accesos a recursos: en la partición primaria se ejecutan unos servicios que se encargan de manejar las peticiones de accesos a recursos que llegan desde las particiones fijas a través del VMBus; dichos servicios son los Virtualization Service Providers, o VSPs.

Análogamente en las particiones hijas se deben ejecutar también servicios que se encarguen de que las peticiones a los VDevs se encaucen adecuadamente hacia el VMBus; dichos servicios son los Virtualization Service Consumers, o VSCs.

Nota: estos procesos son completamente transparentes para el sistema operativo invitado.

vi) Procesos de entrada y salida mejorados (Enlightened I/O): se trata de una tecnología de Hyper-V aplicable a los VDevs relacionados con los subsistemas de entrada y los de salida (concretamente almacenamiento, red y gráficos).

Enlightened I/O es una implementación a nivel de sistema operativo de protocolos de comunicación de alto nivel específicamente diseñada para su uso con virtualización, y que opera directamente con VMBus, sin utilizar ninguna capa de emulación intermedia. De esta manera se consigue una comunicación más eficiente y un aumento del rendimiento.

Para conseguir esto los sistemas operativos invitados deben modificar su operativa de gestión I/O, y por esta razón el uso de Enlightened I/O sólo está disponible para algunos sistemas operativos que, o bien por diseño ya están preparados para interactuar directamente con VMBus (Caso de Windows 7 o Windows Server 2008 R2), o bien pueden ser modificados para hacerlo. En este segundo grupo estarían los sistemas operativos para los cuales Microsoft dispone de un paquete de servicios de integración de Hyper-V.


Figura 1 .- Arquitectura de funcionamiento de Hyper-V

 Virtualización asistida por hardware

Hyper-V se ejecuta sólo sobre sistemas físicos con soporte para virtualización asistida por hardware, o HAV.

Esta característica se encuentra disponible por ejemplo en procesadores Intel con la tecnología Intel-VT, en procesadores AMD con la tecnología AMD-V, y en procesadores VIA con la tecnología Via-VT.

Además de incluir procesadores con esa tecnología la placa base del servidor también debe soportarla, y por supuesto debe de estar activa.

El uso de hardware HAV permite un uso mucho más eficiente y controlado de los recursos físicos del servidor de Hyper-V, ya que parte de las operaciones necesarias para acceder a los recursos físicos pueden ser realizadas directamente por el propio hardware.


Figura 2 .- Diferencias entre virtualizar con hardware HAV o con hardware no HAV