Download maquina virtual
Document related concepts
Transcript
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES Y TELECOMUNICACIONES TEMA: Virtualización, concepto, tipos, ventajas, desventajas. características, MATERIA: Sistema Operativo 1 NOMBRE : Jake Stevens Loor Loor PROFESORA: Ing. SARA NORIEGA DE LA CRUZ FECHA DE ENTREGA : Viernes, 22 de junio del 2012 Índice 1. Virtualización 1.1 Características 1.2 Tipos 1.3 Beneficios 1.4 Desventajas 2. Máquinas virtuales 2.1 Definición 2.2 Como funcionan 2.3 Características 3. Técnicas de Virtualización 4. Paravirtualizacion 4.1 Definición 4.2 Características 4.3 Funciones 4.4 Usos 4.5 Ventajas 4.6 Desventajas 5. Virtualización asistida por hardware (Virtualización Cooperativa ) 6. KVM 6.1 VIRTUALBOX 6.2 VMWARE 6.3 XEN 6.4 OPEN VZ 6.5 EXOKERNEL 7. HIPER-V 8. Conclusiones VIRTUALIZACION La virtualización es una capa abstracta que desacopla el hardware físico del sistema operativo para brindar una mayor flexibilidad y utilización de los recursos de TI. Término amplio que se refiere a la abstracción de los recursos de la computadora. CARACTERISTICAS Permite recrear computadoras NO FÍSICAS sobre una capa de software especial instaladas en una computadora REAL. Es posible recrear un conjunto de hardware completo, o bien espacios de nombres dentro del mismo sistema operativo. Según las necesidades, y arquitecturas REALES subyacentes, nos puede convenir unos tipos u otros. TIPOS DE VIRTUALIZACIONES Los tipos más interesantes son: Emulación o simulación La máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar, para una CPU completamente diferente. Ejemplos: Bochs Qemu sin aceleración: Ampliamente usado. Muy interesante, porque las imágenes que creamos pueden ser usadas en VirtualBox o VMWare. JPC: Emulador 100% Java. Inspirado en Bochs y Qemu. Inmaduro. Desventajas: Lento. No apto para producción. Virtualización nativa y virtualización completa Completa: la máquina virtual simula un hardware subyacente completo para permitir un sistema operativo “guest” sin modificar que se ejecuta de forma aislada. El S.O. De la VM que se instale debe ser del mismo tipo de CPU que la máquina física subyacente. La virtualización completa NATIVA sólo fue posible a través de los añadidos AMD-V e INTEL VT. Ejemplos: VMware Workstation VMware Server Parallels Desktop VirtualBox Paravirtualización Virtualización a nivel del sistema operativo Virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico. El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”). Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo. Ejemplos: Linux-VServer, Virtuozzo, OpenVZ, UML (user mode linux), Solaris Containers y FreeBSD Jails. Virtualización de aplicaciones (Citrix) BENEFICIOS DE LA VIRTUALIZACION División Se pueden ejecutar múltiples aplicaciones y sistemas operativos en un mismo sistema físico. Los servidores se pueden consolidar en máquinas virtuales con una arquitectura de escalabilidad vertical (scale-up) u horizontal (scale-out). Los recursos computacionales se tratan como un conjunto uniforme que se distribuye entre las máquinas virtuales de manera controlada. Aislamiento Las máquinas virtuales están completamente aisladas entre sí y de la máquina host. Si existen fallas en una máquina virtual, las demás no se ven afectadas. Los datos no se filtran a través de las máquinas virtuales y las aplicaciones sólo se pueden comunicar a través de conexiones de red configuradas. Encapsulación El entorno completo de la máquina virtual se guarda en un solo archivo, fácil de mover, copiar y resguardar. La aplicación reconoce el hardware virtual estandarizado de manera que se garantiza su compatibilidad. DESVENTAJAS Rendimiento inferior. Un sistema operativo virtualizado nunca alcanzará las mismas cotas de rendimiento que si estuviera directamente instalado en el hierro. Dado que el hipervisor introduce una capa intermedia en la gestión del hardware para gestionar las peticiones de acceso y la concurrencia al mismo, el rendimiento de la máquina virtual se ve afectado irremediablemente. No todas las soluciones de virtualización obtienen el mismo rendimiento en las mismas operaciones. Un ejemplo es esta Comparativa de rendimiento máquinas virtuales No es posible utilizar hardware que no esté gestionado o soportado por el hipervisor Hardware virtual obsoleto. USB 1.0, Firewire 400, Ethernet 100 son algunos de los dispositivos a los que nos veremos sometidos. Aunque las nuevas versiones de los hipervisor se van renovando, todavía tenemos que trasladarnos al pasado para usar estas características. No dispondremos de aceleración de vídeo por hardware, por lo que aplicaciones con efectos 3D como compiz-fussion y juegos que utilizan las librerías OpenGL o DirectX no funcionarán en la máquina virtual. Como excepción, Parallels y VMWare Fussion ofrecen soporte para versiones concretas de OpenGL y DirectX sobre Mac OS X, pero conviene probar el rendimiento gráfico antes de decidirse por alguna. Proliferación de máquinas virtuales. Como no hay que comprar ‘hierro’, el número de máquinas y servidores virtuales se dispara en todos los ámbitos. Los efectos colaterales se perciben después: aumenta el trabajo de administración, gestión de licencias, riesgos de seguridad. Desaprovechamiento de recursos. Crear máquinas virtuales innecesarias tiene un coste en ocupación de recursos, principalmente en espacio en disco, RAM y capacidad de proceso. La avería del servidor anfitrión de virtualización afecta a todas las máquinas virtuales alojadas en él. Ahora más que nunca deberemos adoptar soluciones de alta disponibilidad como clustering y replicación para evitar caídas de servicio de múltiples servidores con una única avería. La portabilidad entre plataformas está condicionada a la solución de virtualización adoptada. Elegir GNU/Linux, Mac OS X, Windows o Solaris como anfitrión es una decisión importante en entornos corporativos. Quizás interesaría migrar en el futuro. Disminuye el número de ventas de hardware. Aunque el hardware adquirido para alojar máquinas virtuales es más potente, el número de máquinas vendidas será inferior ¿nos pondrán los fabricantes de harware un Canon por la Virtualización? El sistema operativo anfitrión se vuelve de rol crítico. Hasta ahora estábamos acostumbrados a utilizar un sistema para todas nuestras necesidades. Pero, cuando varios servidores o entornos de producción virtualizados dependen de la estabilidad de su anfitrión, nos pensaremos mucho antes de aplicar actualizaciones y parches. Será necesario reforzar la seguridad y estabilidad, así que ¿quién habló de reiniciar? MAQUINA VIRTUAL Una máquina virtual es un programa informático que crea un entorno virtual entre el sistema operativo y el hardware para que el usuario final pueda ejecutar aplicaciones en una máquina abstracta. Por decirlo de manera más sencilla, una máquina virtual es una aplicación que simula el funcionamiento de una máquina real sobre la que se pueden instalar sistemas operativos, aplicaciones, navegar de forma segura, imprimir desde alguna aplicación, usar los dispositivos USB, etc. UTILIDADES Y USOS MÁS FRECUENTES DE LAS MÁQUINAS VIRTUALES ¿Para qué se pueden usar las máquinas virtuales? La capacidad de aprovechar al máximo el hardware disponible ofrece una gran cantidad de posibilidades a nivel empresarial y a nivel doméstico. A continuación se detallan algunos de los usos más frecuentes que se le puede dar al software de virtualización: Consolidación de servidores: convertir muchos servidores físicos en virtuales. De este modo se aprovecha el hardware disponible de la mejor manera posible. Recuperación ante desastres: las máquinas virtuales se pueden salvar muy fácilmente, y además su estado se puede almacenar, por lo que en caso de desastre se puede recuperar la información con rapidez. Pruebas de aplicaciones: en muchas ocasiones se necesita un entorno limpio para probar una aplicación. Usar una máquina virtual permite instalar un sistema operativo desde cero, probar la aplicación y luego eliminar la máquina. Ejecución de entornos completos sin instalación ni configuración: la posibilidad de descargar máquinas virtuales desde Internet permite ahorrar tiempo en instalaciones y configuraciones. Existen muchas máquinas virtuales con servidores LAMP (Linux, Apache, mySQL y PHP) completos listos para ser usados, máquinas con gestores de contenidos, wikis, etc., gratuitos y funcionales desde el primer momento. Aplicaciones portátiles: con el uso de las máquinas virtuales se pueden tener PCs completos listos para usar en dispositivos USB, lo que puede ser de mucha utilidad para tener un entorno privado y usarlo en cualquier PC. TECNICAS DE VIRTUALIZACION Una VM brinda un entorno de ejecución donde puede correr un sistema operativo completo, denominado virtualizado o invitado. Ofrece la ilusión de acceso exclusivo a la plataforma de hardware sobre la cual se ejecuta, e incluso puede mostrar una visión de otra arquitectura diferente a la real, tanto de la CPU como la memoria, el almacenamiento y los dispositivos de entrada/salida.La virtualización de servidores puede implementarse en distintos niveles, a saber: Virtualización a nivel de aplicaciones Un ejemplo de la virtualización a nivel de aplicaciones es la máquina virtual Java (JVM), que provee un ambiente de ejecución de aplicaciones desarrolladas en lenguaje Java en forma de una capa de software que remueve la dependencia de la aplicación respecto de la interface de programación del sistema operativo y del hardware. De esta forma, las aplicaciones Java pueden correr en múltiples plataformas, tales como PC’s, servidores, celulares y otro dispositivos. Virtualización a nivel de sistema operativo La virtualización a nivel del sistema operativo abstrae los servicios del S.O. tales como sistemas de archivos (filesystems), dispositivos, la red y la seguridad, y provee un entorno virtualizado a las aplicaciones nativas. Generalmente este tipo de virtualización es provista por el kernel de un único sistema operativo, y permite crear múltiples instancias virtualizadas, parametrizadas en forma específica para la aplicación que correrá en ese entorno. Por ejemplo, podría ejecutarse un motor de base de datos, por caso Oracle, en una instancia, y un servidor web como Apache en otra instancia, optimizando cada instancia por separado en directa relación a la aplicación que allí se ejecuta. Virtualización a nivel de hardware Las soluciones de virtualización dependen del hardware subyacente para implementar las características requeridas. En la plataforma x86, por ejemplo, y debido a que el diseño original de los procesadores Intel no contemplaba aspectos centrales de la virtualización, se adopta una arquitectura de paravirtualización, donde las máquinas virtuales presentan una abstracción similar pero no idéntica al hardware subyacente. En este caso, el VMM colabora con el sistema operativo virtualizado para superar las limitaciones que presenta la arquitectura física. En el caso de procesadores diseñados teniendo en cuenta específicamente los requerimientos de virtualización, como por ejemplo los IBM 360 antes, y los nuevos procesadores Sun UltraSPARC T1 y T2, Intel-VT y AMD-V hoy, la arquitectura del VMM puede basarse en la técnica de hiperprivilegio, que permite ejecutar los sistemas operativos invitados sin modificarlos. PARAVIRTUALIZACION La máquina virtual no simula un hardware sino que ofrece una API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. La plataforma de virtualización tiene una capa de software denominada virtual machine monitor (VMM), también conocido como hypervisor, que se ocupa de mostrar los distintos S.O. emplazados en la computadora real. La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation. Desventajas: en el caso de Xen Server 4, y con nuestra arquitectura, no es posible migrar máquinas en producción de nuestro servidor Xeon 2 a un Amd Opteron. VIRTUALIZACION ASISTIDA POR HARDWARE La tecnología de virtualización Intel® (Intel® VT)1 basada en hardware mejora la solidez y la flexibilidad fundamental de las soluciones de virtualización basadas en software tradicionales al acelerar las funciones clave de la plataforma virtualizada, lo que incluye: Aceleración de la transferencia de control de plataforma entre los sistemas operativos huésped y el supervisor de máquina virtual (VMM) Habilitación del VMM para que asigne de manera segura dispositivos de E/S a sistemas operativos huésped específicos. Optimización de la red para virtualización con aceleración basada en adaptador. La virtualización está siendo utilizada en una amplia variedad de industrias y sistemas para nuevas capacidades basadas en virtualización, lo que incluye recuperación en caso de desastre, alta disponibilidad y continuidad de la empresa. Características La Intel® VT asistida por hardware está incorporada a cada aspecto de las plataformas para servidor sobre la base de la tecnología de procesamiento Intel®. KVM Kernel-based Virtual Machine o KVM, (en español, Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. Está formada por un módulo del núcleo (con el nombre kvm.ko) y herramientas en el espacio de usuario, siendo en su totalidad software libre. El componente KVM para el núcleo está incluido en Linux desde la versión 2.6.20. KVM permite ejecutar máquinas virtuales utilizando imágenes de disco que contienen sistemas operativos sin modificar. Cada máquina virtual tiene su propio hardware virtualizado: una tarjeta de red, discos duros, tarjeta gráfica, etc. KVM fue creado, y está mantenido, por Qumranet. KVM necesita un procesador x86 con soporte Virtualization Technology. Puede ejecutar huéspedes GNU/Linux (32 y 64 bits) y Windows (32 bits). VIRTUALBOX Oracle VM VirtualBox es un software de virtualización para arquitecturas x86/amd64, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual. Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU/Linux, Mac OS X, OS/2 Warp , Microsoft Windows, y Solaris/OpenSolaris, y dentro de ellos es posible virtualizar los sistemas operativos FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros. La aplicación fue inicialmente ofrecida bajo una licencia de software privativo, pero en enero de 2007, después de años de desarrollo, surgió VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versión privativa Oracle VM VirtualBox, que es gratuita únicamente bajo uso personal o de evaluación, y esta sujeta a la licencia de "Uso Personal y de Evaluación VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la versión Open Source, VirtualBox OSE, que es software libre, sujeta a la licencia GPL. VirtualBox ofrece algunas funcionalidades interesantes, como la ejecución de maquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI, aunque estas opciones no están disponibles en la versión OSE. En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los demás software de virtualización. Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales ópticas de CD o DVD, o como un disquete. VMWARE VMware es un sistema de virtualización por software. Un sistema virtual por software es un programa que simula un sistema físico (un computador, un hardware) con unas características de hardware determinadas. Cuando se ejecuta el programa (simulador), proporciona un ambiente de ejecución similar a todos los efectos a un computador físico (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. VMware es similar a su homólogo Virtual PC, aunque existen diferencias entre ambos que afectan a la forma en la que el software interactúa con el sistema físico. El rendimiento del sistema virtual varía dependiendo de las características del sistema físico en el que se ejecute, y de los recursos virtuales (CPU, RAM, etc.) asignados al sistema virtual. Mientras que VirtualPC emula una plataforma x86, Vmware la virtualiza, de forma que la mayor parte de las instrucciones en VMware se ejecuta directamente sobre el hardware físico, mientras que en el caso de Virtual PC se traducen en llamadas al sistema operativo que se ejecuta en el sistema físico. XEN Xen es un monitor de máquina virtual de código abierto desarrollado por la Universidad de Cambridge. La meta del diseño es poder ejecutar instancias de sistemas operativos con todas sus características, de forma completamente funcional en un equipo sencillo. Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en caliente. Los sistemas operativos pueden ser modificados explícitamente para correr Xen (aunque manteniendo la compatibilidad con aplicaciones de usuario). Esto permite a Xen alcanzar virtualización de alto rendimiento sin un soporte especial de hardware. Intel ha realizado diversas contribuciones a Xen que han permitido añadir soporte para sus extensiones de arquitectura VT-X Vanderpool. Esta tecnología permite que sistemas operativos sin modificar actúen como hosts dentro de las máquinas virtuales de Xen, siempre y cuando el servidor físico soporte las extensiones VT de Intel o Pacifica de AMD. OPEN VZ OpenVZ es una tecnología de virtualización en el nivel de sistema operativo para Linux. OpenVZ permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (SPV o VPS en inglés) o Entornos Virtuales (EV). OpenVZ es una base de Virtuozzo que es un software comercial desarrollado por SWsoft, Inc., OpenVZ es un producto de software libre y licenciado bajo los términos de la licencia GNU GPL versión 2. OpenVZ consiste del núcleo y de herramientas en el nivel de usuario. EXOKERNEL El exonúcleo (en inglés: exokernel) es un sistema creado con fines de investigación en el Instituto Tecnológico de Massachusetts (MIT) sobre OpenBSD y un tipo de sistemas operativos similares. Su propósito es crear una especie de capa de software para otros sistemas virtuales. Motivación Tradicionalmente los diseñadores de núcleos intentaban hacer invisibles los recursos de hardware a las aplicaciones requiriendo que interactúen con el hardware de alguna manera conceptual. Estos modelos incluyen sistemas de archivos para almacenamiento en disco, espacio de direcciones virtual, calendarizadores para el manejo de las tareas y sockets para las comunicaciones en red. Estas abstracciones del hardware hacían más fácil escribir programas en general, pero limitaban el rendimiento y reprimían la experimentación de nuevas abstracciones. Una aplicación orientada a la seguridad podría necesitar un sistema de archivos que no dejase datos viejos en el disco, mientras que una aplicación orientada a la fiabilidad necesitaría un sistema que almacenase esos datos para recuperación en caso de fallos. Uno podría optar por eliminar el núcleo completamente y programar directamente para el hardware, pero entonces la máquina entera debería estar dedicada a una sola tarea. Se puede llegar a una solución de consenso: dejar al núcleo destinar los recursos físicos de la máquina (por ejemplo, bloques de disco, páginas de memoria y el tiempo de CPU) a múltiples aplicaciones, y dejar a cada programa decidir qué hacer con esos recursos. El programa podría enlazar una librería de sistema operativo (libOS) que implementa abstracciones comunes, o podría implementar sus propias abstracciones. Teóricamente un sistema basado en exonúcleo podría proveer varias libOSes (librerías de sistema operativo) así como diferentes tipos de sistema operativo podrían ejecutarse bajo el mismo exonúcleo. HIPER-V Microsoft Hyper-V es un programa de virtualización basado en un hipervisor para los sistemas de 64-bits con los procesadores basados en AMD-V o Tecnología de virtualización Intel (el instrumental de gestión también se puede instalar en sistemas x86). Una versión beta de Hyper-V se incluyó en el Windows Server 2008 y la versión definitiva se publicó el 26 de junio de 2008. La versión actual de Hyper-V, incluida en Windows Server 2008 R2 como rol de servidor, agregó mejoras y nuevas funcionalidades como Live Migration, almacenamiento en máquinas virtuales dinámicas, y compatibilidad mejorada con procesadores y redes. CONCLUSIONES Con respecto al sin número de virtualizadores que existen hoy en dia, cada uno fue diseñado para su función específica, unos para carga , otros para simplemente montar un sistema operativo para olvidarnos de la compatibilidad de archivos etc, en fin para mi el mejor virtualizador es el VMware , muy sencillo de usar y es el más completo en lo que se refiere a usar recursos de hardware etc.