lunes, 12 de septiembre de 2011

Trayendo Hyper-V a Windows 8 [vídeo]

¿Si recuerdan el post de predicciones sobre lo nuevo que podríamos esperar en Windows 8?, bueno luego de eso estuvimos viendo que prepara MS para meterse como Dios manda en el mercado de las tablets. Hace unos días han salido varios post en el blog de Windows 8 (Building Windows 8)  que explican con mas detalles los trabajos que se hacen para llevar adelante varias de estas predicciones. La tecnología de Hyper-V ya ha estado disponible desde hace un tiempo en Windows Server y ahora MS la trae a disposición en las versiones de escritorio de su SO. Sigue quedándose corta por lo que entiendo, considerando que fuera de las versiones conocidas de Windows solo soporta como sistemas guest a SUSE Linux (aunque se reporta que Ubuntu y Fedora pueden ejecutarse, no es oficial). Aplicaciones como Vmware o VirtualBox siguen estando un paso adelante en este sentido, pero el hecho de que venga "de cajón" es ya ganancia (virtual PC tampoco viene con el sistema, tienen que instalársela y solo soporta sistemas guest de Windows y además da mas problemas que otra cosa) . En fin, esperamos (sip todavía hay que esperar) a ver a donde llega MS con esto, pero bienvenido sea, este post es traído desde el susodicho blog. Provecho!.
Pd: Hay varios materiales de este tipo en el blog de Windows 8, así que vendrán más.

 En este post hablaremos de cómo vamos a soportar la virtualización en el sistema operativo "cliente" de Windows. Originalmente lanzado para Windows Server, donde la tecnología ha demostrado ser muy popular y exitosa, queremos llevar la virtualización a un conjunto básico de escenarios para los profesionales que utilizan Windows. Los dos escenarios más comunes en los que nos centramos son primero, en desarrolladores de software que trabajan sobre múltiples plataformas tanto clientes como servidores, y segundo, los profesionales de TI que buscan la administración de clientes y servidores virtualizados de una manera sencilla. Mathew John es un director de programa en nuestro equipo de Hyper-V y el autor de este post. Nótese que, al igual que con todas las características, estamos hablando de la ingeniería de la obra y no del producto final, dado que estas elecciones se hacen mucho más adelante en el proyecto. - Steven PS: No tenía intención de hacer tantos post seguidos así que vamos a volver a un ritmo más sostenible - lo siento si inadvertidamente establecimos las expectativas demasiado altas.  Nos estamos preparando para las compilaciones a tiempo completo en este momento!

Si ud es un desarrollador de software, un administrador de TI, o simplemente un aficionado, muchos de ustedes necesitan ejecutar múltiples sistemas operativos, por lo general en diferentes máquinas. No todos tienen acceso a una gama completa de laboratorios para mantener todas estas máquinas, por lo que la virtualización puede ahorrarles espacio y tiempo.
En el diseño de Windows 8 se trabajó para habilitar Hyper-V, la tecnología de máquinas virtuales que ha sido parte de las últimas dos versiones de Windows Server, para que funcione también en el sistema operativo cliente. En resumen, la tecnología Hyper-V le permite ejecutar más de un sistema operativo x86 de 32 bits o 64 bits al mismo tiempo en el mismo equipo. En lugar de trabajar directamente con el hardware de la computadora, los sistemas operativos se ejecutan dentro de una máquina virtual (VM).

Hyper-V permite a los desarrolladores mantener con facilidad múltiples entornos de prueba y proporciona un mecanismo simple para cambiar rápidamente entre estos entornos, sin incurrir en costes adicionales de hardware. Por ejemplo, liberamos versiones pre-configuradas de máquinas virtuales que contienen versiones antiguas de Internet Explorer para apoyar a los desarrolladores web. El administrador de TI obtiene el beneficio adicional de la paridad de la máquina virtual y una experiencia de gestión común a través de Hyper-V en Windows Server y Windows Client. También sabemos que muchos de ustedes utilizan la virtualización para probar cosas nuevas sin correr el riesgo de hacer cambios en la PC que está utilizando activamente.

Una introducción a Hyper-V
Hyper-V requiere de un sistema de 64 bits que tenga un segundo nivel de traducción de direcciones (Second Level Address Translation LAMA). LAMA es una característica presente en la actual generación de procesadores de 64 bits de Intel y AMD. Usted también necesitará una versión de 64 bits de Windows 8, y por lo menos 4 GB de RAM. Hyper-V soporta la creación de los dos sistemas operativos de 32 bits y 64 bits en las máquinas virtuales.
La memoria dinámica de Hyper-V permite que la memoria que necesita la máquina virtual sea asignada y de-asignada dinámicamente (ud especifica un mínimo y máximo) y compartir la memoria no usada entre las máquinas virtuales. Puede ejecutar 3 o 4 máquinas virtuales en una máquina que tenga 4 GB de RAM pero se necesita más memoria RAM para 5 o más máquinas virtuales. En el otro extremo del espectro, también puede crear máquinas virtuales de gran tamaño con 32 procesadores y 512 GB de RAM.
En cuanto a la experiencia del usuario con las máquinas virtuales, Windows proporciona dos mecanismos para echar un vistazo a la máquina virtual: la consola de máquina virtual y la Conexión a Escritorio remoto.
La consola de máquina virtual (también conocido como VMConnect) es una vista de la consola de la máquina virtual. Proporciona una visión de un solo monitor de la máquina virtual con una resolución de hasta 1600x1200 en color de 32 bits. Esta consola te ofrece la posibilidad de ver proceso de arranque de la máquina virtual.

Para una experiencia más rica, se puede conectar a la máquina virtual utilizando la Conexión a Escritorio remoto (RDC). Con RDC, la máquina virtual se aprovecha de las capacidades presentes en tu PC física. Por ejemplo, si usted tiene varios monitores, entonces la máquina virtual puede mostrar los gráficos en todos los monitores. Del mismo modo, si usted tiene una interfaz táctil multipunto en su PC, la máquina virtual puede utilizar esta interfaz para darle una experiencia táctil. La máquina virtual también tiene capacidad multimedia mediante el aprovechamiento de los altavoces y el micrófono del sistema físico. El sistema operativo raíz (*) (es decir, el principal sistema operativo de Windows que administra la VM) también puede compartir su portapapeles y carpetas con las máquinas virtuales. Y, por último, con RDC, también puede conectar cualquier dispositivo USB directamente a la máquina virtual.
Para el almacenamiento, puede agregar varios discos duros a los controladores IDE o SCSI disponibles en la máquina virtual. Puede utilizar discos duros virtuales (.VHD o. archivos VHDX) o discos reales que puede pasar directamente hacia la máquina virtual. Los VHDs también pueden residir en un servidor de archivos remoto, haciendo fácil mantener y compartir un conjunto común de discos duros virtuales predefinidos en un equipo.

La capacidad "Live Storage Move" de Hyper-V ayuda a sus máquinas virtuales a ser bastante independientes del almacenamiento subyacente. Con esto, usted puede mover el almacenamiento de la máquina virtual desde un disco local a otro, a una memoria USB o a un recurso compartido de archivos remoto sin necesidad de parar la máquina virtual. He encontrado que esta característica es muy útil para implementaciones rápidas: cuando necesito una máquina virtual de forma rápida, inicio una desde una biblioteca virtual mantenida en un recurso compartido de archivos y luego paso el almacenamiento de la máquina virtual a mi disco local.
Otra gran característica de Hyper-V es la capacidad de tomar instantáneas de una máquina virtual mientras se está ejecutando. Una instantánea guarda todo lo relacionado con la máquina virtual lo que le permite volver a un punto anterior en el tiempo en la vida de una máquina virtual, y es una gran herramienta cuando se intentan depurar problemas difíciles. Al mismo tiempo, la tecnología Hyper-V de máquinas virtuales tiene todos los beneficios de administración de Windows. Windows Update puede parchear componentes Hyper-V, por lo que no es necesario establecer procedimientos adicionales de mantenimiento. Y Windows tiene las mismas capacidades inherentes a la tecnología Hyper-V instaladas.

Dicho esto, el uso de la virtualización tiene sus limitaciones. Las características o aplicaciones que dependen de hardware específico no funcionan bien en una máquina virtual. Por ejemplo, Windows BitLocker y Measured Boot, que dependen de la TPM (Trusted Platform Module), podrían no funcionar correctamente en una máquina virtual, y juegos o aplicaciones que requieren un procesamiento de las GPUs (sin proporcionar el software de reserva) podrían no funcionar bien tampoco. Además, las aplicaciones que dependen de temporizadores sub 10 ms, es decir, aplicaciones de alta precisión, sensibles a la latencia tales como aplicaciones de mezcla de música en vivo, etc pueden tener problemas de funcionamiento en una máquina virtual. El sistema Operativo raíz también está en la parte superior de la capa de virtualización Hyper-V, pero es especial, ya que tiene acceso directo a todo el hardware. Esta es la razón por las aplicaciones con requisitos de hardware especiales siguen trabajando sin obstáculos en el sistema operativo root, pero las aplicaciones sensibles a la latencia, de alta precisión podrían tener problemas de funcionamiento en sistema operativo raíz.

Como recordatorio, todavía tendrá que licenciar cualquier sistema operativo que utilize en las máquinas virtuales.

He aquí un rápido recorrido a través de la forma en que el Hyper-V trabaja en Windows 8.



Soporte a la comunicación de la VM a través de tarjetas de red inalámbrica.
Como se vio en la demostración, la creación de un conmutador de red externo es tan simple como seleccionar un adaptador de red física (NIC) a partir de una lista desplegable y hacer clic en Aceptar. Esto ya ha funcionado bien para Windows Server Hyper-V, pero para tener resultados similares en Windows 8, es necesario que funcione con tarjetas de red inalámbrica, un nuevo desafío.

¿El problema?
El switch virtual en Hyper-V es un "switch de capa 2", lo que significa que conmuta (es decir, determina la ruta que toma un determinado paquete de Ethernet) usando las direcciones MAC que identifican cada tarjeta de red (física y virtual) del adaptador. La dirección MAC de la fuente y el destino de las máquinas se envían en cada paquete Ethernet y un switch de capa 2 lo utiliza para determinar adónde se debe enviar el paquete entrante. Un conmutador virtual externo está conectado con el mundo exterior a través de la NIC física. Los paquetes Ethernet de una máquina virtual destinados a una máquina en el mundo externo se envían a través de esta tarjeta de red física. Esto significa que la tarjeta de red física debe ser capaz de transportar el tráfico de todas las máquinas virtuales conectadas a este conmutador virtual, lo que implica que los paquetes que circulan a través de la tarjeta de red física contendrá múltiples direcciones MAC (una para cada NIC virtual de las VM). Esto es soportado en NICs físicos cableados (poniendo la tarjeta en modo promiscuo), pero no es compatible con tarjetas de red inalámbricas dado que el canal inalámbrico establecido por la NIC WiFi y su punto de acceso solo permite paquetes Ethernet con la dirección de la tarjeta de red WiFi de MAC y nada más. En otras palabras, la tecnología Hyper-V no podía utilizar tarjetas de red WiFi para un switch externo si continuábamos utilizando la arquitectura actual de switch virtual.

Figura 1: Red entre la máquina virtual y una máquina externa con conexión por cable


La solución
Para evitar esta limitación, se utilizó la solución de puente de Microsoft, el cual implementa un proxy ARP (para IPv4) y Neighbor Discovery proxying (para IPv6) para reemplazar la dirección de la NIC virtual "con la dirección MAC del adaptador inalámbrico MAC para los paquetes salientes. El puente mantiene una asignación interna entre la dirección IP del NIC virtual y su dirección MAC para asegurar que los paquetes que vienen del mundo exterior son enviados a la tarjeta de red virtual correspondiente.
Hyper-V integra el puente como parte de la creación del switch virtual de manera que cuando se crea un switch virtual externo mediante un adaptador WiFi, Hyper-V:

  1. Crea un puente adaptador único conectado al adaptador WiFi
  2. Crear el conmutador virtual externo
  3. Enlaza el switch virtual externo para utilizar el puente, en lugar del adaptador WiFi directamente
En este modelo, la conmutación Ethernet todavía ocurre en el conmutador virtual, y la traducción MAC se produce en el puente. Para el usuario final que crea una red externa, el flujo de trabajo es el mismo sea que seleccione una tarjeta inalámbrica o cableada.

Figura 2: Creación de redes entre la VM y el equipo externo utilizando la conexión Wi-Fi


En conclusión, llevando la tecnología Hyper-V de Windows Server a Windows Client, hemos sido capaces de ofrecer una tecnología de virtualización robusta diseñada para la escalabilidad, seguridad, fiabilidad, y las necesidades de rendimiento de la mayoría de los centros de datos. Con Hyper-V, los desarrolladores y profesionales de TI pueden ahora crear un entorno más eficiente y rentable para el uso y las pruebas en varios equipos.