Jimenez Zamudio Eduardo Aplicaciones de redes de computadoras 13 de septiembre de 2014 Maquinas virtuales Conceptos Básicos Concepto Básicamente, es un equipo dentro de un equipo, implementado en el software. Una máquina virtual emula un sistema de hardware completo, desde el procesador a la tarjeta de red, en un entorno de software independiente y aislado que permite el funcionamiento simultáneo de sistemas operativos que serían incompatibles de otro modo. Cada sistema operativo se ejecuta en su propia partición de software independiente. Tipos de maquinas virtuales Máquinas virtuales de hardware Las máquinas virtuales de hardware también llamadas máquinas virtuales de sistema, son aplicaciones que tratan de emular directamente el hardware. Las llamadas al hardware del sistema operativo instalado serán capturadas y convertidas en llamadas al sistema del hardware emulado. En general, la emulación del hardware recibe el nombre de virtualización. Al emularse directamente el hardware, el usuario tiene la impresión de que la máquina sobre la que está trabajando es totalmente independiente. Estas maquinas virtuales, permiten a la máquina física subyacente multiplicarse entre varias máquinas virtuales, cada una ejecutando su propio sistema operativo. A la capa de software que permite la virtualización se la llama monitor de máquina virtual o hypervisor. Un monitor de máquina virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un sistema operativo ("host operating system ). Máquinas virtuales de software Las máquinas virtuales de software también llamadas como máquinas virtuales de proceso, este tipo de máquinas virtuales se sitúan por encima del sistema operativo y tratan de "1
" aislar a las aplicaciones del entorno sobre el que se ejecutan. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando éste finaliza. Su objetivo es el de proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma. La máquina virtual de Java o la máquina virtual del entorno.net son dos claros ejemplos de máquinas virtuales software. Técnicas de implementación de maquinas virtuales Emulación del hardware subyacente o Virtualización completa Este modelo utiliza una máquina virtual que media entre el sistema operativo invitado y el hardware nativo. "Mediar" es la palabra clave aquí porque la VMM está entre el sistema el sistema operativo invitado y el hardware real. Algunas instrucciones protegidas deben capturarse y manejarse dentro del hipervisor ya que el hardware subyacente no es propiedad de un sistema operativo sino que es compartido a través del hipervisor. Son 2 tipos de hipervisores: el tipo 1 : se ejecuta directamente sobre el hardware. el tipo 2 : se ejecuta sobre otro sistema operativo. Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware subyacente. Así los usuarios pueden ejecutar dos o más sistemas operativos distintos simultáneamente en computadoras "privadas" virtuales. Virtualización completa "2
" Emulación de un sistema no nativo Las máquinas virtuales también pueden actuar como emuladores de hardware, permitiendo que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se puedan ejecutar sobre un hardware que en teoría no soportan. Algunas máquinas virtuales emulan hardware que sólo existe como una especificación. Por ejemplo: La máquina virtual de Java. La máquina virtual del entorno.net. Paravirtualización La paravirtualización es otra técnica popular que cuenta con algunas similitudes con la virtualización completa. Este método utiliza un hipervisor para compartir el acceso al hardware subyacente pero integra código que está al tanto de la virtualización en el propio sistema operativo. Esta aproximación evita la necesidad de recompilar y capturar ya que los propios sistemas operativos cooperan en el proceso de virtualización. La paravirtualización precisa que los sistemas operativos alojados sean modificados por el hipervisor, lo que es una desventaja. Pero la paravirtualización ofrece un rendimiento próximo al de un sistema no virtualizado. Del mismo modo que con la virtualización completa, es posible soportar varios sistemas operativos diferentes de manera concurrente. Paravirtualización Virtualización en el nivel del sistema operativo Esta técnica consiste en dividir una computadora en varios compartimentos independientes de manera que en cada compartimento podamos instalar un servidor. A estos compartimentos se los llama "entornos virtuales". Desde el punto de vista del usuario, el "3
sistema en su conjunto actúa como si realmente existiesen varios servidores ejecutándose en varias máquinas distintas. Dos ejemplos son las zonas de Solaris (Solaris Zones) y la técnica de Micro Partioning de AIX. La virtualización en el nivel del sistema operativo, utiliza una técnica diferente a las que hemos visto. Esta técnica virtualiza los servidores encima del propio sistema operativo. Este método soporta un solo sistema operativo y simplemente aísla los servidores independientes. La virtualización en el nivel del sistema operativo requiere cambios en el núcleo del sistema operativo, la ventaja es un rendimiento igual a la ejecución nativa. Virtualización en el nivel del sistema operativo Ventajas 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. "4
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. Desventajas Agregan gran complejidad al sistema en tiempo de ejecución. La principal desventaja de la máquina virtual, es que en la aplicación de algunos proceso tendrá como efecto la lentitud del computador, es decir, la computadora en la cual se esta ejecutando este proceso debe tener una capacidad bastante notable debe ser de gran capacidad o potente. Los lenguajes basados en máquina virtual, poseen una desventaja es que efectivamente son más lentos que los lenguajes completamente compilados, debido a la sobrecarga que genera tener una capa de software intermedia entre la aplicación y el hardware de la computadora, sin embargo, Esta desventaja no es demasiado crítica. Software para virtualizar Disponemos de un amplio abanico de posibilidades entre las que podemos encontrar opciones muy diferentes, que se adaptarán en mayor o menor medida al uso que pensemos hacer de ellas. - VMware: VMware Inc. es, probablemente la empresa de referencia en el mundo de la virtualización. - Windows Server 2008 R2 Hyper-V: es la respuesta de Microsoft en el mundo de los servidores de virtualización. Se puede instalar como un rol dentro de Windows Server 2008, o como un producto independiente. - Oracle VM VirtualBox: es un software de virtualización creado originalmente por una empresa llamada Innotek. Ésta empresa fue adquirida inicialmente por Sun Microsystems que, a su vez, ahora es propiedad de Oracle. Según diversas encuestas, VirtualBox es la opción preferida por la mayoría de los usuarios de sistemas de escritorio. - Parallels Desktop for Mac: Se trata de un producto de la empresa Parallels, Inc., que ofrece virtualización en ordenadores Apple con procesadores Intel y sistema operativo Mac OS X. - Xen: es un software de virtualización creado originalmente en el Laboratorio de Informática de la Universidad de Cambridge, pero desde 2010 es mantenido por la comunidad Xen, que lo desarrolla y lo mantiene bajo licencia GPLv2. "5
- OpenVZ: es un software de virtualización exclusivo para sistemas GNU/Linux. Es decir, tanto los sistemas anfitriones como los invitados deben ser GNU/Linux, aunque puede tratarse de diferentes distribuciones. Conclusión En la actualidad hay un gran numero de herramientas para virtualizar cada una con características únicas por lo cual se puede encontrar en ellas la visualización que se requiera. El tener la capacidad de utilizar este tipo de herramientas es necesario debido a la creciente demanda que se tiene en el mercado del manejo de este tipo de tecnologías. Ya que como se puede ver en el documento hay un gran numero de soluciones que se pueden brindar al emplear la virtualización. Por otro lado se puede ver que las ventajas de su utilización son más que las desventajas. Como caso personal, me ha resultado el usar la visualización ya que tengo la capacidad de interactuar con diversos sistemas operativos (S.O.) sin necesidad de adquirir equipo nuevo, así como el borrado del sistema operativo nativo, ni el daño de mis archivos. Dándome la oportunidad de relacionarme con otros S.O. así como probar herramientas de software de ellos. Referencias http://www.ecured.cu/index.php/m%c3%a1quinas_virtuales http://wiki.inf.utfsm.cl/index.php?title=m%c3%a1quinas_virtuales http://computacion.cs.cinvestav.mx/~ameneses/pub/tesis/ltesis/node4.html http://somebooks.es/?p=3366 "6