Entendiendo los dispositivos y elementos componentes de una Child Partition en Hyper-V

Recuerdo los viejos tiempos donde para agregar un dispositivo a una máquina, la única herramienta era un destornillador, en tiempos recientes, incluso mediante un aceitado sistema de clips ni destornillador era necesario, pero bien, en este nuevo mundo (virtual) que nos toca vivir... ¿Cómo lidiar con la instalación y configuración de los dispositivos de hardware?

Empecemos por lo básico, el networking.

Para ello deberemos entender un poco la arquitectura interna de Hyper-V

Dispositivos Sintéticos:

Una de las mejoras implementadas dentro de Hyper-V son los dispositivos sintéticos, con este tipo de dispositivo los datos fluyen desde el mismo (digamos un disco o una placa de red) por el Virtual Service Client (VSC) viajando  por el VMBus hacia el Virtual Service Provider (VSP) de la parent partition. Desde el VSP el dato es direccionado al stack IO apropiado corriendo en la parent partition. Eso significa que el hypervisor en si mismo no tiene casi responsabilidad ni utilización alguna en este procedimiento.

Virtualization Service Provider (VSP) . el VSP corre en la parent partition se comunica con los drivers del hardware y actúa como un multiplexor  permitiendo compartir ese dispositivo de hardware para ser usado por la parent partition y las "n" child partitions, si por ejemplo se tienen 10 máquinas virtuales y solo una placa de red física , el VSP se responsabiliza a que las 10 máquinas virtuales puedan compartir de manera segura y eficiente la misma placa de red, además de placas de red este mismo escenario se utiliza para almacenamiento input y video.

Virtualization Service Client (VSC) . el VSC corre en cada child partition, le presenta a la child partition un dispositivo puramente sintético o sea un dispositivo que para la maquina es real  (no emulado) y se comunica por el VM Bus con el VSP.

VMBus. el VMBus es una especie de tubo ultra rapido end-to-end en el bus de memoria que comunica al VSP con el VSC. El VMBus no proporciona Emulación (tema que desarrollaremos luego en este mismo post), el VMBus no se comunica con el hypervisor, solo es un mecanismo de comunicación inter-partition.

 

clip_image001

Dispositivos Emulados:

Este tipo de dispositivos en general son mas lentos, no son extensibles ni escalables, siendo que la virtualización que comienza a ser usado en servicios productivos, los clientes requieren la mejor performance posible, emular hardware viejo y compatible no es exactamente eso, pero ofrece un sistema compatible entendido por todos los sistemas operativos antiguos.

Podemos definir la emulación de dispositivos como un tipo virtualzación de dispositivos de manera tal que esta sea imposible de distinguir de la interfase física análoga .

La emulación de dispositivos es requerida por varios motivos.

Abstracción del SO de la child partition del hardware físico.

Proporcionar al sistema operativo guest una manera de compartir dispositivos tales como almacenamiento y red.

Proporcionar dispositivos análogos a físico bien conocidos por todos los sistemas operativos nuevos y antiguos para asegurar compatibilidad. Algunos de los dispositivos emulados son:

· Intel 440 BX motherboard

· DEC/Intel 21140 network adapter

· S3 Trio video adapter

· Adaptec 7870 SCSI chipset

Como todo en la vida siempre hay pros y contras, veamos:

Pros:

Compatibilidad. este es quizás por lejos el mejor Pro esto asegura compatibilidad con todos los sistemas operativos.

Cons:

Performance. El precio a pagar por la emulación es la carga de trabajo de emulación por parte del hypervisor

Ahora bien, con que se come todo esto?

Es fácil, son los Integration Services ( conocidos como VM  Additions) los que definen que tipo de dispositivo usar, por que ellos son los que proporcionan VMbus y VCS a las child partitions. Entonces la cuenta es simple. ¿Hay ICs para el sistema operativo que vas a instalar? entonces tenés dispositivos sintéticos, ¿no hay? entonces dispositivos emulados de forma que el propio SO pueda detectar y usar los dispositivos emulados que el hypervisor le presenta.

Un claro ejemplo es cuando se crea una child partition para instalar ahi un Windows XP, el wizard de creación no presenta opciones de usar dispositivo sintético o emulado, directamente le asigna una placa de red sintetica, pero no hay ISs para XP aun, entonces sin VMBus ni VSC el XP no puede ver la placa de red. La solución ahí es con la child partition en OFF, eliminar la placa de red sintética y ponerle una emulada (lo que antes se hacia con un destornillador, ahora es con el menu settings de la child partition).

image

para una placa de red emulada

image

En el próximo post daremos una vuelta de tuerca sobre los dispositivos de almacenamiento.