🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Entender los hipervisores

Introducción

En este capítulo, nos adentramos en el papel y el funcionamiento de los hipervisores que, junto con las máquinas virtuales, son los dos componentes principales de un entorno de virtualización.

Tras repasar las tecnologías que condujeron al desarrollo del hipervisor moderno, veremos que existen dos tipos de hipervisor, cuyas características distintivas vamos a describir. A continuación, presentaremos los principales hipervisores disponibles en el mercado y daremos una visión general de su funcionamiento.

El principio del hipervisor

Como hemos visto antes, un hipervisor es una fina capa de software instalada en un servidor host (o sistema operativo host), que crea una representación de software de los recursos de hardware del host para su asignación a las máquinas invitadas.

Por tanto, el principio en el que se basa el hipervisor es crear la ilusión para varias máquinas huésped de que controlan individualmente los recursos de hardware de un servidor cuando, en realidad, comparten estos mismos recursos entre sí. Un hipervisor moderno debe garantizar que una máquina virtual funcione como una máquina física y debe permitir la ejecución de cualquier sistema operativo sin modificaciones.

Aunque estos elementos de definición están implementados hoy en día en la mayoría de los hipervisores, se han tenido...

La evolución del hipervisor

1. El programa de control

El Programa de Control (Control Program) introducido por IBM para el sistema CP/CMS en 1968, se puede considerar el primer hipervisor o VMM, para utilizar la terminología de la época.

El término "hipervisor" apareció por primera vez en los años 1960-1970. Es una variante de "supervisor" que, en aquella época, se refería al núcleo de un sistema operativo. El prefijo "super-" expresa superioridad, mientras que "hiper-" indica una posición o intensidad que está "más allá" de lo normal. Por tanto, el hipervisor es el supervisor de supervisores: un hipervisor para virtualizarlos a todos.

Este sistema fue objeto de varias implantaciones y se utilizó principalmente en centros de investigación y laboratorios. No fue hasta 1972 cuando su sucesor, el SO VM/370, se comercializó con la gama de mainframes System/370.

Los sistemas VM se definían mejor como "sistema operativo para máquinas virtuales (Virtual Machine Operating System)". Permitían dividir un mainframe en varias VM, cada una de las cuales ejecutaba su propio sistema operativo (CMS o Conversational Monitor System), de modo que cada usuario tenía la impresión de tener acceso exclusivo al mainframe.

images/04EI01.png

Teddy Bear Mascot, mascota de los sistemas IBM VM adoptada por la comunidad...

Técnicas de virtualización

Según el principio de equivalencia establecido por Popek y Goldberg, el diseño de un hipervisor debe permitir que varios sistemas operativos funcionen simultáneamente en la misma plataforma de hardware, sin ningún tipo de concurrencia.

En informática, "concurrencia" se refiere a una situación en la que varios programas u ordenadores intentan acceder a uno o más recursos al mismo tiempo. Esta situación provoca un conflicto en el acceso a uno o varios recursos compartidos.

Como los sistemas operativos están diseñados para tener un control total sobre el hardware (modo supervisor o privilegiado), se han desarrollado una serie de técnicas de virtualización para evitar que los SO "compitan" por los recursos, de modo que cada uno obtenga lo que quiere.

Antes de profundizar en estas técnicas de virtualización, debemos desviarnos brevemente hacia el funcionamiento de los sistemas operativos.

1. Virtualización y limitaciones del sistema operativo

Un sistema operativo es un conjunto de programas de software (nodo o kernel) que permiten ejecutar programas y gestionar las solicitudes de uso de los recursos de un ordenador. Gracias a un componente conocido como planificador (scheduler), una de las funciones del núcleo es permitir que todos los procesos se ejecuten en tiempos aceptables, aprovechando al máximo los recursos del procesador.

a. Los dos modos del sistema operativo

El kernel es el principal componente de software de un sistema operativo. Consiste en un conjunto de programas que permiten la gestión de recursos y la comunicación entre los componentes de software y hardware de un ordenador. El sistema operativo interactúa con los periféricos a través de controladores, que también son programas que forman parte del kernel.

El sistema operativo actúa como intermediario entre el usuario y el hardware del ordenador. Dado que los usuarios y el sistema operativo comparten recursos de hardware y software, hay que establecer mecanismos para evitar conflictos e impedir la ejecución de software malintencionado, con el fin de garantizar el buen funcionamiento del sistema.

Para resolver este problema, la mayoría de los sistemas operativos distinguen entre dos modos de funcionamiento distintos (modo dual dual...

Tareas del hipervisor

1. Compartir y asignar recursos

Una de las principales tareas del hipervisor es compartir los recursos del host entre varias máquinas virtuales. Mediante diversas técnicas de gestión de recursos, como la programación del tiempo de CPU y la asignación de memoria, el hipervisor garantiza que cada máquina virtual reciba una parte justa de los recursos del host. Por tanto, es responsable de asignar ciclos de CPU, páginas de memoria, espacio de almacenamiento y ancho de banda de red de acuerdo con las prioridades, reservas de recursos y límites configurados.

El reparto y la asignación de recursos se estudiarán en detalle en el capítulo Entender las máquinas virtuales. Aquí nos limitaremos a presentar algunas técnicas de optimización de memoria.

Técnicas de optimización de la memoria

El hipervisor se encarga de que cada máquina virtual disponga del tiempo de CPU que le corresponde y evita que una máquina virtual monopolice los recursos. Lo mismo ocurre con la memoria, cuya asignación gestiona mediante diversas técnicas, como el "memory ballooning".

Esta técnica se utiliza para ajustar dinámicamente la asignación de memoria de las máquinas virtuales. Memory ballooning significa que el hipervisor recupera memoria de máquinas virtuales inactivas o infrautilizadas, para...

Tipos de hipervisor

Existen dos clases de hipervisor, de tipo 1 y de tipo 2. En informática, además de que el nivel 1 suele referirse al hardware, sus nombres no facilitan la comprensión de la diferencia entre ellos.

En las siguientes páginas definiremos cada tipo de hipervisor. A continuación, analizaremos la arquitectura de los hipervisores que representan la mayor parte del mercado actual de soluciones de virtualización.

1. Hipervisores de tipo 1

Un hipervisor de tipo 1, también conocido como hipervisor "nativo" (native) o bare-metal, se instala directamente en el hardware, es decir, se ejecuta sin sistema operativo. En cierto modo, sustituye al SO, ya que es el componente de software que controla directamente el hardware.

images/04EI09.png

Hipervisor de tipo 1

Por tanto, el hipervisor de tipo 1 funciona sin intermediario. Se comunica directamente con los recursos de hardware de la capa física subyacente, lo que lo hace más eficiente que el hipervisor de tipo 2 que, como veremos más adelante, tiene una capa de software adicional.

Debido a su acceso directo al hardware, el hipervisor de tipo 1 ofrece un mejor rendimiento que el hipervisor de tipo 2.

a. Soluciones de virtualización para empresas

Los hipervisores de tipo 1 se caracterizan por su robustez y cuentan con diversos mecanismos de redundancia y tolerancia a fallos. Se trata de software empresarial que puede soportar un número muy elevado de máquinas virtuales en un único host: varias decenas o incluso varios centenares, si el servidor host dispone del hardware adecuado.

En general, se despliegan al menos dos hosts para un número determinado de máquinas virtuales. De esta forma, en caso de fallo (o cuando haya que realizar tareas de mantenimiento), un único host puede soportar toda la carga.

b. Independencia de hardware y software

En el modelo de tipo 1, las operaciones de las máquinas huésped se delegan por completo en el hipervisor, lo que significa que éste no se ve afectado por el comportamiento de las máquinas virtuales.

Una máquina virtual que funcione mal o que esté comprometida por un código malicioso, no puede causar daños a otras máquinas virtuales o al hipervisor, porque es un "contenedor" independiente de los demás componentes del entorno de virtualización. Del mismo modo...

Conclusión

Tras la instalación de ESXi, este capítulo nos ha brindado la oportunidad de comprender mejor las distintas técnicas que intervienen en la ejecución de un hipervisor. Además de repasar las diferentes funciones del hipervisor, hemos dado varios ejemplos de soluciones en el mercado y esbozado sus arquitecturas.

En el siguiente capítulo, Desplegar una máquina virtual, nos proponemos crear una máquina virtual para comprender mejor el papel del hipervisor en este proceso. Realizaremos una instalación interactiva, que nos permitirá comprender mejor la asignación de recursos y posteriormente procederemos a instalar un sistema operativo.