Unitec virtualización

Preview:

DESCRIPTION

Presentación sobre Virtualización, preparada para la Semana de Ingenierías 2014, UNITEC

Citation preview

Si un sueño se siente real, entonces ¿cómo

se siente un sueño después de que crees

que te has despertado del

sueño? ¿Y si sigue pasando?

VIRTUALIZACIÓN

Egdares Futch H.Agosto 2013

¿Qué es Virtualización?• Real vs. Virtual

– Cuentan con una esencia o efecto similar– “Formalmente” son diferentes

• Es un marco de referencia (idea/concepto) que combina o divide recursos para presentar una vista transparente de uno o más – Particionamiento de hardware/software– Simulación parcial o completa de una máquina– Emulación (igual, parcial o completa)– Tiempo compartido (cualquier tipo de compartir)

• En general, puede ser cualquier mapeo de M-a-N (M recursos “reales”, N recursos “virtuales”)

Mapeos

• 1 -> N– Multitasking

• M -> 1– Grid Computing, Clustering

• M -> N– Máquinas virtuales

No es un concepto nuevo

• Concepto con más de 40 años– IBM 7044

• Compatible Time Sharing System (CTSS)– M.I.T. – Atlas

Proyect

• Popek y Goldberg establecieron en 1974 los requerimientos para una arquitectura virtualizable

Requerimientos para una arquitectura virtualizable – Popek & Goldberg

• Equivalencia/Fidelidad– Un proceso corriendo bajo un Administrador de Máquina Virtual

(VMM) debe mostrar comportamiento idéntico a cuando se ejecuta directamente en una máquina equivalente

• Control de recursos/Seguridad– El Administrador de Máquina virtual (VMM) debe estar en control

completo de los recursos virtualizados

• Eficiencia/Desempeño– Una gran proporción de instrucciones de máquina deben ser

ejecutadas sin intervención del Administrador de Máquina Virtual (VMM)

¿Para qué podemos usar virtualización?

• Consolidación de servidores• Consolidación de aplicaciones/reducción de

licenciamiento• Hardware virtual• Debugging• Máquinas de propósito dedicado (Appliances)• Pruebas/Aseguramiento de Calidad• Recuperación de desastres

Hardware

Kernel

Librerías de Usuario

Aplicaciones

Llamadas a un API

System Calls

Instrucciones de hardware

User Space

Kernel Space

Si analizamos una arquitectura apilada

Virtualización

Virtualización

Virtualización

ConceptosVirtualización completaParavirtualización

“Virtualización" de sistema operativo

Técnicas de virtualización en hardware

• Arquitectura del Conjunto de Instrucciones (Instruction Set Architecture)– Emular el ISA en software

• Interpretar, traducir al ISA anfitrión (si se requiere)• Dispositivos implementados en software• Generalmente es ineficiente• Ejemplo: SPIM, el emulador de MIPS32

• Capa de abstracción de hardware (Hardware Abstraction Layer – HAL)– Entre “máquina real” y “emulador”– Maneja arquitecturas no virtualizables (validar, insertar código)

Ejemplos de virtualización de conjunto de instrucciones

• Traducción binaria a espacios de hardware

• Procesador Crusoe (Trasmeta)– Tecnología Code

Morphing interpretaba diversos conjuntos de instrucciones

MAME (Emulación)

Bochs

• Simulador de x86 (386, 486, Pentium, PPro)

• Corre sobre x86, PowerPC, Alpha, SPARC y MIPS

• Corre Linux, MS Windows, BSD, FreeBSD, OpenBSD, etc.

Qemu

• Emulación completa (semejante a Bochs)

• Emula diferentes arquitecturas x86, x86_64, ARM, SPARC, PowerPC y MIPS

• Emula múltiples procesadores

• Emulación en modo usuario (solo en Linux)

No sólo plataformas x86

• IBM Logical Partitioning (LPAR)– Sistemas pSeries (Power Architecture)

– Feature interesante: Microparticionamiento

Arquitectura de vmWare

vmWare internamente

Virtualización completa

• Un sistema hipervisor administra el metal

• No es necesario correr un OS modificado

• Mejor desempeño que emulación de hardware

• Mediación consume recursos

• El OS debe soportar hardware real

Xen

• Desarrollado en la Universidad de Cambridge

• Corre Linux, NetBSD, FreeBSD, Plan9, Netware y Windows

• Virtualización completa con Intel VT o con AMD Pacífica

• Permite migración de máquinas virtuales

Virtualización dentro del OS

• Crea máquinas virtuales dentro del mismo OS

• Cada máquina virtual corre mismo SO

• Aisla una máquina de otra

• Se comparten los recursos de hardware

Virtualización en móviles

• Máquina virtual Dalvik– Provee el entorno en el cual

todas las aplicaciones Android corren

– Cada aplicación Android corre dentro de su propio proceso, con su propia instancia de Dalvik

– Dalvik fue diseñado para correr en múltiples instancias de forma eficiente

Caso de Implementación en una empresa en Honduras

• Antes: servidores multiuso– Un solo equipo era servidor de base de datos,

DNS, impresión, etc.• Luego evolucionó a tener un servidor para

cada uso– Bueno desde el punto de vista de seguridad, pero

es caro y cuesta administrar– Problemas de licenciamiento: por CPU, por socket,

por «Processor Value Units», etc.

Plataforma de máquinas virtuales

• Se inicia el uso de máquinas virtuales para desarrollo y testing.

• Evolución: un «banco» de máquinas virtuales preconfiguradas

• Capacidades estáticas de procesamiento

• Siguiente paso: capacidades elásticas– Utility computing?

Plataforma de máquinas virtuales

• Sistemas operativos variados– Windows 2003, 2008, XP– Linux en varios sabores (Red Hat, Debian, Ubuntu)

• Capacidades de manejo de cargas mejoradas– Microparticionamiento– Sizing en demanda

• Capacidades de respaldo y recuperación mejoradas– VMware Vmotion– Acronis Universal Restore– Tivoli Storage Manager

Virtualización de almacenamiento

• Los controladores de disco tipo Grid permitieron «virtualizar» el almacenamiento

Amarrando todo

• Estos componentes juntos, forman una arquitectura empresarial virtualizada

Otras direcciones en virtualización…

• Virtualización de pantallas (Terminal Services, Citrix, Remote Desktop, VNC)

• Virtualización de stack de comunicaciones o redes (Software Defined Networking)

• Grid Computing / Virtual Private Servers• …

El cielo es el límite…Muchas gracias por su atención

• efutch@gmail.com• Twitter: @efutch• http://efutch.blogspot.com• http://maestros.unitec.edu/~efutch