Características avanzadas de Hyper-V

Aunque la novedosa arquitectura de Hyper-V permite obtener un entorno de virtualización estable, seguro y de gran rendimiento, existen una serie de características adicionales que permiten lograr un funcionamiento aún más optimizado de Hyper-V.

Algunas de estas características derivan del aprovechamiento de tecnologías que los fabricantes de hardware, especialmente de procesadores y de controladoras de red, incluyen en sus productos, mientras que otras se basan en el aprovechamiento de algunas de las tecnologías incluidas en Windows Server 2008 R2.

 SLAT

Hyper-V implementa una nueva característica denominada Second-Level Address Translation, o SLAT.

SLAT se aprovecha de una funcionalidad específicamente orientada hacia la virtualización, de la que disponen sólo algunos procesadores, y que les permite llevar a cabo directamente algunas funciones de administración de memoria sobre las máquinas virtuales, reduciendo el coste computacional derivado de dichas operaciones (principalmente traducciones de direcciones de memoria entre máquina virtual y hardware real).

De este modo, se reduce considerablemente el tiempo de CPU que los procesos del hipervisor deben dedicar a estas tareas, y además se ahorra memoria para cada máquina virtual en ejecución, por lo que el equipo físico puede hacer más trabajo usando menos recursos del sistema.

SLAT sólo está disponible si se usan procesadores Intel con la funcionalidad Extended Page Tables (EPT), o procesadores AMD con la funcionalidad Rapid Virtualization Indexing (RVI) o la funcionalidad Nested Page Tables (NPT).

Nota: no todos los procesadores con virtualización asistida por hardware (HAV) soportan estas características avanzadas.

El uso de SLAT es especialmente importante cuando se van a virtualizar sistemas con un gran consumo de memoria, como pueden ser servidores de terminal server o bases de datos.

SLAT también es necesario para poder hacer uso de las nuevas características RemoteFX, incluidas en Windows Server 2008 R2, y que enriquecen enormemente la experiencia multimedia de los usuarios de entornos virtuales.

 CPU Core Parking

CPU Core Parking es una característica que permite reducir significativamente el consumo de potencia eléctrica de los procesadores físicos sobre los que se ejecutan máquinas virtuales.

CPU Core Parking permite a Windows Server 2008 R2 consolidar los procesos físicos en ejecución en el menor número posible de núcleos de procesador, permitiendo que los núcleos inactivos entren en suspensión hasta que sean necesarios.

Esta característica general del sistema operativo es especialmente útil cuando se aplica a entornos de virtualización basados en Hyper-V.

De esta manera por ejemplo si tenemos 4 procesadores de 4 núcleos cada uno, y 16 máquinas virtuales en ejecución, con un procesador lógico cada una, es posible que en momentos de bajo consumo las 16 máquinas quedan asignadas a los núcleos de unos pocos procesadores, quedando el resto desactivados y por lo tanto prácticamente sin consumo.

Nota: los procesadores lógicos de las máquinas virtuales se ejecutan sobre núcleos de procesadores físicos, pero no de manera exclusiva, es decir, varias máquinas virtuales pueden compartir el mismo núcleo físico para sus procesadores lógicos.


Figura 1.- Ejemplo de implementación de CPU Core Parking en Windows Server 2008 R2 con Hyper-V

 VMQ

Hyper-V también puede aprovecharse de algunas tecnologías incluidas en Windows Server 2008 R2 orientadas a mejorar el desempeño de los equipos en red. Este es el caso de la característica de Hyper-V Virtual Machine Queue (VMQ).

En la arquitectura de Hyper-V el hipervisor debe ocuparse de las tareas de copia de datos desde y hacia el switch virtual, implementado sobre una controladora de red física en la partición primaria, y del proceso de enrutado de tráfico entre las distintas máquinas virtuales usando el VMBus (bus interno de comunicación entre todas las particiones de un servidor Hyper-V).

VMQ descarga al hipervisor de estas tareas, dejando que sea el hardware de la controladora de red sobre la que se implementa el switch virtual el que las lleve a cabo.

Para ello, por supuesto, es preciso que la controladora de red sea compatible con VMQ.

VMQ crea sobre el adaptador físico varias colas de recepción, cada una de las cuales tiene asignada la MAC de un adaptador virtual de red y una interrupción de procesador pertenecientes a una máquina virtual.

Usando su propio hardware la tarjeta de red física coloca cada paquete en la cola adecuada, eliminando la lógica de enrutado asociada al switch virtual de Hyper-V.

Además VMQ también implementa un espacio de memoria compartido entre todas las particiones, con lo cual la controladora de red física es capaz, usando DMA (Direct Access Memory, una tecnología ya existente en los sistemas operativos) de copiar la información directamente a la memoria de cada máquina virtual, sin necesidad por lo tanto de copiar la información primero en el switch virtual para que este la haga llegar a la máquina virtual correspondiente a través del VMBus.


Figura 2.- Ejemplo de arquitectura de funcionamiento de Hyper-V con VMQ

Entre las ventajas derivadas del uso de VMQ están el mayor rendimiento de los accesos de red, el menor consumo de CPU de las máquinas virtuales y el aumento de las capacidades de escalabilidad de las infraestructuras virtualizadas.

 Jumbo frames

Aumentar el tamaño de las tramas de información que viajan a través de la red permite reducir el consumo de recursos asociado al procesamiento de la información que se trasmite a través de la red.

La información a transmitir debe ser procesada y dividida en bloques, y a estos bloques se les debe añadir información de control, además de información de red. El resultado es una trama.

Cuanto mayor sea la trama menor número de ellas serán necesarias, y por lo tanto menos veces debe procesarse la información a transmitir, y menos veces se deben añadir datos de control y de red; en consecuencia cuanto mayor sea la trama mayor rendimiento por bit se obtiene de la transmisión por red.

Sin embargo las tramas no pueden tener tamaños arbitrarios, ya que tienen que atravesar múltiples redes con diferentes protocolos implementados, y tienen que pasar por diferentes dispositivos de red. Por este motivo los sistemas operativos limitan el tamaño máximo de las tramas que generan.

El tamaño máximo permitido de una trama en un sistema operativo se denomina Maximum Transmission Unit (MTU), y su valor depende, entre otras cosas, del protocolo de red usado.

Para el caso de sistemas operativos Windows trabajando sobre interfaces de red fast ethernet (100 Mbps) un valor típico de MTU es 1514 bytes (1500 bytes si se cuenta sólo el campo información de la trama).

Desde Windows Server 2008 se soporta el uso de las denominadas "Jumbo frames", o tramas gigantes, que son tramas de tamaño mucho mayor que los permitidos por los MTU habituales. Valores típicos del campo información de las jumbo frames son 4000 y 9000 bytes, aunque puede haber otros.

Usando jumbo frames de 9000 bytes se han llegado a obtener mejoras en el rendimiento de red de hasta el 20 %; además el rendimiento de los procesadores aumenta ya que no deben atender tantas llamadas de la pila de red.

Nota: aunque se configure el uso de jumbo frames para todo el tráfico, la mayoría de redes que componen Internet no lo soportan, por lo que al llegar a los routers las tramas gigantes serán troceadas en tramas más pequeñas. Por lo tanto las ventajas de rendimiento en el uso de jumbo frames se dan sobre todo en la comunicación de red de área local.

Desde Windows Server 2008 R2 también se soporta el uso de jumbo frames en los adaptadores de red de las máquinas virtuales.

Para poder usar jumbo frames en Hyper-V es necesario que ambos tipos de adaptadores, físicos y virtuales, se configuren para utilizarlos; además se debe tener en cuenta que no se pueden configurar jumbo frames en los adaptadores de red virtuales de tipo heredado.


Figura 3.- Opciones de configuración de jumbo frame en un adaptador de red real