Virtualización

Download Report

Transcript Virtualización

Instituto de Ingeniería: http://www.uv.mx/insting
Virtualización
De la IBM 360 a la Nube
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Que es la Virtualización
• Según la real academia ‘virtual’ significa en una
de sus acepciones “que tiene existencia
aparente y no real”
• Un término que se refiere a la abstracción de
los recursos de una computadora.
• La simulación de varias computadoras lógicas,
a partir de una computadora real.
• Una tecnología desarrollada en los 70s por IBM
en su VM/360.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• “Ocultar” o “hacer invisibles” ciertos recursos de
la computadora, o la creación de “dispositivos”
lógicos, que no existen físicamente.
• Una manera de emular una computadora dentro
de otra computadora.
• Una tecnología de moda con muchas posibilidades
de crecimiento a medida que las computadoras
sigan avanzando en poder de procesamiento.
• Muchas cosas más
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Lo Virtual no es Nuevo
• En computación muchas cosas son Virtuales…
– Realidad virtual
– VLAN (Virtual LAN)
– VNC (Virtual Network Computing)
– VPN (Virtual Private Network)
– Memoria virtual
– Almacenamiento virtual
– JVM (Java Virtual Machine)
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Virtualización
• La virtualización es una técnica usada desde los
60, que toma fuerza con los avances de los
procesadores y por la evolución de varias
herramientas de software, muchas de ellas libres.
• El objetivo de la virtualización es simular una o
varias computadoras a partir de una computadora
real y para ello existen varias técnicas, que van
desde virtualizar el hardware (CPU, RAM,
dispositivos,, etc.) hasta la separación de los
procesos utilizando un único kernel.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Orígenes
• En los 60 IBM tenía el problema de que su nuevo
sistema 360, funcionaba de manera diferente a su
antiguo modelo 7070 y sus clientes se resistían a
migrar porque sus aplicaciones no funcionaban igual.
• Después de muchas pruebas IBM aceptó una
propuesta de Larry Moss , utilizar una combinación de
Software y una extensión de hardware especial.
• La idea era que el nuevo 360 Monitoreara cada paso
de la aplicación antigua y la convirtiera a comandos
que el nuevo 360 pudiera entender "se le llamo
Emulador” Cuerpo Académico Dinámica de Sistemas UV-CA-281
Otro caso Notable
• CP/M (Control Program for Microcomputers) fue
un sistema operativo desarrollado por Gary Kildall
para microprocesadores Intel 8080
• Fue tal ves el sistema operativo más popular entre
las computadoras personales en los años 1970 y
se convirtió en un estándar de industria para los
primeras microcomputadoras.
• Los programas escritos en CP/M eran portables a
cualquier micro-computadora aún con
microprocesadores distintos
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Algunos Casos Más
• Las “máquinas virtuales” (como la Java Virtual
Machine o el BCPL "Basic Combined Programming
Language" de los ’60) proveen un CPU virtual.
• Su objetivo no es virtualizar todo el hardware, sino
solamente permitir la ejecución de código
portable en distintas arquitecturas (esto se conoce
como “virtualización a nivel de aplicación”).
• Un intento similar consiste en la traducción de
instrucciones al nivel de la CPU, tal como lo
realizan los procesadores Crusoe.
• El código P usado en pascal es otro ejemplo
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Instituto de Ingeniería: http://www.uv.mx/insting
TIPOS DE VIRTUALIZACIÓN
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Virtualización por Software
• La virtualización por Software es un programa que
simula un sistema físico con unas características
hardware determinadas.
• Cuando se ejecuta el programa (simulador),
proporciona un ambiente de ejecución similar a
todos los efectos a una computadora física
(excepto en el puro acceso físico al hardware
simulado), con CPU (puede ser más de una), BIOS,
tarjeta gráfica, memoria RAM, tarjeta de red,
sistema de sonido, conexión USB, disco duro
(pueden ser más de uno), etc.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Un virtualizador por software permite ejecutar
(simular) varias computadoras (sistemas
operativos) dentro de un mismo hardware de
manera simultánea, permitiendo así el mayor
aprovechamiento de recursos.
• No obstante, y al ser una capa intermedia entre el
sistema físico y el sistema operativo que funciona
en el hardware emulado, la velocidad de ejecución
de este último es menor, pero en la mayoría de los
casos suficiente para usarse en entornos de
producción.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Virtualización por Software
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Virtualización por Hardware
• Este es el tipo de virtualización más complejo
de lograr y 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).
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• 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.
• Se puede dividir en 2 tipos:
– Paravirtualización
– Virtualización Completa
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Paravirtualización
• La paravirtualización consiste en ejecutar sistemas
operativos guests sobre otro sistema operativo
que actúa como hypervisor (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.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Virtualización Completa
• 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.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Ventajas de la Virtualización
• La virtualización permite, entre otras cosas:
– Alojar varios servidores en una única computadora
física, lo que permite optimizar el uso de recursos
(CPU, memoria, almacenamiento).
– Simplificar la realización de copias de respaldo y su
restablecimiento. Todo un servidor virtual puede ser un
único archivo.
– Migrar fácilmente servidores entre distintas
computadoras.
– Incrementar la seguridad, utilizando servidores aislados
para tareas diferentes.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• A través de virtualización podemos por ejemplo,
utilizar servidores virtuales para cada servicio que
deseemos implementar en nuestra red,
independientemente del hardware disponible.
• Estos servidores pueden migrarse a nuevos
servidores físicos cuando sea necesario por
ejemplo, al aumentar las necesidades o demanda,
con un costo mínimo.
• Podemos también por ejemplo desarrollar
servidores especializados y probarlos o ponerlos
en operación en otros sitios con relativa facilidad.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Podemos probar nuevos programas o sistemas
operativos sin tener que utilizar una computadora
para cada una de esas tareas.
• Probar actualizaciones de seguridad en computadoras
como en enrutadores, Switches, etc., antes de
aplicarlos a equipos en operación o misión crítica.
• Tener 2 o más sistemas operativos diferentes
corriendo en una misma computadora para hacer
pruebas, simular ambientes reales, etc.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
•
•
•
•
Aumentar la Seguridad (virus).
Usar Software legado (Aplicaciones antiguas).
Jugar con el Rendimiento.
Incompatibilidad entre aplicaciones de
sistemas operativos.
• Facilidad de crecimiento.
• Pruebas y laboratorios de bajo costo.
• Ahorro de Energía.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Justificación
• En promedio una computadora trabaja sólo el 10%
del tiempo.
• Un servidor puede hacer el trabajo de muchos”
consumiendo menos energía.
• Menos del 10% de los servidores actuales usan
virtualización y tienen esta posibilidad.
• Reducción de costos al tener en un solo servidor
físico varios servidores virtuales.
• Dividir procesadores o núcleos entre aplicaciones.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Desventajas
• Las aplicaciones son más lentas.
• Interoperabilidad entre diferentes máquinas
virtuales.
• A través de pruebas se ha determinado que se
logran pequeñas mejoras en servidores (Java, de
correo, servidor Web, servidor de base de datos, y
servidor de archivos) utilizando virtualización.
• Aplicaciones nativas del microprocesador.
• Nuevos tipos de amenazas, rootkits o Malware
Virtual.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Instituto de Ingeniería: http://www.uv.mx/insting
RESUMEN Y OTRAS COSAS
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Tipos de Virtualización
• Emulación: (QEMU, Bosch) Aplicaciones que
clonan por software un sistema operativo en
una computadora, también existen emuladores
que lo hacen por hardware.
• Paravirtualización: (Xen, ESX Server)
Aplicaciones de software que funcionan sobre
el hardware (llamadas Hipervisores), que
gestionan a los sistemas operativos huéspedes
y controlan sus accesos al hardware.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Virtualización de Sistema Operativo: (Vserver,
OpenVZ) Aplicaciones que solo clonan un
sistema operativo del mismo tipo en otro
sistema operativo.
• Virtualización de Aplicaciones: (Java,
ScummVM) Aplicaciones que clonan por
software una aplicación en una computadora
(Entornos Virtuales).
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Virtualización Parcial: Es un proceso en que se
usa virtualmente un recurso de hardware
varias veces como por ejemplo la RAM,
haciendo creer a las aplicaciones que esa
memoria es exclusiva de ellos.
• Virtualización de Servicios o Servidores: Es el
uso de una computadora virtual por parte de
varias personas u organizaciones generalmente
en hosting.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Virtualización Completa: Vmware (Server y
Workstation), z/VM, Parallels (Desktop y
Workstation), VirtualBox (ahora de Oracle) y
Win4Lin Pro.
• Esto solo ha sido posible a partir de que Intel y
AMD modificaron sus procesador adicionando
sus extensiones AMD-V (AMD) y VT-x (Intel)
• Microsoft Hyper-V, o Windows Server
Virtualization
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Un Punto Aparte
• Linux en sus versiones nuevas
incluye KVM (kernel 2.6.20).
• KVM es una solución de
virtualización completa única
en su género porque convierte
al kernel en un hipervisor
usando un módulo
• Este módulo permite a otros
S.O. guest correr en un espacio
de usuario en donde el kernel
le expone un hardware
virtualizado.
• El S.O. guest usa una hardware
emulado mediante una versión
modificada de QEMU.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Esquemas
Emulación
Virtualización Completa
Paravirtualización
Virtualización de Sistema Operativo
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Un Mercado Emergente
• Un mercado que está creciendo en nuestros días es el de los
llamados virtual appliance, imágenes de máquinas
diseñadas para correr en una plataforma de virtualización.
• Este tipo de dispositivos virtuales prácticamente eliminan la
necesidad de instalación, configuración y mantenimiento de
equipos especializados como Servidores WEB, de email,
DNS, LAMP, etc.
• Estos Virtual appliance no son una máquina virtual completa
ya que necesitan de una plataforma de virtualización en
donde correr pero ofrecen muchas alternativas interesantes.
• Muchos de estos appliances brindan interfaces WEB para
configuración, y representan una nueva manera de explotar
aplicaciones de red.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Conclusiones
• La virtualización tiene ya y tendrá gran uso en los
próximos años.
• Permitirá el uso de aplicaciones diversas de
diferentes sistemas operativos .
• La virtualización traerá a los usuarios sistemas
computacionales más confiables, seguros, de
mayor rendimiento y más compatibles.
• La virtualización permite aislar aplicaciones
críticas y probar nuevas configuraciones sin riesgo
para los sistemas existentes
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Posibilidades en UV
• La creación de laboratorios virtuales de cómputo,
sistemas, comunicaciones, etc., de manera
económica y de rápida creación.
• Una experiencia educativa aún no creada con
muchas perspectivas de uso en la industria y las
organizaciones.
• Un medio simple de probar desarrollos, servicios,
sistemas, etc., sin poner en peligro la seguridad de
nuestra red y nuestros servidores.
• Mejores habilidades para nuestros egresados.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Referencias
•
•
•
•
•
•
•
•
Xen: http:www.xen.org
XenServer: www.citrix.com
VMWare y VMWare Server: www.vmware.com
VirtualBox: www.virtualbox.org
Qemu: wiki.qemu.org
Wine: www.winehq.org
Cross Over: www.codeweavers.com
Usermode Linux: user-mode-linux.sourceforge.net
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Referencias
•
•
•
•
•
•
•
•
Parallels: www.parallels.com
Vserver: linux-vserver.org
OpenVZ: wiki.openvz.org
Vitual PC: http://www.microsoft.com
XenCode: www.xenocode.com
Colinux: www.colinux.org
Linux Vserver: linux-vserver.org
Linux KVM: www.linux-kvm.org
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Bochs: bochs.sourceforge.net
• KVM: www.linux-kvm.org
• CP/M: www.digitalresearch.biz/CPM.HTM
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Instituto de Ingeniería: http://www.uv.mx/insting
UN TEMA EXTRA
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Computación en nube
• La computación en la nube o informática en la
nube, del inglés "Cloud computing", es un
paradigma que permite ofrecer servicios de
computación a través de Internet. La "nube" en
este caso es una metáfora de Internet.
• "Cloud computing" es un nuevo modelo de
prestación de servicios de negocio y tecnología,
que permite al usuario acceder a un catálogo de
servicios estandarizados y responder a sus
necesidades, de forma flexible, en caso de
demandas no previsibles o de picos de trabajo,
pagando únicamente por el consumo efectuado.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• El cambio paradigmático que ofrece computación
en nube es que permite aumentar el número de
servicios basados en la red.
• Esto genera beneficios tanto para los proveedores,
que pueden ofrecer, de forma más rápida y
eficiente, un mayor número de servicios, como
para los usuarios que tienen la posibilidad de
acceder a ellos, disfrutando de la ‘transparencia’ e
inmediatez del sistema y de un modelo de pago
por consumo.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• La computación en nube es un concepto que
incorpora el software como servicio, como en
la Web 2.0 y otros conceptos recientes,
también conocidos como tendencias
tecnológicas, que tienen en común el que
confían en Internet para satisfacer las
necesidades de cómputo de los usuarios.
• Puede usar virtualización o puede no usarla,
son 2 cosas diferentes.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Modelo de 3 Capas
• Capa 1: La infraestructura como servicio (infrastructure as a
service, IaaS) Se encuentra en la capa inferior y es un medio
de entregar almacenamiento básico y capacidades de
cómputo como servicios estandarizados en la red.
Servidores, sistemas de almacenamiento, conexiones,
enrutadores, y otros sistemas se concentran.
• El ejemplo comercial mejor conocido es Amazon Web
Services, cuyos servicios EC2 y S3 ofrecen cómputo y
servicios de almacenamiento esenciales (respectivamente).
• Otro ejemplo es Joyent cuyo producto principal es una línea
de servidores virtualizados, que proveen una infraestructura
en-demanda altamente escalable para manejar sitios Web,
incluyendo aplicaciones Web complejas escritas en Ruby en
Rails, PHP, Python, y Java.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Capa 2: La capa del medio, que es la plataforma
como servicio (en inglés platform as a service,
PaaS), es la encapsulación de una abstración de un
ambiente de desarrollo y el empaquetamiento de
una carga de servicios. Las ofertas de PaaS pueden
dar servicio a todas las fases del ciclo de desarrollo
y pruebas del software, o pueden estar
especializadas en cualquier área en particular, tal
como la administración del contenido.
• Los ejemplos comerciales incluyen Google App
Engine, que sirve aplicaciones de la infraestructura
Google.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Capa 3: Software como servicio (en inglés
software as a service, SaaS) se encuentra en la
capa más alta y caracteriza una aplicación
completa ofrecida como un servicio, en-demanda,
vía multitenencia —que significa una sola
instancia del software que corre en la
infraestructura del proveedor y sirve a múltiples
organizaciones de clientes.
• El ejemplo de SaaS conocido más ampliamente es
Salesforce.com, pero ahora ya hay muchos más,
incluyendo las Google Apps que ofrecen servicios
básicos de negocio como el e-mail.
Cuerpo Académico Dinámica de Sistemas UV-CA-281
• Capa 1
• Amazon WEB Services:
http://aws.amazon.com/es/
• Joyent: http://www.joyent.com/
• Capa 2
• Google Apps Engine:
http://code.google.com/intl/es-ES/appengine/
• Capa 3
• Sales Force: http://www.salesforce.com/
Cuerpo Académico Dinámica de Sistemas UV-CA-281
Instituto de Ingeniería: http://www.uv.mx/insting
M.I. Alberto Pedro Lorandi Medina
[email protected]
[email protected]
http://www.uv.mx/personal/alorandi
GRACIAS!
Cuerpo Académico Dinámica de Sistemas UV-CA-281