Facultad de Ingeniería Universidad de Buenos...

22
Facultad de Ingeniería Universidad de Buenos Aires 75-08 Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio Virtualización Virtualización

Transcript of Facultad de Ingeniería Universidad de Buenos...

Page 1: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

Facultad de IngenieríaUniversidad de Buenos Aires

75-08 Sistemas OperativosLic. Ing. Osvaldo Clúa

Lic. Adrián Muccio

VirtualizaciónVirtualización

Page 2: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 2

VirtualizaciónVirtualización

● La abstracción de recursos de computación– Virtualización de Aplicaciones.– Virtualización de Plataforma.– Virtualización de Escritorio.– Virtualización de recursos.

● Red, Memoria, Almacenamiento, clusters, grids.

Page 3: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 3

¿Para qué se usa?¿Para qué se usa?

● Aumento de confiabilidad.– El software tiene mas fallas (bugs) que el

Hardware.● Aplicaciones antiguas (“legacy”).● Desarrollo y prueba en múltiples plataformas.● Balanceo de cargas y escalabilidad futura.

– Es mas fácil migrar de una VM a otra en un host demasiado cargado.

Page 4: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 4

Virtualización de AplicacionesVirtualización de Aplicaciones

● Compatibilidad y portabilidad entre distintos Sistemas Operativos y distintas arquitecturas.

"AppVirtual" by Egmason - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:AppVirtual.svg#/media/File:AppVirtual.svg

Page 5: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 5

Virtualización de Aplicaciones - cont.Virtualización de Aplicaciones - cont.

● Máquinas Virtuales (JVM, .net CLR)

"JvmSpec7" by Michelle Ridomi - Own work. Licensed under CC BY-SA 4.0 via Commons- https://commons.wikimedia.org/wiki/File:JvmSpec7.png#/media/File:JvmSpec7.png

Page 6: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 6

Virtualización de Aplicaciones- cont.Virtualización de Aplicaciones- cont.

● Compatibility Layers● WOW64,Linux on BSD● Wine

– En general requiere de una CPUcompatible (upwards)

Page 7: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 7

Virtualización de PlataformaVirtualización de Plataforma● Abstracción de todos los recursos de

computación de un huésped dentro de un anfitrión (host).– Virtualización total.

● Emulación de plataforma.● Hipervisores

– Paravirtualización.– Virtualización del mismo Sistema Operativo.

Page 8: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 8

¿Cuando es posible virtualizar?¿Cuando es posible virtualizar?● Condiciones de Popek y Goldberg.

– Instrucciones privilegiadas● Las que ocasionan un software trap.

– Instrucciones delicadas (“sensitive”)● Las que solo pueden ejecutarse en Modo Supervisor del

procesador.● Una arquitectura es virtualizable si las instrucciones

delicadas son un subconjunto de las privilegiadas– La arquitectura Intel IA32 no lo es.

● Por ejemplo, POPF tiene distintos resultados según el modo del procesador ...

Page 9: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 9

Virtualización de la IA32Virtualización de la IA32

●AMD-V o Pacífica para procesadores AMD.●Intel IVT o Vanderpool.

● La idea es generar “containers” donde la ejecución de una instrucción delicada provoqueun software trap.● (trap & emulate)

Usando IOMMU para acceder a memoria virtual

Page 10: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 10

HipervisoresHipervisores

● Monitor de máquinas virtuales– Tipo I

● Corren directamente sobre el Hardware.● El huésped debe tener una arquitectura

virtualizable.– Tipo II

● Corre como un programa bajo un sistema operativo anfitrión (Host).

● Pueden virtualizar cualquier ambiente.

Page 11: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 11

Hipervisor Tipo IHipervisor Tipo I

● El huésped corre en modo usuario.– Su Kernel cree haber pasado a modo

supervisor, pero continúa en modo usuario.

Page 12: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 12

Hipervisor Tipo I (2)Hipervisor Tipo I (2)

– Al ejecutar una instrucción delicada,se produce una software trap.

– El Hipervisor toma el control.●Si la trap proviene del kernel del guest, lleva a cabo la acción correspondiente.●Si proviene de un programa en modo usuario, responde como lo haría el Hard.

● VMware ESX, Xen, Hyper-V, ● KVM

Page 13: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 13

Hipervisor Tipo IIHipervisor Tipo II

● Corre bajo el control de otro sistema operativo.

● Modifica el programa que está corriendo.

Page 14: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 14

Binary translationBinary translation

● Basic Block– Código con un punto de entrada, uno de salida

y sin “jumps”. ● El Hipervisor examina los Basic Blocks ...

– ... y reemplaza las instrucciones delicadas por llamadas al hipervisor

– ... y guarda el código traducido en el cache.● Lo que aumenta su performance.

Page 15: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 15

HipervisoresHipervisores

● El tipo I no siempre es mas rápido que el tipo II.– Las traps consumen muchos recursos.

– Y una vez en el cache, el tipo II tiene velocidad casi nativa.

– Virtual PC, VMware server, Virtual Box

Page 16: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 16

ParavirtualizaciónParavirtualización

● Reemplazar en el sistema operativo guest las instrucciones delicadas por llamadas al hipervisor.– Una API es VMI de Vmware.– Requiere modificaciones en el

guest.● En Linux a partir del Kernel 2.6.21.● La mayor parte de los hipervisores la adoptaron

como opción.

Page 17: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 17

Máquinas VirtualesMáquinas Virtuales

● La lista de VM sigue creciendo ...– ... y aparece una nueva forma de distribución,

los Aparatos Virtuales o Virtual Appliances.– ...o de distribución de aplicaciones usando

streaming.● Algunos enfoques diferentes:➢ Traductor binario dinámico: QuickTransit ➢ Destinado a los empotrados: MPLAB (ICE).

Page 18: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 18

Virtualización del EscritorioVirtualización del Escritorio

● Las aplicaciones se hospedan en un sistema central pero cada usuario tiene su escritorio local.– Concepto tomado de los thin client.

● Citrix, MokaFive.● Y algunos Web Desktops como Glide o DesktopTwo.

Page 19: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 19

Virtualización de recursos

Virtualización de recursos

● Usar los recursos del sistema operativo host para apoyar la ejecución del guest.

– Colinux Era un kernel que corría como servico de XP...

– ...y andlinux es una aplicación de colinux

Page 20: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 20

Virtualización del Sistema OperativoVirtualización del Sistema Operativo

● Cuando el Kernel permite distintos ambientes de usuarios aislados entre sí.– Una extensión del chroot.– Usado por seguridad en aplicaciones como

hosting virtual.– Linux VServer, Virtuozzo, Solaris containers o

BSD Jails, Docker.

Page 21: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 21

Virtualización del Sistema Operativo - Docker

Virtualización del Sistema Operativo - Docker

Page 22: Facultad de Ingeniería Universidad de Buenos Airesmaterias.fi.uba.ar/7508/Slides/07-Virtualizacion.pdf · Virtualización del Sistema Operativo Cuando el Kernel permite distintos

75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa

Lic. Adrián MuccioFIUBA 22

El lado (azul) oscuro ...El lado (azul) oscuro ...

● En una conferencia de seguridad, Joanna Rutkowska afirma tener una píldora que despierta a Windows en la Matrix...