Download Tipos de Virtualización
Document related concepts
Transcript
UNIVERSIDAD TECNOLÓGICA ECOTEC FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES Y TELECOMUNICACIONES VIRTUALIZACIÓN SISTEMAS OPERATIVOS I GABRIEL SUAREZ AREVALO SARA NORIEGA 22 DE JUNIO 2012 INDICE Virtualización .……………………………………………………………………………………….pág. 3 Tipos de Virtualización ..………………………………………………………………………..pág. 3 Máquina Virtual…………………………..……………………………………………………….pág. 5 Técnicas de Virtualización…………………………………………………………………….pág. 6 Paravirtualizacion………………………………………………………………………………….pág. 7 Herramientas de Virtualización…………………………………………………………….pág. 8 Conclusión ..……………………………………………………………………………………….pág. 14 2 Virtualización Se conoce como virtualización a un conjunto de técnicas, software y hardware que permite ofrecer sobre una única computadora varios entornos operativos distintos. Pronto surgió la necesidad de ejecutar diferentes sistemas operativos sobre una única plataforma de hardware, dando lugar al nacimiento de las primeras máquinas virtuales (VM, por sus siglas en inglés). En los años subsiguientes el concepto de virtualización se amplió para incluir la abstracción de los recursos de almacenamiento (discos, storages, cintas) y las redes y enlaces de datos. Por ejemplo, la virtualización de un sistema operativo es el uso de una aplicación de software para permitir que un mismo sistema operativo maneje varias imágenes de los sistemas operativos a la misma vez. Esta tecnología permite la separación del hardware y el software, lo cual posibilita a su vez que múltiples sistemas operativos, aplicaciones o plataformas de cómputo se ejecuten simultáneamente en un solo servidor o PC según sea el caso de aplicación. 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 o virtualización de recursos. Virtualización de plataforma: se trata de simular una máquina real (servidor o PC) con todos sus componentes 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 o VPN, 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. 3 Ventajas de la virtualización Las ventajas de disponer de servidores virtualizados frente a servidores físicos son las siguientes: - Ahorro de costes: Podremos adquirir un solo servidor, aunque más potente, y no tener que comprar más servidores sino solamente ir creándolos en el gestor de máquinas virtuales. También permite ahorro en el coste de mantenimiento y en el de personal, además de ahorrar espacio - Crecimiento más flexible: Instalar un nuevo servidor es mucho más sencillo y rápido frente a hacerlo con un servidor físico. - Administración simplificada: Desde la consola del gestor de máquinas virtuales podemos aumentar o reducir los recursos para una determinada máquina, reiniciarla, instalar parches o simplemente borrarla en caso de problemas. - Aprovechamiento de aplicaciones antiguas: Una de las ventajas de la virtualización es la posibilidad de conservar aplicaciones que funcionan en sistemas antiguos y aun así modernizar la infraestructura informática de la empresa. Esa aplicación puede “sobrevivir” en una máquina virtual independiente sin que haga falta conservar el ordenador antiguo. - Centralización de tareas de mantenimiento: Podemos realizar copias de seguridad de un solo golpe de todas las máquinas, programar actualizaciones y otras actividades desde el gestor de máquinas virtuales. También podemos centralizar otras funciones. - Disminuye tiempos de parada: Una ventaja importante, solucionar problemas o realizar copias de seguridad son tareas que se realizan en mucho menos tiempo. Por ejemplo, se puede clonar una máquina y seguir dando servicio mientras se realiza mantenimiento de la máquina virtual de producción como actualizaciones. - Mejor gestión de recursos: Se puede aumentar la memoria o almacenamiento de la máquina huésped para aumentar los recursos de todas las máquinas virtuales a la vez, por lo que se aprovecha mucho mejor las inversiones en hardware. - Balanceo de recursos: Es posible asignar un grupo de servidores físicos para que proporcionen recursos a las máquinas virtuales y asignar una aplicación que haga un balanceo de los mismos, otorgando más memoria, recursos de la CPU, almacenamiento o ancho de banda de la red a la máquina virtual que lo necesite. 4 Desventajas de Virtualizar Comparto algunos mitos, expertos afirman que el precio de virtualizar se ve reflejado en el rendimiento, una maquina virtual no va rendir de igual manera que una maquina física con su propio hardware, ¿Por qué? porque va compartir los recursos hardware con el sistema operativo anfitrión o controlador de Virtualización. Por otra parte, existe temor al poner toda la columna vertical tecnológica de la compañía en una sola máquina, ¿qué pasa en caso de que el chasis o el hardware controlador de las maquinas virtuales falle? Otra pregunta bastante común es: ¿En dónde queda la aceleración por Hardware en la Virtualización? Pero los fabricantes y proveedores de estas tecnologías se han encargado de superar ofreciendo tranquilidad a los usuarios. Maquina Virtual Una máquina virtual es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real. Característica Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual". Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se des configuré el sistema operativo primario. Funcionamiento En primer lugar se crea una máquina virtual, para lo que se dispone de un asistente donde se indican varios detalles como el tamaño del disco duro, cantidad de RAM, conexiones de red, etc. El siguiente paso es, instalar el sistema operativo. El proceso es idéntico a instalarlo en un equipo físico. El programa también dispone de un complemento, se instalan sobre el sistema operativo virtual y aportan características adicionales. 5 Con las máquinas virtuales, podemos tener varios sistemas operativos sin necesidad de crear particiones o tener más discos duros, esto nos permitirá poder tener sistemas operativos para pruebas. Desventaja Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo "anfitrión" (host) o directamente sobre la plataforma de hardware. Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de eficiencia. Técnicas de Virtualización 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 - Virtualización a nivel de sistema operativo - Virtualización a nivel de hardware La virtualización a nivel de hardware: Permite que una única computadora pueda ejecutar múltiples sistemas operativos, iguales o distintos, en forma simultánea, proveyendo mayor aislación entre VM's. Esta técnica se basa en la interposición de una capa de software denominada VMM (Virtual Machine Monitor) entre el hardware y cada VM, las que a su vez brindan el entorno de ejecución a los sistemas operativos virtualizados. La virtualización a nivel de sistema operativo Mejora el rendimiento, gestión y eficiencia. En la base reside un sistema operativo anfitrión estándar. 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. La 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 6 remueve la dependencia de la aplicación respecto de la interface de programación del sistema operativo (API y system calls) y del hardware. De esta forma, las aplicaciones Java pueden correr en múltiples plataformas, tales como PC’s, servidores, celulares y otro dispositivos. Para virtualizació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. Función 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. Uso Actualmente se puede usar tanto como sistema anfitrión o invitado casi cualquier distribución de Linux, además existen ports para NetBSD y OpenSolaris. Con los sistemas propietarios ocurre lo contrario, debido a que se necesita modificar el núcleo para que se ejecute este con un nivel de privilegios distinto, así que ninguno de la familia Windows se puede usar como invitado. 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. 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 7 Virtual Machine Monitor usará para aislar todas las capas superiores de software de las operaciones de virtualización. Kernel-based Virtual Machine (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. Virtual BOX VirtualBox, se trata de un programa de virtualización desarrollado por la empresa alemana Innotek GmbH. Se trata de un programa creado con carácter comercial licenciado y propietario, aunque a principios de año la empresa creadora ha lanzado una versión limitada de VirtualBox bajo licencia GPL. VirtualBox está disponible en sus versiones para sistemas Windows y sistemas Linux de 32-bits, existiendo además una versión beta para sistemas MAC OS X. El programa es capaz de virtualizar Windows, Linux (versión del núcleo 2.x), OS/2 Warp, OpenBSD y FreeBSD. VirtualBox carece de algunas funcionalidades, pero a cambio aporta otras como: - Ejecución remota de máquinas virtuales utilizando Remote Desktop Protocol (RDP). Soporte para iSCSI. Soporte para USB con dispositivos remotos sobre RDP. Como cuestión digna de mención, VirtualBox soporta virtualización VT-x para el hardware de los procesadores de Intel, y de manera experimental, virtualización AMD-V para el de los procesadores AMD. 8 VM Ware El software VM Ware es uno de los más conocidos para el uso en virtualización de software. VMware Inc., es una empresa que proporciona la mayor parte del software de virtualización disponible para ordenadores compatibles X86. Al hablar de VMware estamos pensando en un programa de virtualización de Software cuando realmente en este software se incluyen el software comercial, VMware Workstation, y los gratuitos VMware Server y VMware Player. El software de VMware tiene versiones para diferentes sistemas operativos y es capaz de ejecutarse tanto en Windows, como en Linux e incluso en Mac OS X que corre en procesadores INTEL, en este caso bajo el nombre de VMware Fusión. VMware Workstation es uno de los programas más conocidos, ya que permite la emulación en plataformas PC x86. Esto hace que cualquier usuario con un ordenador de sobremesa o portátil pueda realizar la emulación de tantas máquinas virtuales como los recursos de hardware de su sistema permitan. Esta versión es una aplicación que se instala dentro de un sistema operativo anfitrión (host) como un programa estándar, de tal forma que las máquinas virtuales corren dentro de esta aplicación, existiendo un aprovechamiento restringido de recursos. Recordamos que es software comercial y sujeto a las condiciones del contrato de licencia del fabricante. VMware Player es un producto gratuito que permite ejecutar máquinas virtuales creadas con otros productos, pero no permite crearlas él mismo. Las máquinas virtuales se tienen que crear con productos más avanzados como VMware Workstation, aunque desde la liberación de VMware Player han surgido páginas web donde es posible crear las máquinas virtuales usando otras herramientas como VMX Builder. 9 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 Las máquinas virtuales son usadas a menudo por las empresas en sus servidores y ordenadores centrales para abstraer la mayor cantidad de aplicaciones posibles y proteger las aplicaciones poniéndolas en máquinas virtuales diferentes (semejante a una jaula chroot). Se puede utilizar no sólo por razones de seguridad o funcionamiento, sino también para poder tener ejecutándose diferentes sistemas operativos en el mismo ordenador. Con la migración de máquinas virtuales en caliente de Xen se puede conseguir hacer balance de cargas sin tiempos muertos. 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). Si se lo compara a máquinas virtuales tales como VMware, VirtualBox y las tecnologías de virtualización tales como Xen, Open ofrece menor flexibilidad en la elección del sistema operativo: tanto los huéspedes como los anfitriones deben ser Linux (aunque las distribuciones de GNU/Linux pueden ser diferentes en diferentes EVs). Sin embargo, la virtualización en el nivel de sistema operativo de OpenVZ proporciona mejor rendimiento, escalabilidad, densidad, administración de recursos dinámicos, y facilidad de administración que las alternativas. 10 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. La idea tras los exonúcleos es obligar a los desarrolladores a usar el menor número posible de abstracciones, permitiéndoles hacer tantas decisiones como sea posible sobre las abstracciones de hardware. Los exonúcleos son pequeños, ya que su funcionalidad está limitada a asegurar la protección y el multiplexado de recursos, que son muchísimo más simples que las implementaciones del paso de mensajes y las abstracciones de hardware de los núcleos monolíticos tradicionales. Las aplicaciones pueden pedir direcciones específicas de memoria, bloques de disco, etc. El núcleo sólo asegura que el recurso está libre y se permite a la aplicación usarlo. Este acceso de bajo nivel al hardware permite al programador implementar abstracciones personalizadas y omitir las innecesarias, normalmente contribuyendo a un mejor desempeño de la aplicación. Esto también permite a los programadores escoger qué nivel de abstracción desean. Los exonúcleos pueden ser vistos como una aplicación del principio del "fin al fin" a los sistemas operativos, en el sentido en que no fuerzan a una aplicación a poner sus abstracciones en distintas capas de las que fueron diseñadas con diferentes requisitos en mente. Por ejemplo, en el proyecto del exonúcleo del MIT, el servidor web Cheetah guarda paquetes preformateados del protocolo IP en el disco, y el núcleo garantiza un acceso seguro al disco evitando lecturas y escrituras no permitidas, pero cómo se abstrae el funcionamiento del disco se deja a la elección de las librerías que la aplicación usa. 11 Hyper-V Hyper-V es un rol de Windows Server 2008 R2 que proporciona las herramientas y los servicios necesarios para crear un entorno servidor virtualizado. Este entorno virtualizado se puede usar para abordar diversos objetivos empresariales orientados a mejorar la eficacia y reducir los costos. Además, este tipo de entorno es útil en el sentido de que permite crear y administrar máquinas virtuales de manera que se puedan ejecutar varios sistemas operativos en un único equipo físico y aislar tales sistemas operativos entre sí. Que funcionalidades nos aporta Hyper –V Entre las principales funcionalidades de Hyper-V destacan las siguientes: •Una nueva arquitectura nueva, muy mejorada: La nueva arquitectura de hypervisor basada en micro-kernel de 64 bits permite a Hyper-V soportar una amplia gama de dispositivos y conseguir un mejor rendimiento y mayor seguridad. •Soporte para sistemas operativos muy diversos: Incluye soporte para la ejecución simultánea de distintos tipos de sistemas operativos, tanto de 32 como de 64 bits, en distintas plataformas de servidor, como Windows y Linux. •Soporte para SMP: Es capaz de soportar arquitecturas SMP con hasta 4 procesadores en entornos de máquina virtual, con lo que puede aprovechar al máximo las ventajas de las aplicaciones multi-thread en VM. •Soporte para memoria: Soporta el direccionamiento de gran cantidad de memoria para cada máquina virtual, haciendo posible la ejecución virtualizada de prácticamente cualquier tarea, con lo que Hyper-V se convierte en la plataforma ideal tanto para grandes compañías como empresas pequeñas o medianas. •Acceso mejorado al sistema de almacenamiento: Con acceso a disco en modo “passthrough” y un amplio soporte para SAN y acceso a discos internos, Hyper-V ofrece una gran flexibilidad a la hora de configurar y utilizar de forma óptima los entornos y recursos de almacenamiento. •Nueva arquitectura de hardware compartido: La nueva arquitectura de proveedor de servicio virtual/cliente de servicio virtual (VSP/VSC) permite a Hyper-V conseguir un mejor rendimiento y un nivel más elevado de utilización de los recursos básicos como los discos duros, dispositivos de red, vídeo, etc. 12 •Migración rápida: Hyper-V facilita la migración rápida hacia una máquina virtual desde cualquier sistema host físico a otro, con pérdidas de servicio mínimas, aprovechando las capacidades bien conocidas de alta disponibilidad de Windows Server y las herramientas de gestión System Center. •Componentes de integración de Linux: Los componentes de integración de Linux (Beta) ya están disponibles para las ediciones x86 y x64 de SUSE Linux Enterprise Server 10 SP1. Estos componentes de integración permiten aprovechar desde Linux compatible con Xen todas las ventajas de la arquitectura VSP/VSC y obtener un mejor rendimiento. Los componentes de integración Linux Beta ya se pueden descargar desde el sitio Web connect.microsoft.com. •Instantáneas de Máquina Virtual: Hyper-V es capaz de obtener instantáneas de una máquina virtual en ejecución, gracias a las cuales se pueden revertir a un estado anterior y mejorar las posibilidades de las soluciones de backup y recuperación ante desastres. •Escalabilidad: Con soporte para múltiples procesadores y núcleos en el nivel de host y un acceso a memoria mejorado dentro de las máquinas virtuales, los entornos de virtualización pueden escalar verticalmente para dar soporte a un mayor número de máquinas virtuales sobre la misma máquina física, y seguir aprovechando las facilidades de migración rápida para una mayor escalabilidad en entornos de múltiples hosts. •Extensible: Las APIs e interfaces WMI (Windows Management Instrumentación), basadas en estándares de la industria de Hyper-V hacen posible que los fabricantes y desarrolladores de software independientes puedan crear herramientas propias, utilidades y mejoras para la plataforma de virtualización. 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 13 Conclusión Hoy en día se conoce más sobre las herramientas de virtualización las cuales nos ofrecen un sin número de facilidades comenzando desde las económicas ya que permiten tener dentro de un mismo servidor o maquina física un número considerable de máquinas lógicas todo dependiendo de los recursos de las maquinas físicas, todas esta herramientas nos permiten la creación de máquinas sin importar el sistema operativo que se vaya a manejar la mayor parte de ellas como Vmware ofrecen diferentes herramientas por separado para este objetivo también nos ofrece una consola para el manejo de todos los host que albergan a las máquinas virtuales. La tecnología de todo software que nos permiten realizar la virtualización va mejorando con el tiempo y dando mayores recursos para hacer más cómoda la interacción y mantenimiento de las máquinas virtuales. 14