Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Introducción a la Virtualización Carreras: • Lic. en Sistemas • Ing. Informática Ing. Carlos A. Afranllie • La virtualización comenzó a desarrollarse en la década de los sesenta para particionar grandes piezas de hardware mainframe y lograr una mejor utilización de hardware. • En la actualidad, las computadoras basadas en arquitecturas x86 se enfrentan al mismo problema de rigidez y subutilización que enfrentaron los mainframes en la década de los sesenta. • Empresas como VMware comenzaron el tema de la virtualización para plataformas x86 en la década de los noventa para combatir la subutilización y otros problemas, y tuvo que enfrentar muchos desafíos en el camino. Introducción El comienzo: virtualización de mainframe IBM implementó la virtualización por primera vez hace más de 30 años para particionar de manera lógica computadoras mainframe en máquinas virtuales separadas. Estas particiones permitieron que las mainframes ejecutaran múltiples tareas a la vez, es decir, que ejecutaran varias aplicaciones y procesos al mismo tiempo. Introducción Debido a que las mainframes constituían recursos costosos en ese momento, fueron diseñadas para permitir la creación de particiones como un modo de aprovechar totalmente la inversión. Introducción La necesidad de la virtualización x86 La virtualización se abandonó efectivamente durante las décadas de los ochenta y noventa, cuando las aplicaciones de cliente-servidor y los servidores y escritorios x86 poco costosos dieron paso a la computación distribuida. La adopción masiva de Windows y la aparición de Linux como sistemas operativos para servidores en la década de los noventa establecieron a los servidores x86 como el estándar de la industria. Introducción El crecimiento en las implementaciones de servidores y escritorios x86 generó nuevos desafíos operacionales y de infraestructura de TI. Estos desafíos incluyen: • Poca utilización de la infraestructura: las implementaciones típicas de servidores x86 alcanzan un promedio de utilización de solo el 10-15% de la capacidad total, según International Data Corporation (IDC), una empresa de investigación de mercado. Las organizaciones suelen ejecutar una aplicación por servidor para evitar que la vulnerabilidad de una aplicación afecte la disponibilidad de otra aplicación del mismo servidor. Desafíos • Mayores costos de infraestructura física: los gastos operacionales que sustentan el crecimiento de la infraestructura física han aumentado de manera continua. La mayor parte de la infraestructura de computación debe estar en funcionamiento en todo momento, lo que implica un costo por consumo de energía, refrigeración e instalaciones que no varía de acuerdo con los niveles de utilización. Desafíos • Mayores costos de administración de TI: a medida que los entornos de computación se vuelven más complejos, el nivel de capacitación y experiencia especializada requeridos para el personal de administración de infraestructura y los costos asociados a tal personal aumentan. Las organizaciones gastan tiempo y recursos de forma desproporcionada en tareas manuales asociadas al mantenimiento de servidores, y eso requiere más personal. Desafíos • Insuficiencia de conmutación de recuperación y protección contra desastres: las organizaciones se ven cada vez más afectadas por el tiempo fuera de servicio de aplicaciones fundamentales de servidor y la falta de accesibilidad de escritorios fundamentales de usuario final. La amenaza de los ataques a la seguridad, los desastres naturales, las pandemias y el terrorismo han aumentado la importancia de una planificación para la continuidad del negocio en cuanto a servidores y escritorios. Desafíos • Demasiado mantenimiento para los escritorios de usuario final: la administración y la seguridad de los escritorios empresariales generan varios desafíos. Controlar un entorno distribuido de escritorio y promover políticas de administración, acceso y seguridad sin afectar el trabajo efectivo de los usuarios es complejo y muy costoso. Es necesario cambiar a versiones superiores y aplicar parches continuamente en los entornos de escritorio para eliminar las vulnerabilidades de seguridad. Desafíos Obstáculos de la virtualización x86 • A diferencia de las mainframes, las máquinas x86 no fueron diseñadas para ser compatibles con la virtualización total; por ende, los programas de virtualización del momento, tuvieron que enfrentar desafíos enormes para crear máquinas virtuales a partir de computadoras x86. Obstáculos • La función básica de la mayoría de las CPU, tanto en mainframes como en PC, es ejecutar una secuencia de instrucciones almacenadas (es decir, un programa). En los procesadores x86, hay 17 instrucciones específicas que generan problemas al ser virtualizadas, lo que provoca que el sistema operativo muestre una advertencia, cierre la aplicación o simplemente colapse todo el sistema. Por lo tanto, estas 17 instrucciones representaron un gran obstáculo en la implementación inicial de la virtualización en computadoras x86. Obstáculos • Para manejar las instrucciones problemáticas en la arquitectura x86, con software como el VMware se desarrollaron unas técnicas de virtualización adaptables que "atrapan" estas instrucciones a medida que se generan y las convierte en instrucciones seguras que se pueden virtualizar, al mismo tiempo que permite que las demás instrucciones se ejecuten sin intervención. El resultado es una maquina virtual de alto rendimiento y del mismo nivel del hardware anfitrión que mantiene una compatibilidad de software total. Obstáculos VMWare dio los primeros pasos con esta técnica y hoy es el líder indiscutible en cuanto a tecnología de virtualización VMWare ¿Qué es la Virtualización? La virtualización es una tecnología de software probada que está transformando con rapidez el panorama de TI y está cambiando totalmente el modo de manejar la computación. ¿Qué es la Virtualización? El potente hardware de las computadoras x86 de hoy en día fue diseñado para ejecutar un solo sistema operativo y una sola aplicación. Esto hace que la mayoría de las máquinas estén subutilizadas. La virtualización le permite ejecutar varias máquinas virtuales en una sola máquina física, y compartir los recursos de esa computadora en varios entornos. ¿Qué es la Virtualización? Diferentes máquinas virtuales pueden ejecutar distintos sistemas operativos y varias aplicaciones en una misma computadora física. ¿Qué es una Máquina Virtual? Una máquina virtual es un contenedor de software aislado que puede ejecutar sus propios sistemas operativos y aplicaciones como si fuera una computadora física. Una máquina virtual se comporta exactamente como una computadora física ya que contiene su propia CPU, memoria RAM, disco duro y tarjeta de interfaz de red (NIC) virtuales (es decir, basados en software). ¿Qué es una Máquina Virtual? • Un sistema operativo no puede notar la diferencia entre una máquina virtual y una máquina física, así como tampoco las aplicaciones u otras computadoras en una red. Incluso la máquina virtual "cree" que es una computadora física. • Pero una máquina virtual está compuesta totalmente por software y no contiene ningún tipo de componente de hardware. Por lo tanto, las máquinas virtuales ofrecen una cantidad de ventajas únicas sobre el hardware físico. ¿Qué es una Máquina Virtual? Comparación entre una máquina sin virtualización y otra con virtualización Ventajas de las Máquinas Virtuales En general, las máquinas virtuales poseen cuatro características fundamentales para el usuario: – Compatibilidad: las máquinas virtuales son compatibles con todas las computadoras x86 estándar. – Aislamiento: las máquinas virtuales se encuentran aisladas entre sí como si estuvieran separadas físicamente. – Encapsulamiento: las máquinas virtuales encapsulan un entorno de computación completo. – Independencia del hardware: las máquinas virtuales funcionan independientemente del hardware subyacente.Ventajas de las Máquinas Virtuales • 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. Mejora de TCO (costo total de propiedad ) y ROI (retorno de la inversión). • 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. Ventajas de las Máquinas Virtuales • 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. • 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. • Disminuye tiempos de parada: Una ventaja importante, solucionar problemas o realizar copias de seguridad son tareas que se realizan en mucho menos tiempo. Ventajas de las Máquinas Virtuales • 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. • Pruebas: 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. Ventajas de las Máquinas Virtuales • Aislamiento: un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales. • Paradas: Reduce los tiempos de parada. • Migración: 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. • Organización: La virtualización mejora notablemente la eficiencia y la disponibilidad de recursos y aplicaciones de su organización. Los recursos internos ya no se subutilizan con el antiguo modelo de "un servidor=una aplicación". Desventajas de la Virtualización • Rendimiento inferior: Un sistema operativo virtualizado nunca alcanzará las mismas cotas de rendimiento que si estuviera directamente instalado en el hierro. • 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. Desventajas de la Virtualización • 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. • 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. • La portabilidad: entre plataformas está condicionada a la solución de virtualización adoptada. Desventajas de la Virtualización • 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. • 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 • El sistema operativo anfitrión se vuelve de rol crítico: Hasta ahora estábamos acostumbrados a utilizar un sistema para todas nuestras necesidades. Infraestructura Virtual Las máquinas virtuales son un pilar importante para una solución mayor: la infraestructura virtual. Si bien una máquina virtual simula los recursos de hardware de una computadora entera, la infraestructura virtual simula los recursos interconectados de hardware de una infraestructura de TI completa (incluso las computadoras, los dispositivos de red y los recursos de almacenamiento compartido). Infraestructura Virtual Organizaciones de todo tipo utilizan soluciones similares para construir infraestructuras virtuales de servidor y escritorio que mejoran la disponibilidad, la seguridad y la capacidad de administración de las aplicaciones de misión crítica. ¿Cómo funciona la Virtualización? • Existen diferentes plataformas de virtualización en el mercado (VmWare, Hyper-V, Xen, etc…), que vienen moduladas con una arquitectura diseñada para el negocio. • Con estos software de virtualización, se pueden transformar o virtualizar los recursos de hardware de una computadora basada en x86 (incluso la CPU, la memoria RAM, el disco duro y el controlador de redes) y crear una maquina virtual totalmente funcional que pueda ejecutar su propio sistema operativo y aplicaciones como si fuera una computadora física. ¿Cómo funciona la Virtualización? • Cada máquina virtual contiene un sistema completo, lo que elimina conflictos potenciales. La virtualización introduce una capa ligera de software directamente en el hardware de la computadora o en un sistema operativo anfitrión. Ésta contiene un monitor de máquina virtual o "hipervisor" que asigna recursos de hardware de forma dinámica y transparente. Varios sistemas operativos funcionan simultáneamente en una sola computadora física y comparten recursos de hardware entre sí. ¿Cómo funciona la Virtualización? HyperVisor ¿Cómo funciona la Virtualización? • Gracias al encapsulamiento total de una máquina, que incluye la CPU, la memoria, el sistema operativo y los dispositivos de red, la máquina virtual es totalmente compatible con todos los sistemas operativos, aplicaciones y controladores de dispositivos x86 estándar. ¿Cómo funciona la Virtualización? • Además, también se pueden ejecutar varios sistemas operativos y aplicaciones de forma segura y al mismo tiempo en una computadora y que cada uno de ellos tenga acceso a los recursos que necesita cuando los necesita. ¿Cómo funciona la Virtualización? • La virtualización de una computadora física es sólo el comienzo, ya que se puede construir una infraestructura virtual entera y escalarla a cientos de computadoras físicas y dispositivos de almacenamiento interconectados, que permiten implementaciones como base para la creación de nubes publicas y privadas ¿Cómo funciona la Virtualización? • Al hacer esto no es necesario asignar servidores, almacenamiento o ancho de banda de red de forma permanente para cada aplicación. Por el contrario, sus recursos de hardware se asignan de forma dinámica cuando y donde se necesita en su nube privada. • Las aplicaciones de mayor prioridad siempre cuentan con los recursos necesarios, evitando así invertir dinero en hardware que sólo se utiliza en horarios pico. ¿Cómo funciona la Virtualización? Tipos de Máquinas Virtuales • Las VM las podemos clasificar en dos categorías, descritas a continuación: • Máquinas virtuales de sistema (en inglés System Virtual Machine). • Máquinas virtuales de proceso (en inglés Process Virtual Machine). Máquinas Virtuales de Sistema • Las máquinas virtuales de sistema, también conocidas como hardware VM, proporcionan un entorno completo, en el que múltiples sistemas operativos y procesosde múltiples usuarios pueden coexistir. • Diferentes sistemas operativos pueden coexistir en una misma máquina. Las máquinas virtuales pueden proporcionar una arquitectura de instrucciones (ISA) que sea diferente a la de la máquina en la que se ejecuta (host), lo que implica, que puede simular hardware. Máquinas Virtuales de Proceso • Una máquina virtual de proceso, o máquina virtual de aplicación, se ejecuta como un proceso normal dentro de un sistema operativo, creando un pequeño entorno virtual que contiene los componentes necesarios para su ejecución. • Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, y elimina los conflictos entre aplicaciones, y aplicaciones y el sistema operativo. El ejemplo más característico de este tipo de VM sería la Java Virtual Machine de Sun. Técnicas de Virtualización A la Virtualización las podemos clasificar en: • Emulación. • Paravirtualización • Virtualización Completa • Virtualización a nivel SO Emulación • Este es el tipo de virtualización más complejo de lograr. Consiste en emular, mediante máquinas virtuales, los componentes de hardware. De esta manera el sistema operativo no se ejecuta sobre el hardware real sino sobre el virtual. • La gran ventaja de este enfoque es que pueden emularse distintas plataformas de hardware (por ejemplo, x86 sobre SPARC). • Su principal desventaja es el alto costo de traducción de cada una de las operaciones de las máquinas virtuales a la máquina real, pudiendo obtenerse un rendimiento de 100 a 1000 veces menor. Paravirtualización • La paravirtualización consiste en ejecutar sistemas operativos guests sobre otro sistema operativo que actúa como hipervisor (host). Los guests tienen que comunicarse con el hypervisor para lograr la virtualización. • Las ventajas de este enfoque son un muy buen rendimiento y la posibilidad de ejecutar distintos sistemas operativos como guests. Se obtienen, además, todas las ventajas de la virtualización enunciadas anteriormente. • Su desventaja es que los sistemas operativos guests deben ser modificados para funcionar en este esquema. Virtualización Completa • La virtualización completa es similar a la paravirtualización pero no requiere que los sistemas operativos guest colaboren con el hypervisor. En plataformas como la x86 existen algunos inconvenientes para lograr la virtualización completa, que son solucionados con las últimas tecnologías propuestas por AMD e Intel. • Este método tiene todas las ventajas de la paravirtualización, con el añadido de que no es necesaria ninguna modificación a los guests. • La única restricción es que estos últimos deben soportar la arquitectura de hardware utilizada. Virtualización por Software • Este es el otro extremo de la virtualización. En este esquema no se virtualiza el hardware y se ejecuta una única instancia del sistema operativo (kernel). Los distintos procesos perteneciente a cada servidor virtual se ejecutan aislados del resto. • La ventaja de este enfoque es la separación de los procesos de usuario prácticamente sin pérdida en el rendimiento, pero al compartir todos los servidores virtuales el mismo kernel no pueden obtenerse el resto de las ventajas de la virtualización. Soluciones existentes en el mercado APLICACIÓN TIPO DE LICENCIA VirtualBox GPL v2 Open VZ GPL Bochs LGPL XEN GPL QEMU GPL/LGPL Virtual PC Privativa Virtual Server Privativa Vmware Privativa Parallels Privativa Existen en la actualidad en el mercado aplicaciones basadas en software libre (con licencias GPL, LGPL), como privativas, esto lo podemos ver resumido en la tabla.
Compartir