Entendiendo la arquitectura de Hyper V

 

En anteriores artículos he comentado que Microsoft hyper v en todas sus variantes si es un hypervisor de tipo 1 debido a que hay una fina capa de software llamada hypervisor que interactúa con el hardware directamente y que después están las particiones virtuales, ya sea la partición padre ( administración y drivers) o las particiones hijas.

Hemos comentado también que este acercamiento al hypervisor es diferente al que hace vmware ya que este usa un kernel monolítico en lugar del microkernel de hyperv.

La ventaja de este microkernel, en la implementación de Microsoft , son los drivers y el hardware, es decir, puedes montar casi en cualquier portátil un hyperv mientras que vmware es algo mas complejo y requiere otro tipo de hardware ( se que también se pueden hacer apaños para que esxi funcione en un pc) No digo que se use para producción un portátil, solo digo que se puede instalar y por tanto aprender sin tener 2 servidores y una cabina especifica para vmware.

En vmware al realizar ellos cada driver tienen una lista de compatibilidad mas reducida y para hardware mas caro ( mejor en prestaciones por supuesto), en cambio en hyperv puedes poner casi cualquier cosa porque los drivers a utilizar son los de Windows 2008 y son los fabricantes del hardware los que escriben y mantienen los drivers.

A titulo personal pienso que vmware, en este momento, es el líder de la carrera de virtualización superando a Microsoft, que se le acerca peligrosamente con hyper v 3, Los de Redmond no pueden competir en calidad y madurez con vmware pero si pueden hacerlo en precio, sale bastante mas barato virtualizar con Microsoft que con vmware.

Es decir, no es lo mismo tener un Ferrari que un Opel, sin desprestigiar a la marca, pero igual me vale con mi Opel para realizar todos mis desplazamientos y además me costara menos que un Ferrari. No obstante, si pudiéramos, todos tendríamos un Ferrari. Pero estamos en época de crisis……

Como una imagen vale mas que mil palabras y este post va sobre como es la implementación de Microsoft aquí os presento…….arquitectura de hyperv:

 

image

Podemos observar la capa de hardware, el hypervisor y la partición padre con los drives (es una vm) y las maquinas virtuales hijas.

El proceso para llegar a este modelo es el siguiente:

  • Disponemos de un equipo con un hardware en concreto
  • Disponemos de un 2008 server y lo instalamos, la arquitectura quedaría así:
    image
    En la imagen vemos que es el SO el que interactúa con el hw
  • Instalamos el rol de hyper v y la arquitectura cambia, pasando el so a convertirse en otra maquina virtual mas manejada por el hypervisor, siendo la partición padre y la que va a administrar el sistema de virtualización:
    image

Si añadimos maquinas virtuales, pasamos a la primera imagen. Esto seria la arquitectura de hyperv a alto nivel,un escalón mas detallado podría ser el siguiente:

image

En esta imagen vemos de una manera mas detallada los componentes de este sistema de virtualización. vamos a ir repasándolos:

En la parte inferior de la imagen vemos el hardware y la capa de software, denominada, hypervisor, la cual interactúa con el hardware.

En la parte superior de la imagen, vemos que tenemos una división, que forma 2 partes :

  • La partición padre, a la izquierda
  • La partición hija, a la derecha

A su vez en cada una de las partes podemos observar 2 modos de usuario, en vertical:

  • Kernel mode,en la parte inferior de cada partición
  • User mode en,  la parte superior de cada partición

Vamos a empezar primero viendo los componentes de la partición padre desde el kernel mode hasta el user mode de izquierda a derecha:

Modo kernel de la partición padre:

Server Core y Windows Kernel ->  Corazón del sistema de Microsoft. No confundir con la instalación en modo core
Drivers Controladores del sistema operativo y de los periféricos del equipo
VSP  Virtual Service Provider: Es la parte del sistema de virtualización que permite que las particiones hijas utilicen los drivers de la partición padre y por tanto el hardware del sistema.

Modo usuario partición padre:


WMI Provider/VM Services: Partes importantes del sistema que son usadas para poder manejar el entorno virtual, a través del administrador de hyperv o System Center Virtual Machine Manager
VM Worker Procesess: Existe un trabajo por cada maquina virtual alojada en el host.

Podemos apreciar en el modo kernel de la partición hija:

Windows Kernel ->  Corazón del sistema de Microsoft invitado.
Enligments: Integration Components  Software que mejora la experiencia de usuario en las vm. Mejora los drivers por defecto que trae la vm, tras ser instalada. No existen integration components para todos los sistemas operativos
VSC  Virtual Service Clients: Drivers sintéticos de la VM. Se conectan con los Drivers reales a través  de VSP. Esta conexión se realiza mediante el vmbus que explicaremos a continuación

Modo usuario partición hija:


Applications Aplicaciones del sistema operativo invitado/virtual.

Un poco mas abajo y ya en la capa del hypervisor podemos observar el vmbus
VMBUS: es una conexión punto a punto entre la partición padre y cada una de las particiones hijas, permite que los datos fluyan por el, entre cada partición hija y la partición padre.
Si una de las maquinas virtuales (partición hija) tiene que utilizar una tarjeta de red del host donde se aloja dicha vm, los datos viajaran por el vmbus entre la partición padre y dicha partición hija.
El vmbus del hypervisor se ejecuta en Ring 1 en lugar de en Ring 0, permitiendo a la partición hija correr en ring0, como si de un equipo no virtualizado se tratara. Aquí entra en juego DEP ( por esto es un requerimiento en el hardware del host) que se encarga de proteger el vmbus e impide que un atacante pueda saltar a ring0 y poder de estar manera atacar la partición padre y las otras particiones hijas o maquinas virtuales alojadas en el host.

 

Se que es teoria y que cuesta un poco asimilar tanta en tan poco. Cualquier duda o pregunta que surja no dudeis en preguntarla.

 

Los proximos post sera mas practicos.

 

Espero que te haya servido.

Un saludo

Deja un comentario

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

Time limit is exhausted. Please reload the CAPTCHA.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.