Virtualizaciónsistop.gwolf.org/laminas/04-virtualizacion.pdfIntroducción Emulación...
Transcript of Virtualizaciónsistop.gwolf.org/laminas/04-virtualizacion.pdfIntroducción Emulación...
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Virtualización
Gunnar Wolf
Facultad de Ingeniería, UNAM
2013-08-20 — 2013-08-22
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Qué significa virtualizar?
Proveer algo que no está allí, aunque parece estarloOfrecer y mantener una ilusión
Un truco de magia
La virtualización es, en términos generales, ofrecer recursosque no existen en realidad — Y mantener la ilusión, tan bien
como sea posible.
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Ámbitos de virtualización
Es un término de moda, que nos encontraremos cubriendomuy distintas tecnologíasLleva existiendo –de diferentes maneras– muchas décadasCubriremos algunas estrategias y tecnologías devirtualización comunes hoy en día
Con diferentes usos y propósitosMuchos de los cuales utilizamos día a día sin pensar enello
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Diferentes tecnologías?
Muchas cosas pueden ser entendidas por virtualizaciónHay muchos diferentes casos de uso, y cada uno requiereuna solución diferenteIncluso para un mismo caso de uso, hay más de unamanera de llegar al mismo resultado
Hay espacio para que la selección natural haga su trabajoLas diferentes tecnologías no tienen líneas divisorias tanclaras
Un proyecto pueden caer en varias clasificacionesO ser originalmente de un tipo, e ir migrandonaturalmente hacia otro
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Qué es emular?
La técnica de virtualización disponible hace más tiempoen computadoras personalesEl procesador anfitrión traduce cada una de lasinstrucciones, simulando en tiempo de ejecución hardwareinexistenteFue muy popular hacia la segunda mitad de los 1980 y aprincipios de los 1990, durante la explosión de lasarquitecturasEs altamente ineficiente — Resulta muy caro en tiempode cómputo
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Emular o simular?
Un emulador busca imitar el comportamiento completodel sistema destino
Emular: Imitar las acciones de otro, procurando igualarloo superarlo (WordReference.com)Reproduce todos los procesos internosImplementa los mismos mecanismos
Un simulador simula o finge las áreas de interés delsistema destino
Puede emplear datos para generar respuestaspredefinidas, obviando (brincándose) procesos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Emular o simular? Un ejemplo
Un simulador de vuelo no nos lleva a ningún lugar, aunquepresente una cabina como la de un avión real
Un emulador busca ejecutar software arbitrario sin que éstedetecte la diferencia
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Emulación de una arquitectura existente
Se puede hacer a diferentes profundidadesDesde emular el sistema completo (juego deinstrucciones, chipset, buses, etc.)Hasta emular únicamente parte del chipset (muy comúnen arquitecturas m680x0)
La arquitectura Amiga de Commodore es la primera deuso personal en ofrecer varios programas emuladores
Macintosh y Atari ST (misma plataforma m680x0) avelocidad nativaPlataforma PC, pero muy, muy lenta (incluso XT 8088)
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Utilidad actual de la emulación
A difrencia de lo que ocurría hace 20 años, hoy en día estetipo de emulación es muy socorrido en el “mundo real”Los sistemas embebidos son cada vez más comunes
Computadoras pequeñas, limitadas en recursos (memoria,almacenamiento, velocidad)Diseñadas para correr con el menor consumo energéticoposibleAún a costa de un menor rendimiento
Celuluares, cámaras, ruteadores, scanners, controladoresde equipo industrial. . .
Parte muy importante del mercadoEmular m680x0 o ARM en un buen equipo de escritorioresulta en velocidad comparable al hardware nativo
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Emulando arquitecturas inexistentes
También podemos emular una arquitectura que nunca hasido implementadaLa idea viene también de los 1970
En pos de la portabilidad, UCSD definió un p-system, aser ejecutado en una p-machineEsta computadora nunca existiría en realidad, pero variasarquitecturas existentes ofrecerían emuladores dep-machines
La arquitectura de la p-machine está definida en torno allenguaje Pascal
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Emulando arquitecturas inexistentes
Todo programa hecho para correr en una p-machinecorrería en cualquier arquitectura que lo implementaraLos p-systems gozaron de relativa popularidad hastamediados de los 1980, con implementaciones enarquitecturas 6502, Z80 y 80x86
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Arquitecturas emuladas, de uso diario — Einexistentes
En la década de los 1990, Sun Microsystems retomó lasideas de los p-systems, y diseñó la arquitectura JavaJava está pensado para ser una arquitectura idealizada
Nativamente orientada a objetosBuscando dar una completa portabilidad al códigoSlogan: Write Once, Run Anywhere
Microsoft retomó varios años más tarde esta misma idea,creando la arquitectura .NET
Su principal contribución es plantear a la máquina virtualcomo independiente del lenguaje de programación
Desde el 2000, las comunidades (principalmente) de Perly Python han implementado Parrot
Máquina virtual apta para lenguajes de scriptGunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Esquema de la arquitectura .NET
Figura: Arquitectura de la infraestructura de lenguajes comunes(CLI) de .NET (Imagen: Wikipedia)
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Por qué utilizar/emular estas arquitecturas?
Las abstracciones presentadas por estas máquinasvirtuales resultan demasiado complejas para serimplementadas directamente en hardwareSon, sin embargo, muy útiles al programador, que sabrásacarles buen jugoSun diseñó la arquitectura MAJC (1999) para ejecutardirectamente código Java
Los chips resultaban demasiado complejos y carosFracaso comercial
MAJC implementaba una arquitectura VLIW yoptimización basada en múltiples hilos de ejecución
Ideas retomadas para generaciones actuales de CPUs
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Transmeta: El procesador emulador
En el 2000, Transmeta anunció su procesador Crusoe,orientado al mercado de bajo consumo energéticoSu arquitectura está diseñada para ejecutar códigodiseñado para otras arquitecturas
Traducido a través del microcódigo: Code MorphingSoftware (Software de transformación de código)
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Transmeta: El procesador emulador
La única arquitectura implementada en CMS es la Intelx86
Pero las dos generaciones de procesadores Transmeta(Crusoe y Efficeon) son completamente distintasGracias a CMS, esta difrencia es transparente al usuario
Tecnología muy interesante, y aplicada ya fuera deTransmeta
A pesar de esto, Transmeta colapsó como empresa.
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
La emulación, mejorada
Las técnicas utilizadas para la emulación han mejoradotremendamente en los úlitmos diez añosLos emuladores hacen hoy traducción predictiva ycompilación del código a ejectuar a formatos nativos(traducción dinámica)También guardan copias convertidas/compiladas delcódigo a emular
Compilador JIT — Just in Time; Compilador Justo aTiempo
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
La emulación, mejorada
En líneas generales, la vieja fama de la lentitud de lasmáquinas virtuales ya no se justificaLas máquinas virtuales pueden llamar a código nativopara puntos críticos donde haga falta optimización. . . Y las usamos transparentemente, todos los días
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Virtualización asistida por hardware (HVM)
Buena parte del ruido que hoy en día recibe lavirtualización es a consecuencia de esta modalidadAlgunas arquitecturas de cómputo incluyen provisionespara ser virtualizadas
Especialmente máquinas diseñadas como grandesPrimer ejemplo: IBM S/360-67
Sistema operativo CP-67/CMS (1968-1972)Sistema operativo ligero, monousuarioPensando en que siempre habría múltiples instancias delsistema operativo en ejecución bajo el hipervisor CP
Computadoras inherentemente de tiempo compartido,dando a sus usuarios la ilusión de tener una computadoradedicada a ellos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
La motivación detrás de CP67/CMS
Motivación de la virtualización:Maximizar el aprovechamiento de recursosProveer administración centralizaa
Al virtualizar el sistema completo, este sistema ofrecemayor aislamiento, seguridad y confiabilidad que cualquiersistema de tiempo compartidoPermite además correr cualquier programa diseñado parauna máquina S/360, incluso si no estaba diseñado paratiempo compartidoIBM reimplementó este sistema como VM/370, al contarcon una arquitectura de memoria virtualz/VM, derivado de este, sigue ampliamente en uso hoy endía
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
CP/CMS y VM como software libre
CP/CMS fue distribuido directamente como código fuenteDesde un principio se desarrolló una activa comunidad deusuarios estudiando y modificando el código fuentePor fricciones políticas dentro de IBM, tanto VM comCP/CMS fueron también distribuídos como parte de lasbibliotecas no soportadas en la colección Type-IIIHoy en día se pueden bajar estos sistemas y ejectutarlos
Dentro del emulador Hercules de sistemas S/370, S/390y zSeries
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
El hipervisor: Más abajo que el núcleo
Tradicionalmente las arquitecturas virtualizables corren unmicro-sistema operativo encargado de gestionar a cadauno de los sistemas operativos que corre en cada una delas máquinas virtuales
Es un micro SO porque no cubre muchas de las áreasclásicas (sistemas de archivos, comunicación entreprocesos, gestión de memoria virtual, . . . )Se limita a gestión básica de memoria física contigua,asignación de dispositivos, y poco mas que esoOjo: Hay hipervisores que son sistemas operativoscompletos (como KVM bajo Linux)
Este micro-SO es conocido como el hipervisorDando a entender que hace más que supervisar, el roltradicional del SO
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Hipervisor oculto
Idealmente, el núcleo de cada una de las máquinasvirtuales no sabe siquiera que está siendo ejecutadodentro de un hipervisor
La ilusión es completa
En algunas arquitecturas puede incluso haber múltiplesniveles de hipervisores
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
El panorama hasta ≈ 2005
Las arquitecturas que proveían virtualización por hardwareeran muy especializadas
Muy caras, fuera del alcance de los usuarios en generalFuera del alcance incluso de la mayor parte de losdesarrolladores
En 2005, Intel lanza la Vanderpool Technology para susprocesadores x86 (extensión VT-x)En 2006, AMD lanza los procesadores con extensionesPacificaHoy en día, casi todas las computadoras de escritoriorango medio-superior vienen con soporte para HVMEl tema era tan novedoso que tardó algunos años endesarrollar tracción
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Estabilidad por virtualización
Es aceptado universalmente que la mayor parte fuente deinestabilidad en los sistemas operativos son los drivers
Es código típicamente más sucio que el de otras partesdel núcleoProviene de todo tipo de fuentes, desde desarrolladoresindependientes hasta las compañías desarrolladoras delhardware
Dando control de calidad a los manejadores de losdispositivos emulados/virtualizados, podemos lograr quelos sistemas operativos huésped sean más estables de loque serían sobre el hardware real
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Estabilidad por virtualización
Típicamente el hipervisor ofrecerá a los huéspedesdispositivos relativamente viejos y simples
Red NE2Ksonido Soundblaster16video Cirrus. . .
Las prestaciones máximas del hardware no están limitadaspor las características del hardware emulado — Sólo suinterfaz al sistema
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
HVM, pero sin hardware
La primer versión públicamente descargable de VMWarefue liberada en 1998
Por parte del software libre, kqemu fue presentado(gratuito pero no-libre) en 2005, y liberado bajo la GPLen 2007
Agrega a la arquitectura x86 clásica las funciones básicasde HVM, sin implementarlas por hardware
Con una notable penalización en velocidadAunque muchísimo menor a la de la emulación
Como la mayor parte del código sigue siendo nativo,ofrecen una velocidad general muy aceptable
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Cómo puedo implementar HVM?
Proyectos libres:Xen (modo asistido por hardware)KVM (sobre Linux)Logical Domains (sobre Solaris)
Proyectos híbridos libre/propietarioVirtualBox
Productos propietariosVMWareVirtualPCHyperVParallels
. . . Y seguramente muchos másGunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Un enfoque más ligero, más accesible
Aún si la virtualización asistida ya está disponible enCPUs disponibles masivamente, es aún una característicade lujo
Para los rangos superiores del mercadoLa paravirtualización consiste en reescribir las porcionesde un sistema operativo que interactúan directamente conel hardware, para que soliciten estas operaciones asabiendas a un hipervisorEs conocida como virtualización asistida por el sistemaoperativo (OS-assisted virtualization)Formalmente podría verse como un port del sistemaoperativo a una nueva arquitectura
Muy parecida a la del sistema anfitriónGunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Paravirtualización y software libre
Si bien ofrece un mapeo más directo, mejor rendimiento ymás estabilidad a los sistemas huésped, requieremodificaciones bastante amplias al sistema operativo
Es prácticamente imposible correr sistemas no-libresparavirtualizados
Un sistema operativo tiene que ser portado a lasabstracciones que ofrece cada una de las arquitecturas deparavirtualizaciónEl artículo con el cual se presentó Xen 1.x habla de unport de Windows XP, basado en el Academic LicensingProgram a su paravirtualizador
Pero no es redistribuible, sólo puede ser utilizadointernamente en Xensource
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Aprovechamiento de recursos (1)
Con sistemas paravirtualizados podemos lograr unconsumo de recursos aún más eficiente que en un sistemavirtualizado “real”Los dispositivos presentados al OS huésped son muchomás ligeros e idealizados
No hace falta emular al hardware real
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Aprovechamiento de recursos (2)
El OS huésped puede pedir al anfitrión recursosadicionales cuando los requiere
Incluso sobre demanda — balooningIncluso recursos que para una computadora normal soninamovibles, p.ej. espacio de memoria
Puede haber un monitoreo mucho más completoEl OS anfitrión no tiene que adivinar tantos detalles delfuncionamiento del huésped si éste se los confía
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
CPU virtual, dispositivos paravirtuales
Este punto es empleado por todo tipo de virtualizadores:Paravirtualización a nivel dispositivoEntre más sencillos sean los dispositivos emulados para lavirtualización, menos sobrecarga por traducir llamadas ahardware inexistenteHasta una interfaz tan simple como NE2K tiene hardwareinnecesario a la hora de virtualizar
Entre más delgada sea la capa de traducción, mejorrendimiento obtenemos
En Linux, las clases de dispositivos virtio y pv llegana ofrecer rendimiento de 5 a 10 veces mejor que laemulación de dispositivos reales
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Sugerencia bibliográfica
Los temas presentados en este apartado están descritos muybien y muy a detalle en el artículo Xen and the Art of
Virtualization(http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf),
Paul Barham, Boris Dragovic et. al. 2003La progresión es muy natural y sencilla, ¡vale la pena al menos
echarle un ojo!
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Cómo puedo implementar paravirtualización pura?
La principal arquitectura para esto es XenVMWare ofrece un modo de operación basado en laparavirtualización
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Xen y KVM: Los dos competidores libres
Las dos principales implementaciones libres devirtualización son Xen y KVMSus ofrecimientos son en buena medida comparablesHasta ≈ 2010 parecía que KVM terminaría conquistandoel terreno en que el anfitrión/hipervisor es Linux
Admitido mucho antes al kernel oficialXen requirió cambios mucho más profundos
Hoy en día, ambos ofrecen interfaces bastante completas
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Xen: Un hipervisor mínimo
Xen es un hipervisor puro — GRUB llama al núcleo deXen, y éste lanza a un núcleo Linux
Este núcleo tiene que estar compilado para correrparavirtualizado a la arquitectura virtual de XenEsta primer máquina virtual tendrá control del hipervisorEn lenguaje de Xen, es Dom0Se comunica con Xen a través del demonio xend
Todas las máquinas virtuales adicionales que lancemosson DomU
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
KVM: El Linux de siempre. . . Mas un módulo raro
KVM agrega funciones de hipervisor al núcleo estándar deLinux
A fin de cuentas, un sistema operativo completo tienetodo lo necesario para gestionar recursos entre diferentesprocesos en ejecución
Hereda / incluye muy buena parte de QemuLas diferentes máquinas virtuales son sencillamente másprocesos dentro del árbol de procesos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
. . . ¡Cuéntenme ustedes al respecto!
¡Viva! ¡Hurra!¡Ya era hora! ¡Tenemos tarea!
Lean Notes from a container (Jonathan Corbet, 2007;http://lwn.net/Articles/256389/)Hagan un mapa mental (entregar dibujado/impreso, enpapelito tradicional)Para el martes 27 de agostoSugerencias: Leer e incluir conceptos tocados por loscomentarios y en las ligas
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Qué es un contenedor?
Una manera distinta de virtualizarMás sutil, menos flexibleEmpleando un mismo núcleo de sistema operativo
Empujando la virtualización una capa hacia arriba
Con mayores limitantes, pero importantes ventajas
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Herederos de chroot
Los sistemas Unix han ofrecido la llamada al sistemachroot desde 1982Bill Joy la introdujo cuando trabajaba en 4.2BSD paraprobar la construcción de nuevas versiones del sistemaoperativo sin modificar el sistema vivochroot permite encerrar a un proceso dentro de undirectorio
Un proceso al que se le aplica chroot no puede ver elsistema de archivos fuera del directorio especificado. . . No sin aplicar algunos trucos
chroot sólo afecta la visión de la raiz del sistema dearchivos
No es (ni busca ser) un verdadero aislamientoGunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
No lo es. . . ¿Por qué no lo adecuamos?
Los contenedores construyen sobre chroot, ampliandoel aislamiento a otros componentes del sistemaEl primer sistema en ofrecer esta facilidad fue FreeBSD,con sus jails, desde la versión 4.0 (2000)Están también implementados ahora en Linux (vserverdesde 2002, hoy lxc), Solaris 10 en adelante (Zones,2005) y NetBSD/FreeBSD (Sysjail, utilizandosystrace, 2006)Idea similar en Windows: Parallels Virtuozzo
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Principios básicos de los contenedores
La nomenclatura básica cambia según la implementaciónCada servidor virtual puede llamarse contenedor,contexto de seguridad, etc.
El kernel oculta y aísla la información de cada contextode los demás:
Tablas de procesosSeñales, IPCConexiones, sockets e interfaces de red, reglas de firewallDispositivosLímites en consumo de recursos (RAM, CPU)
Formalmente, los contenedores no implementanvirtualización, sino restricción
Pero brindan al usuario la ilusión de una máquina virtualinexistente
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Variedad, pero con un límite
A través de los contenedores, la virtualización es casicompletaSe ven un poco las costuras, pero para propósitosprácticos, cada contenedor es un sistema independiente
Excepto por el núcleo
Podemos tener cualquier distribución corriendo dentro denuestros contenedores al mismo tiempoÚnica restricción: Todos corren con el mismo núcleo(misma versión, mismos módulos, etc.)
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Consumo de recursos óptimo
Un contexto sin actividad tiene un consumo de recursosmínimoLos procesos que no tienen actividad no consumen CPULos procesos en memoria inactivos van siendo paginadosa discoQueda como excepción Sysjail (OpenBSD), unaimplementación de contenedores en espacio de usuario através de systrace, que sí es notablemente más lentaque el sistema en hardware nativo
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Índice
1 Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Algunos casos comunes de uso
Mejor aprovechamiento / consolidación de recursosMigracionesSeguridadRedundancia / alta disponibilidadDespliegue de escritorios virtualesSimplificación de mantenimientoDesarrollo (especialmente depuración) para sistemasembebidos
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
Diferentes necesidades, diferentes soluciones
Hay una gran riqueza en la oferta de herramientas devirtualizaciónCada herramienta y estrategia tiene características muydistintasMuchas de las ofertas de cómputo en la nube cruzannecesariamente por virtualización
Particularmente por hardware, paravirtualización ycontenedores
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
¿Y la nube?
La infraestructura como un servicio, una de lasmodalidades del cómputo en la nube implicanecesariamente virtualizaciónVarios programas de administración de nubes privadasgestionan y monitorean también sistemas virtualizadosUna nube puede verse como un conjunto de servidoresconfigurados para brindar recursos reales a máquinasvirtuales
Disco, memoria, tiempo de procesamiento, etc.La administración de servicios en la nube, así como susventajas y desventajas, salen del ámbito del curso
Pero sin duda será de interés de varios de ustedesGunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
En esta presentación vimos. . .
EmulaciónTraducción de las instrucciones de una arquitecturadiferenteIncluye la emulación de un sistema entero (hardwareinexistente)Muy lentaDiferencia entre emular y simularPuede emularse una arquitectura existente o inexistente
Modelo general del p-system, la Máquina Virtual Java(JVM), Common Language Infrastructure (.NET)
Rendimiento — Traducción dinámica, compilación JIT
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
En esta presentación vimos. . .
Virtualización asistida por hardware (HVM)Historia: IBM S/360-67 con CP-67/CMS (hasta hoy conz/VM)Concepto de hipervisorEntrada de HVM al común de los equipos x86Estabilidad por virtualización
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
En esta presentación vimos. . .
ParavirtualizaciónEnfoque más ligero, aunque requiere reescribir porcionesde los sistemas operativos huéspedUn SO paravirtualizado puede lograr mejor uso derecursos que el mismo OS en hardware real
El hardware idealizado es más fácil de manejarEl sistema anfitrión no tiene que desperdiciar proveyendorecursos no empleados por los huéspedes
Hardware virtualizado, dispositivos paravirtualizados
Gunnar Wolf Virtualización
IntroducciónEmulación
Virtualización por hardwareParavirtualización
ContenedoresConclusión y nuevos conceptos
En esta presentación vimos. . .
ContenedoresManera más sutil, menos flexible de virtualizaciónUn mismo sistema operativo (un mismo núcleo); unsistema maestro, varios contenedores con sistemascompletos dentroConstruyendo sobre chrootEl núcleo separa varias estructuras presentando vistasseparadas a los distintos sistemas huéspedFormalmente, más que virtualización implementanrestricciónConsumo de recursos mínimo
Gunnar Wolf Virtualización