Download maquina virtual

Document related concepts

Máquina virtual wikipedia , lookup

VMware wikipedia , lookup

Hipervisor wikipedia , lookup

Xen wikipedia , lookup

Kernel-based Virtual Machine wikipedia , lookup

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.