Download Las máquinas virtuales - Ecomundo Centro de Estudios
Document related concepts
Transcript
Facultad de Ingeniería en Sistemas Computacionales y Telecomunicaciones “Virtualización” Asignatura “Sistemas Operativos” Docente Ing. Sara Noriega Presentada por Juan Carlos Yungán Gunsha Guayaquil - Ecuador Junio 22 2012 Virtualización En informática, virtualización se refiere a la abstracción de los recursos de una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de la abstracción entre el hardware de la maquina física (host) y el sistema operativo de la maquina virtual (virtual machine, guest)., siendo un medio para crear una versión virtual de un dispositivo o recurso, como un servidor, un dispositivo de almacenamiento, una red o incluso un sistema operativo, donde se divide el recurso en uno o más entornos de ejecución. Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y así podrá repartir dinámicamente dichos recursos entre todas las maquinas virtuales definidas en el computador central. De modo que nos permite tener varios ordenadores virtuales ejecutándose sobre el mismo ordenador físico. Tal término es antiguo; se viene usando desde 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos, hasta capacidades o componentes individuales. Lo mas importante en este tema de virtualización es la de ocultar detalles técnicos a través de la encapsulación. La virtualización se encarga de crear un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o por medio de la simplificación del sistema de control. Un avanzado desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este importante concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes. Virtualización Página 2 Este concepto que realmente es interesante, del cual se lleva desarrollando por muchos años, pero que parece que finalmente está encontrando sus caminos productivos y de desarrollo para profesionales. Tipos de Virtualización Hay varias formas de ver o catalogar la virtualización, pero en general se trata de uno de estos dos casos: Virtualización de plataforma. Virtualización de recursos Virtualización de Plataforma Se trata de simular una máquina real (servidor o PC) con todos sus componentes (los cuales no necesariamente son todos los de la máquina física) y prestarle todos los recursos necesarios para su funcionamiento. En general, hay un software anfitrión que es el que controla que las diferentes máquinas virtuales sean atendidas correctamente y que está ubicado entre el hardware y las máquinas virtuales. Dentro de este esquema caben la mayoría de las formas de virtualización más conocidas, incluidas la virtualización de sistemas operativos, la virtualización de aplicaciones y la emulación de sistemas operativos. Virtualización de Recursos Esta permite agrupar varios dispositivos para que sean vistos como uno solo, o al revés, dividir un recurso en múltiples recursos independientes. Generalmente se aplica a medios de almacenamiento. También existe una forma de virtualización de recursos muy popular que no es sino las redes privadas virtuales , abstracción que permite a un PC conectarse a una red corporativa a través de la Internet como si estuviera en la misma sede física de la compañía. Virtualización completa Esta es en donde la máquina virtual simula un hardware suficiente para permitir un sistema operativo “huésped” sin modificar (uno diseñado para la misma CPU) para ejecutar de forma aislada. Típicamente, muchas instancias pueden ejecutarse al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM. Ejemplos ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ VMware Workstation VMware Server Windows Server 2008 R2 Hyper-V Microsoft Enterprise Desktop Virtualization (MED-V) Oracle VM VirtualBox Parallels Desktop Virtual Iron Adeos Mac-on-Linux Virtualización Página 3 ▪ ▪ ▪ ▪ ▪ ▪ ▪ Win4BSD Win4Lin Pro y z/VM openvz Oracle VM XenServer Microsoft Virtual PC Virtualización parcial “Address Space Virtualization”. La máquina virtual simula múltiples instancias de gran parte (pero no de todo) del entorno subyacente del hardware, particularmente los espacios de direcciones. Tal entorno acepta compartir recursos y alojar procesos, pero no permite instancias separadas de sistemas operativos “huésped”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y lo usaron en sistemas como CTSS, el experimental IBM M44/44X, y podría mencionarse que en sistemas como OS/VS1, OS/VS2 y MVS. Virtualización por S.O Virtualizar significa instalar un sistema operativo dentro de otro al que se le llama anfitrión (HOST), mediante el uso de una máquina virtual. Frecuentemente denominada virtualización compartida del Sistema Operativo o virtualización del SO, la virtualización del Sistema Operativo virtualiza servidores en la capa del sistema operativo (kernel). Este método de virtualización crea particiones aisladas o entornos virtuales (VEs) en un único servidor físico e instancia de SO para así maximizar los esfuerzos de administración del hardware, software y centro de datos. La Virtualización de Hypervisor tiene una capa base (generalmente un kernel, Linux que se muestra aquí como un hypervisor o SO estándar, lo mismo que Windows Server 2008 R2 Hyper-V) que se carga directamente en el servidor base. Para asignar hardware y recursos a las máquinas virtuales (VMs), es recomendable que todo el hardware del servidor esté virtualizado. La siguiente capa superior muestra cada chip, placa, etc. que debe virtualizarse para que así pueda ser asignado a las VMs. Una vez en la VM, hay un copia completa de un sistema operativo y finalmente la aplicación o carga de trabajo. La Virtualización de SO mejora el rendimiento, gestión y eficiencia. En la base reside un sistema operativo anfitrión estándar, como en el caso de Parallels Virtuozzo que incluye Windows y un sistema con núcleo Linux. A continuación encontramos la capa de virtualización, con un sistema de archivos propietario y una capa de abstracción de servicio de kernel que garantiza el aislamiento y seguridad de los recursos entre distintos contenedores. La capa de virtualización hace que cada uno de los contenedores aparezca como servidor autónomo. Finalmente, el contenedor aloja la aplicación o carga de trabajo. Virtualización por (Hardware) Virtualización asistida por Hardware son extensiones introducidas en la arquitectura de procesador x86 para facilitar las tareas de virtualización al software ejecutándose sobre el sistema. Virtualización Página 4 Si cuatro son los niveles de privilegio o anillos de ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina a las operaciones del kernel de SO, al tres, con privilegios menores que es el utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor usará para aislar todas las capas superiores de software de las operaciones de virtualización. La virtualización de almacenamiento Se refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs ("Storage Area Network" Red de área de almacenamiento). Los recursos de almacenamiento físicos son agregados al "storage pool" (almacén de almacenamiento), del cual es creado el almacenamiento lógico. Particionamiento Es la división de un solo recurso (casi siempre grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo que son más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red. Máquina virtual La entenderemos básicamente como un sistema de virtualización, denominado "virtualización de servidores", que dependiendo de la función que esta deba de desempeñar en la organización, todas ellas dependen del hardware y dispositivos físicos, pero casi siempre trabajan como modelos totalmente independientes de este. Cada una de ellas con sus propias CPUs virtuales, tarjetas de red, discos etc. Lo cual podría especificarse como una compartición de recursos locales físicos entre varios dispositivos virtuales. Hypervisor de almacenamiento Es un pack portátil de gestión centralizada, utilizado para mejorar el valor combinado de los sistemas de disco de almacenamiento múltiples, incluyendo los modelos diferentes e incompatibles, complementando sus capacidades individuales con el aprovisionamiento extendido, la réplica y la aceleración del rendimiento del servicio. Su completo conjunto de funciones de control y monitorización del almacenamiento, operan como una capa virtual trasparente entre los pools de disco consolidados para mejorar su disponibilidad, velocidad y utilización. Ventajas más comunes de la Virtualización Los usuarios serán provistos con dos o más ambientes de trabajo completamente independientes entre sí según se requiera. Si se manejan dos como en la mayoría de los casos, un ambiente de trabajo sería abierto para que usuarios hagan efectivamente en el lo que quieran, agregando dispositivos e instalando cualquier software que elijan. El segundo ambiente estaría cerrado Virtualización Página 5 o restringido; es decir, donde el usuario solo tendría acceso a lo que es crítico para la organización y sus negocios. De esta forma, si el primer ambiente sufre una caida o colapso, el segundo ambiente sigue trabajando haciendo que el negocio no pare.En caso de que la organización constantemente ocupe estar cambiando de aplicaciones por cuestiones de su negocio, la virtualización permite conservar los mismos equipos terminales o de trabajo, y realizar todos los cambios de versiones y plataformas vía un entorno virtualizado en la red y teniendo como fuente al servidor. Reutilización de hardware existente (para utilizar software más moderno) y optimizar el aprovechamiento de todos los recursos de hardware.6 Rápida incorporación de nuevos recursos para los servidores virtualizados. Reducción de los costes de espacio y consumo necesario de forma proporcional al índice de consolidación logrado (Estimación media 10:1). Administración global centralizada y simplificada. Nos permite gestionar nuestro CPD como un pool de recursos o agrupación de toda la capacidad de procesamiento, memoria, red y almacenamiento disponible en nuestra infraestructura Mejora en los procesos de clonación y copia de sistemas: Mayor facilidad para la creación de entornos de test que permiten poner en marcha nuevas aplicaciones sin impactar a la producción, agilizando el proceso de las pruebas. Aislamiento: un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales. Mejora de TCO y ROI. No sólo aporta el beneficio directo en la reducción del hardware necesario, sino también los costes asociados. Reduce los tiempos de parada. Migración en caliente de máquinas virtuales (sin pérdida de servicio) de un servidor físico a otro, eliminando la necesidad de paradas planificadas por mantenimiento de los servidores físicos. Balanceo dinámico de máquinas virtuales entre los servidores físicos que componen el pool de recursos, garantizando que cada máquina virtual ejecute en el servidor físico más adecuado y proporcionando un consumo de recursos homogéneo y óptimo en toda la infraestructura. Contribución al medio ambiente -Green IT- por menor consumo de energía en servidores físicos. Virtualización Página 6 Desventajas de la Virtualización El uso de la virtualización representa conflictos con el licenciamiento que aplican los fabricantes de software. El software de virtualización representa un desafío para los tipos de licencia por usuario existentes actualmente, por lo cual es probable que cambien las reglas respecto al licenciamiento de software. Claro está que su instalación y administración requiere de personal calificado en Tecnologías Informáticas, más su uso puede ser transparente para un usuario promedio corporativo. Virtualización relacionada con el Green IT En estudios realizados se han basado sobre el ahorro de energía que genera la empresa para sus clientes, muestra que las soluciones de virtualización reducen los costos económicos y emisiones de CO2. Esto se puede llevar acabo fusionando varias máquinas en un solo servidor, con lo que disminuyendo el consumo energético y los costos; ahorrando 7.000 kilovatios hora o cuatro toneladas de emisiones de CO2 al año. Los PCs virtualizados pueden reducir el consumo de energía y los costos en un 35 por ciento. hoy en día, la mayor parte consumen entre un 70 y un 80% de su energía estimada. Otra medida es la desconexión de los servidores y desktops durante los períodos de inactividad, como por la noche o los fines de semana, con lo que se puede ahorrar aproximadamente un 25 por ciento en su consumo energético. Las empresas hoy en día son las más interesadas en el tema de la virtualización, ya que para ellas es muy importante reducir costos y energía principalmente. Infraestructura Virtual Una infraestructura virtual consiste en el mapping dinámico de recursos físicos en función de las necesidades de la empresa. Una máquina virtual representa los recursos físicos de un único ordenador, mientras que una infraestructura virtual representa los recursos físicos de la totalidad del entorno de TI, aglutinando ordenadores x86, así como su red y almacenamiento asociados, en un pool unificado de recursos de TI. Estructuralmente, una infraestructura virtual consta de los siguientes componentes: Hipervisor de un solo nodo para hacer posible la virtualización de todos los ordenadores x86. Un conjunto de servicios de infraestructura de sistemas distribuida basada en la virtualización, como gestión de recursos, para optimizar los recursos disponibles entre las máquinas virtuales. Soluciones de automatización que proporcionen capacidades especiales para optimizar un proceso de TI concreto, como provisioning o recuperación ante desastres. Mediante la separación de la totalidad del entorno de software de Virtualización Página 7 su infraestructura de hardware subyacente, la virtualización hace posible la reunión de varios servidores, estructuras de almacenamiento y redes en pools compartidos de recursos que se pueden asignar de forma dinámica, segura y fiable a las aplicaciones según sea necesario. Este enfoque innovador permite a las organizaciones crear una infraestructura informática con altos niveles de utilización, disponibilidad, automatización y flexibilidad utilizando componentes básicos de servidores económicos y estándar del sector. Las máquinas virtuales Una máquina virtual es un contenedor de software perfectamente aislado que puede ejecutar sus propios sistemas operativos y aplicaciones como si fuera un ordenador físico. Una máquina virtual se comporta exactamente igual que lo hace un ordenador físico y contiene sus propios CPU, RAM, disco duro y tarjetas de interfaz de red (NIC) virtuales El sistema operativo no puede establecer una diferencia entre una máquina virtual y una máquina física, ni tampoco lo pueden hacer las aplicaciones u otros ordenadores de una red. Incluso la propia máquina virtual considera que es un ordenador “real”. Sin embargo, una máquina virtual se compone exclusivamente de software y no contiene ninguna clase de componente de hardware. El resultado de ello es que las máquinas virtuales ofrecen una serie de ventajas con respecto al hardware físico Ventajas de las máquinas virtuales Compatibilidad Al igual que un ordenador físico, una máquina virtual aloja su propio sistema operativo y aplicaciones guest, y dispone de los mismos componentes (placa base, tarjeta VGA, controlador de tarjeta de red, etc.). El resultado de ello es que las máquinas virtuales son totalmente compatibles con la totalidad de sistemas operativos x86, aplicaciones y controladores de dispositivos estándar, de modo de se puede utilizar una máquina virtual para ejecutar el mismo software que se puede ejecutar en un ordenador x86 físico. Aislamiento Aunque las máquinas virtuales pueden compartir los recursos físicos de un único ordenador, permanecen completamente aisladas unas de otras, como si se tratara de máquinas independientes. Si, por ejemplo, hay cuatro máquinas virtuales en un único servidor físico y falla una de ellas, las otras tres siguen estando disponibles. El aislamiento es un factor importante que explica por qué la disponibilidad y protección de las aplicaciones que se ejecutan en un entorno virtual es muy superior a las aplicaciones que se ejecutan en un sistema tradicional no virtualizado. Virtualización Página 8 Encapsulamiento Una máquina virtual es básicamente un contenedor de software que ata o “encapsula” un conjunto completo de recursos de hardware virtuales, así como un sistema operativo y todas sus aplicaciones, dentro de un paquete de software. El encapsulamiento hace a las máquinas virtuales extraordinariamente portables y fáciles de gestionar. Por ejemplo, puede mover y copiar una máquina virtual de un lugar a otro como lo haría con cualquier otro archivo de software, o guardar una máquina virtual en cualquier medio de almacenamiento de datos estándar, desde una memoria USB de tamaño de bolsillo hasta las redes de área de almacenamiento (SAN) de una empresa. Independencia del hardware Las máquinas virtuales son completamente independientes de su hardware físico subyacente. Por ejemplo, se puede configurar una máquina virtual con componentes virtuales (CPU, tarjeta de red, controlador SCSI, pongamos por caso) que difieren totalmente de los componentes físicos presentes en el hardware subyacente. Las máquinas virtuales del mismo servidor físico pueden incluso ejecutar distintos tipos de sistema operativo (Windows, Linux, etc.). Si se combina con las propiedades de encapsulamiento y compatibilidad, la independencia del hardware proporciona la libertad para mover una máquina virtual de un tipo de ordenador x86 a otro sin necesidad de efectuar ningún cambio en los controladores de dispositivo, en el sistema operativo o en las aplicaciones. La independencia del hardware también significa que se puede ejecutar una mezcla heterogénea de sistemas operativos y aplicaciones en un único ordenador físico. KVM, VIRTUALBOX, VMWARE, XEN, OPEN VZ, EXOKERNEL KVM (Kernel-based Virtual Machine) Utiliza virtualización completa por hardware y requiere que el sistema operativo host sea Linux. Es open source y gratuito. Virtualbox Virtualización Página 9 VirtualBox de propiedad Sun desde hace ya un tiempo, es un producto open source con versiones para Windows, Linux, Mac OS X y OpenSolaris. VirtualBox permite realizar virtualización completa eligiendo traducción binaria o asistida por hardware. VMware Quizá el producto con más experiencia y madurez en el mercado. Tiene muchísimas versiones diferentes que soportan múltiples técnicas de virtualización. Entre ellas, la gama ESX instala directamente el hypervisor sobre el hardware, sin necesidad de otro sistema operativo que le sirva de host. Este tipo de plataforma se denomina precisamente non-hosted. Puede accederse a varias versiones gratuitas y otras son pagas. Xen Se utiliza sobre hosts Linux y soporta paravirtualización y virtualización completa por hardware. Es un muy buen producto muy popular entre los usuarios de Linux, sobre todo en plataformas de paravirtualización. OpenVZ Permite que un servidor físico ejecute múltiples instancias de sistemas operativos aislados, conocidos como Servidores Privados Virtuales (VPS) o Entornos Virtuales (EV). Una de sus características es menor flexibilidad en la elección del sistema operativo: tanto los huéspedes como los anfitriones deben ser Linux. Sin embargo, la virtualización en el nivel de S.O de OpenVZ proporciona mejor rendimiento, escalabilidad, densidad, administración de recursos dinámicos y facilidad de administración. Virtualización Página 10 Paravirtualización La Paravirtualización es una técnica de programación informática que permite virtualizar por software sistemas operativos. El programa paravirtualizador presenta una interfaz de manejo de máquinas virtuales. Cada máquina virtual se comporta como un computador independiente, por lo que permite usar un sistema operativo o varios por computador emulado. La intención de la interfaz modificada es reducir la porción del tiempo de ejecución del usuario, empleado en operaciones que son sustancialmente más difíciles de ejecutar en un entorno virtual, comparado con un entorno no virtualizado. La paravirtualización provee filtros especialmente definidos para permitir a los invitados y al anfitrión hacer peticiones y conocer estas tareas, que de otro modo serían ejecutadas en el dominio virtual (donde el rendimiento de la ejecución es peor.) Por lo tanto, una plataforma de paravirtualización exitosa puede permitir que el monitor de la máquina virtual (VMM) sea más simple (por traslado de la ejecución de tareas críticas desde el dominio virtual al anfitrión de dominio), y/o que reduzca la degradación del rendimiento global de la ejecución de la máquina dentro del anfitrión virtual. La paravirtualización requiere que el sistema operativo invitado sea portado de manera explícita para la_API. Una distribución de un sistema operativo convencional que no soporte paravirtualización no puede ser ejecutada ni visualizada en un monitor de máquina virtual VMM. La paravirtualización es un término nuevo para una vieja idea. el sistema operativo VM de IBM ha ofrecido tales características desde 1972 (y antes como CP-67). En el mundo de máquinas virtuales, esto se conoce como "código de DIAGNÓSTICO", debido a que usa un código de instrucción usado normalmente sólo por software para mantenimiento de hardware y por lo tanto indefinido. El sistema operativo de la estación de trabajo paralela hace una llamada a su equivalente a una "hypercall". Todas son lo mismo: una llamada de sistema al hipervisor de abajo. Tales llamadas requieren soporte en el sistema operativo guest,él debe tener código hipervisor específico para hacer tales llamadas. El término "paravirtualización" fue usado inicialmente en literatura investigativa en asociación con el de monitor de máquina virtual. El término también es usado para describir los hipervisores Xen, L4, TRANGO, VMware, Wind River y XtratuM. Todos estos proyectos usan o pueden usar las técnicas de paravirtualización para soportar máquinas virtuales de alto rendimiento en hardware x86 implementando una máquina virtual que no implemente las partes duras-de-virtualizar de el actual conjunto de instrucciones x86. Un ejemplo de uso de paravirtualización por rendimiento: el monitor de máquina virtual puede presentar el sistema operativo guest con una NIC inteligente con soporte para envío de paquetes basado en DMA, incluso si la NIC en el anfitrión (real) carece de esta capacidad. El envío de paquetes es ejecutado enteramente por el monitor de máquina virtual y las señales enviadas a la NIC también. Aunque el envío de señales al sistema operativo guest es costoso, el rendimiento puede mejorar. Virtualización Página 11 Bibliografía http://www.tecnologiapyme.com/software/que-es-la-virtualizacion http://php.rincontecno.com/desktop/node/1950 http://www.baitic.com/productividad/paravirtualizacion-expande-tusposibilidades.html http://www.tecnicobat.com/2012/03/22/que-es-microsoft-hyper-v/ http://es.wikipedia.org/wiki/Paravirtualización Virtualización Página 12