Virtualización de hardware y software: tipos y conceptos clave
1.
2. La virtualización de hardware es una técnica utilizada
desde la década del 60, pero recientemente ha tomado
nuevo impulso, en virtud de los últimos avances de los
procesadores de Intel y AMD y también de la evolución de
varias herramientas de software, muchas de ellas libres.
En este artículo analizaremos brevemente los conceptos
principales relacionados con la virtualización de
hardware, incluyendo las diversas alternativas existentes.
3. Virtualización de hardware
Este es el tipo de virtualización más complejo de lograr. Consiste
en emular, mediante máquinas virtuales, los componentes de
hardware. De esta manera el sistema operativo no se ejecuta
sobre el hardware real sino sobre el virtual.
La gran ventaja de este enfoque es que pueden emularse distintas
plataformas de hardware (por ejemplo, x86 sobre SPARC).
Su principal desventaja es el alto costo de traducción de cada una
de las operaciones de las máquinas virtuales a la máquina
real, pudiendo obtenerse un rendimiento de 100 a 1000 veces
menor.
4. Virtualización a nivel del Sistema Operativo
Este es el otro extremo de la virtualización. En este esquema no se
virtualiza el hardware y se ejecuta una única instancia del sistema
operativo (kernel). Los distintos procesos perteneciente a cada
servidor virtual se ejecutan aislados del resto.
La ventaja de este enfoque es la separación de los procesos de
usuario prácticamente sin pérdida en el rendimiento, pero al
compartir todos los servidores virtuales el mismo kernel no pueden
obtenerse el resto de las ventajas de la virtualización.
5. Paravirtualización (paravirtualization)
La paravirtualización consiste en ejecutar sistemas operativos guests
sobre otro sistema operativo que actúa como hipervisor (host). Los
guests tienen que comunicarse con el hypervisor para lograr la
virtualización.
Las ventajas de este enfoque son un muy buen rendimiento y la
posibilidad de ejecutar distintos sistemas operativos como guests. Se
obtienen, además, todas las ventajas de la virtualización enunciadas
anteriormente.
Su desventaja es que los sistemas operativos guests deben ser
modificados para funcionar en este esquema.
6. Virtualización completa (full virtualization)
La virtualización completa es similar a la paravirtualización pero no
requiere que los sistemas operativos guest colaboren con el hypervisor.
En plataformas como la x86 existen algunos inconvenientes para lograr la
virtualización completa, que son solucionados con las últimas tecnologías
propuestas por AMD e Intel.
Este método tiene todas las ventajas de la paravirtualización, con
el añadido de que no es necesaria ninguna modificación a los
guests.
La única restricción es que estos últimos deben soportar la
arquitectura de hardware utilizada.
7. TIPOS DE VIRTUALIZACION DE
SOFTWARE
Virtualización del Sistema Operativo
El uso de virtualización de nivel-SO o partición (tal y
como LPARs, VPARS, NPARS, Dominios del
Sistema Dinámico, etc.) en las arquitecturas nube
pueden ayudar a resolver algunos de los temas de
seguridad central, privacía, y regulación que
pudieran de otra manera dificultar la adopción del
cómputo cloud.
8. Virtualización de Plataforma
La virtualización de Plataforma permite a los sistemas
arbitrarios de operación y ambientes de operación
resultante correr en un sistema dado. Existen dos modelos
básicos para este sistema de virtualización:
Total virtualización o una simulación completa del
hardware fundamental, y paravirtualización, lo cual
ofrece un modelo “mayormente similar” del hardware
fundamental. Estos están implementados como
hipervisores :
Tipo 1,los cuales corren directamente en el hardware,
e hipervisores
Tipo 2, los cuales corren a nivel superior de un sistema
operativo tradicional.
9. Virtualización de Red
Las técnicas de balanceo de carga han sido un tema
candente en el cómputo cloud porque, conforme los
sistemas físicos y virtuales dentro de la nube escalan, lo
mismo hace la complejidad del manejo de la carga de
trabajo que es ejecutada para entregar el servicio.
Los balanceadores de carga agrupan múltiples servidores y
servicios detrás de las direcciones IP virtuales. Ellos proveen
de una guía basada en recursos de requerimientos de
servicio y recuperación de falla automática cuando el nodo
falla.
Mientras los balanceadores del hardware puedan ejecutar
balanceadores basados en el software, su flexibilidad es
siempre limitada. Los ingenieros terminan también
escribiendo un software que interactúa con el hardware vía
una interfase de usuario sub-óptimo o utilizando un gran
número de computadoras para resolver el problema.
10. Virtualización de Aplicaciones
Existe también un ángulo software para los “contenedores”
dentro de la nube. La tecnología de contenedor Web
implementada en la nube impacta grandemente a la
productividad y flexibilidad del desarrollador.
El contenedor Web es la parte del servidor de aplicación que
maneja servlets, archivos JavaServer™ Page.
Pero no todas las tecnologías contenedor Web son creadas
iguales. Apache Tomcat, por ejemplo, es una tecnología de
contenedor Web de código abierto, pero tiene limitaciones
para los desarrolladores quienes quieren ir más allá de las
aplicaciones Web-tier.