Virtualización I
Total Page:16
File Type:pdf, Size:1020Kb
Virtualizaci´onI Escuela T´ecnicaSuperior de Ingenier´ıade Telecomunicaci´on Universidad Rey Juan Carlos gsyc-profes (arroba) gsyc.urjc.es Septiembre de 2017 GSyC - 2017 Virtualizaci´onI 1 ©2017 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike 4.0 GSyC - 2017 Virtualizaci´onI 2 Contenidos 1 M´aquinasVirtuales Utilidad de las m´aquinasvirtuales Inconvenientes de las m´aquinasvirtuales 2 Tipos de M´aquinaVirtual MV de proceso y de sistema Emulaci´onCompleta o Virtualizaci´onCompleta Virtualizaci´on Paravirtualizaci´on Virtualizaci´onnativa 3 Contenedores Caracter´ısticasde los contenedores Inconvenientes de los contenedores 4 Otros tipos de virtualizaci´on 5 T´ecnicassin virtualizaci´on GSyC - 2017 Virtualizaci´onI 3 M´aquinasVirtuales M´aquinas Virtuales M´aquinaVirtual: Software que crea una capa de abstracci´on, ofreciendo una m´aquina diferente a la m´aquinaoriginal Las m´aquinasvirtuales que nos interesan en administraci´onde sistemas suelen ofrecer a un sistema operativo la percepci´onde una m´aquinaf´ısica Las aplicaciones y los usuarios dentro de la m´aquinavirtual se relacionan con la capa de abstracci´ony no con la plataforma real La m´aquinavirtual puede implementar diversos dispositivos virtuales (disco, dispositivos de red, etc) diferentes a los de la plataforma real GSyC - 2017 Virtualizaci´onI 4 M´aquinasVirtuales La tecnolog´ıasobre M´aquinasVirtuales est´amuy madura. La terminolog´ıa,no. Es frecuente encontrarse con el distintos nombres para el mismo concepto, o incluso el mismo nombre para cosas distintas Guest: Sistema Operativo de la m´aquinavirtual Host: Sistema Operativo de la m´aquinareal GSyC - 2017 Virtualizaci´onI 5 M´aquinasVirtuales La m´aquinavirtual se comporta como una aplicaci´onm´as en el host El guest percibe la m´aquinavirtual como si fuera hardware real Uno de los modelos posibles: m´aquinavirtual de sistema GSyC - 2017 Virtualizaci´onI 6 M´aquinasVirtuales Utilidad de las m´aquinasvirtuales Utilidad de las m´aquinasvirtuales Tecnolog´ıatradicional y actual, con muchas utilidades Ejecutar aplicaciones hechas para una plataforma sobre una plataforma diferente: p.e Microsoft Windows sobre Mac OS, Java Virtual Machine Ofrecer un entorno seguro donde experimentar (sandbox) Docencia Probar aplicaciones en desarrollo Probar aplicaciones o webs no confiables Se~nuelos(Honeypots) Empresas de hosting pueden ofrecer servidores virtuales (alimentaci´ony conectividad redundante, soporte 24/365, etc) GSyC - 2017 Virtualizaci´onI 7 M´aquinasVirtuales Utilidad de las m´aquinasvirtuales Respaldo (backup) de m´aquinasenteras, no solo de datos. Ante un peque~noproblema o un gran desastre, la m´aquina virtual se recupera inmediatamente Seguridad: Cortafuegos, per´ımetrosde seguridad,... Portabilidad: Moviendo un directorio se puede mover la m´aquinavirtual de una m´aquinareal a otra Independencia del Hardware, p.e. homogeneizar un conjunto de m´aquinasdiferentes ... GSyC - 2017 Virtualizaci´onI 8 M´aquinasVirtuales Inconvenientes de las m´aquinasvirtuales Inconvenientes de las m´aquinasvirtuales Inconveniente principal: p´erdidade rendimiento Aunque no siempre La m´aquina real tal vez no existe (p.e. java) Existe, pero es una m´aquinade prop´ositoespec´ıfico. Un guest sobre un host de prop´ositogeneral puede ser m´as eficiente GSyC - 2017 Virtualizaci´onI 9 Tipos de M´aquinaVirtual MV de proceso y de sistema MV de proceso y de sistema Seg´unsu grado de equivalencia sobre una m´aquinahardware, las m´aquinasvirtuales se pueden clasificar en M´aquinasvirtuales de sistema Proporcionan un entorno completo y persistente para ejecutar un sistema operativo y sus procesos Ej: VirtualBox, Xen M´aquinasvirtuales de proceso Proporcionan una plataforma para ejecutar un ´unicoproceso Contenedores M´aquinavirtual de java, .NET Este tipo no lo consideramos dentro del ´ambitode la administraci´onde sistemas y no lo tratamos aqu´ı GSyC - 2017 Virtualizaci´onI 10 Tipos de M´aquinaVirtual Emulaci´onCompleta o Virtualizaci´onCompleta Emulaci´on Completa o Virtualizaci´onCompleta Whole-system virtualization. Se emula memoria, disco y otros dispositivos, tambi´enla CPU: Al emular la CPU, son especialmente lentos. La arquitectura Intel tradicional ofrec´ıamuy pocas facilidades Permiten que guest y host trabajen con diferente ISA (instruction set architecture) GSyC - 2017 Virtualizaci´onI 11 Tipos de M´aquinaVirtual Emulaci´onCompleta o Virtualizaci´onCompleta Ejemplos: QEMU, Bochs. Emulan una CPU intel, incluso cuando se ejecutan sobre intel. Ambos son libres, disponibles para diversos hosts. Pueden ejecutar distintos guest, pero siempre para intel GSyC - 2017 Virtualizaci´onI 12 Tipos de M´aquinaVirtual Virtualizaci´on Virtualizaci´on Al virtualizador tambi´ense le llama hipervisor Se emula memoria virtual, disco y dispositivos Ejemplo: VMware emula tarjeta de audio SoundBlaster 16 y tarjeta ethernet AMD PCnet II. Cualquier aplicaci´onen el guest percibe este hardware No se emula la CPU. Por tanto guest y host tienen que usar la misma arquitectura GSyC - 2017 Virtualizaci´onI 13 Tipos de M´aquinaVirtual Virtualizaci´on VMware. Virtualizador. Software muy maduro. Versiones comerciales y versiones freeware (con los a~nosva aumentando el n´umerode versiones freeware) VMware Workstation, workstation player. Para host Windows y Linux. Permite crear y ejecutar m´aquinas virtuales VMware Fusion. Similar a VMWare Workstation, para Mac OS VMware ESXi. Verdarero Sistema Operativo. Se ejecuta directamente sobre el hardware VMware vSphere. Computaci´onen la nube. Basado en ESXi GSyC - 2017 Virtualizaci´onI 14 Tipos de M´aquinaVirtual Virtualizaci´on Parallels Desktop Virtualizador para los Mac OS basados en Intel guest soportados: Microsoft Windows, Linux, FreBSD, Sun Solaris y algunos otros (los Mac posteriores a 2006, basados en Intel, pueden ejecutar Windows en nativo con Boot Camp) GSyC - 2017 Virtualizaci´onI 15 Tipos de M´aquinaVirtual Virtualizaci´on VirtualBox Virtualizador, muy similar a VMware Desarrollado por Innotek. Sun compra Innotek en 2008. Oracle compra Sun en 2009 Virtual Box Open Source Edition VirtualBox. Software Comercial. Gratuito para uso personal y acad´emico Incluye alguna caracter´ısticaadicional, como soporte USB. sATA, iSCSI, Remote Display Protocol (RDP) Server GSyC - 2017 Virtualizaci´onI 16 Tipos de M´aquinaVirtual Paravirtualizaci´on Paravirtualizaci´on Similar a la virtualizaci´on,pero exige un versi´onligeramente modificada del guest El rendimiento es normalmente mayor que el de los tipos anteriores Xen Muy extendido Hay una versi´onlibre que permite Linux sobre Linux Hay versiones comerciales que permiten Windows sobre Windows Los drivers est´anparavirtualizados, son m´aseficientes. (En un virtualizador, los drivers son drivers hw normales) Tambi´enhay que modificar el guest (Xen lo llama Dom0) GSyC - 2017 Virtualizaci´onI 17 Tipos de M´aquinaVirtual Virtualizaci´onnativa Virtualizaci´onasistida por hardware Tambi´enllamada virtualizaci´onnativa Es una emulaci´oncompleta, pero realizada por la CPU con lo que el rendimiento es pr´oximoal nativo Exige soporte en la CPU. Para Intel aparece en el a~no2006 con KVM: Kernel-based Virtual Machine. Infraestructura para virtualizaci´oncompleta del n´ucleode Linux Soportado por Xen GSyC - 2017 Virtualizaci´onI 18 Tipos de M´aquinaVirtual Virtualizaci´onnativa Procesadores que lo soportan: Intel virtualization (VT-x) Pentium 4 6x2, Pentium D 9x0, Xeon 3xxx/5xxx/7xx, Intel Core, Intel Core 2, Intel Quad-Core. Algunos atom (serie Z5xx) AMD-V AMD con Socket AM2, Socket S1 y Socket F. Tambi´en procesadores Athlon 64 y Turion 64 a partir de mayo de 2006 GSyC - 2017 Virtualizaci´onI 19 Contenedores Caracter´ısticasde los contenedores Contenedores Un contenedor es una encapsulaci´onde una aplicaci´ony todas sus dependencias Se pueden considerar una versi´onaligerada de las m´aquinas virtuales tradicionales Su nombre es una met´afora de los contenedores empleados en el transporte Recipientes de carga que puede transportarse f´acilmenteen cami´on,barco o tren sin manipular la mercanc´ıade su interior Revolucionaron la industria en los a~nos1930 Desde los a~nos1970 son est´andares mundiales Virtualizaci´ona nivel del sistema operativo Son m´aquinasvirtuales de proceso, t´ıpicamente ejecutan un ´unicoproceso, como mucho unos pocos GSyC - 2017 Virtualizaci´onI 20 Contenedores Caracter´ısticasde los contenedores Cada aplicacion se ejecu- ta en su propio contene- dor. Cada una de ellas: Comparte el mismo sistema operativo Tiene la percepci´on de acceso exclusivo a los recursos No percibe a las dem´as Contenedores (diagrama simplificado) GSyC - 2017 Virtualizaci´onI 21 Contenedores Caracter´ısticasde los contenedores No confundir con web container, tambi´enllamado servlet container que es algo completamente distinto: En los servidores web basados en java, un contenedor web es el subsistema que interact´uacon los servlets java Los contenedores son t´ıpicamenteun orden de magnitud m´as eficientes que las m´aquinasvirtuales tradicionales Una m´aquinavirtual suele tardar en arrancar muchos segundos o algunos minutos. Un contenedor, d´ecimasde segundo El rendimiento del proceso en ejecuci´ones casi igual al nativo No son incompatibles con las m´aquinasvirtuales tradicionales, al contrario, es muy habitual ejecutarlos dentro de m´aquinas virtuales Los contenedores solucionan el t´ıpicoproblema de en mi m´aquinafuncionaba GSyC - 2017 Virtualizaci´onI 22 Contenedores Caracter´ısticasde los contenedores El desarrollador Incluye