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