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
Conceptos
Virtualizació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

Unitec virtualización

  • 1.
    Si un sueñose 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
  • 3.
    ¿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”)
  • 4.
    Mapeos • 1 ->N – Multitasking • M -> 1 – Grid Computing, Clustering • M -> N – Máquinas virtuales
  • 5.
    No es unconcepto nuevo • Concepto con más de 40 años – IBM 7044 • Compatible Time Sharing System (CTSS) – M.I.T. – Atlas Proyect
  • 6.
    • Popek yGoldberg establecieron en 1974 los requerimientos para una arquitectura virtualizable
  • 7.
    Requerimientos para unaarquitectura 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)
  • 8.
    ¿Para qué podemosusar 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
  • 9.
    Hardware Kernel Librerías de Usuario Aplicaciones Llamadasa un API System Calls Instrucciones de hardware User Space Kernel Space Si analizamos una arquitectura apilada Virtualización Virtualización Virtualización
  • 10.
  • 11.
    Técnicas de virtualizaciónen 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)
  • 12.
    Ejemplos de virtualizaciónde conjunto de instrucciones • Traducción binaria a espacios de hardware • Procesador Crusoe (Trasmeta) – Tecnología Code Morphing interpretaba diversos conjuntos de instrucciones
  • 13.
  • 14.
    Bochs • Simulador dex86 (386, 486, Pentium, PPro) • Corre sobre x86, PowerPC, Alpha, SPARC y MIPS • Corre Linux, MS Windows, BSD, FreeBSD, OpenBSD, etc.
  • 15.
    Qemu • Emulación completa (semejantea Bochs) • Emula diferentes arquitecturas x86, x86_64, ARM, SPARC, PowerPC y MIPS • Emula múltiples procesadores • Emulación en modo usuario (solo en Linux)
  • 16.
    No sólo plataformasx86 • IBM Logical Partitioning (LPAR) – Sistemas pSeries (Power Architecture) – Feature interesante: Microparticionamiento
  • 17.
  • 18.
  • 19.
    Virtualización completa • Unsistema 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
  • 20.
    Xen • Desarrollado enla 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
  • 21.
    Virtualización dentro delOS • 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
  • 22.
    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
  • 23.
    Caso de Implementaciónen 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.
  • 24.
    Plataforma de máquinasvirtuales • 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?
  • 25.
    Plataforma de máquinasvirtuales • 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
  • 26.
    Virtualización de almacenamiento •Los controladores de disco tipo Grid permitieron «virtualizar» el almacenamiento
  • 27.
    Amarrando todo • Estoscomponentes juntos, forman una arquitectura empresarial virtualizada
  • 28.
    Otras direcciones envirtualizació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 • …
  • 29.
    El cielo esel límite… Muchas gracias por su atención • efutch@gmail.com • Twitter: @efutch • http://efutch.blogspot.com • http://maestros.unitec.edu/~efutch