Virtualización

Voy a publicar un pequeño resumen sobre virtualización. Iré actualizándolo con las nuevas entrada que añada al blog que tengan que ver con este tema.

 

Podemos aprender qué se puede virtualizar la memoria, el disco, las redes, etc

Imprescindible saber que es un hipervisor.

y hacia donde evoluciona la virtualización

 

 

 

 

Tipos de virtualizacion

El problema que planteo hoy es reconocer las diferentes formas o clases que existen en virtualización.

virtualization1

¿para que virtualizamos?

Para obtener una serie de beneficios, cada cual piensa que son mas útiles unos que otros, pero para destacar o resumir la lista pondré los siguientes:

  • Aprovechamiento máximo los recursos de procesador, disco y memoria
  • Infraestructuras convergentes de IT.
  • Aislamiento y portabilidad.
  •  Seguridad, flexibilidad, agilidad y mantenimiento centralizado.
  • Consolidación de servidores.
  • Alargar la vida de sistemas operativos o aplicaciones antiguas.
  • Mejorar las técnicas de redundancia y clusterización.
  • Multiplica las posibilidades del puesto de trabajo del usuario.

 ¿Que se puede Virtualizar?

Se puede virtualizar casi todo:

  • Hardware
  • Procesador
  • Memoria
  • Redes
  • Almacenamiento
  • Software
  • Sistema operativo

 

Virtualización de Máquinas, VMs: Dos grandes técnicas:

  • Virtualización del Hardware, es la técnica en la que se crea un hardware sintético el cual usan las maquinas virtuales como propio. Esta tecnica es la mas desarrollada y hay diferentes clases que cada fabricante ha ido desarrollando y adaptando
  • Virtualización del Sistema Operativo, en esta técnica lo que se virtualiza es el SSOO completo el cual corre directamente virtual sobre la máquina fésica. Esta técnica menos desarrollada tiene un gran rendimiento.

 

Virtualización del Hardware

hypervisor_big

Esta técnica llamada de Hipervisor es la mas extendida y se ha ramificado en varias clases según la forma de virtualizar el hardware. Desde la que virtualiza las piezas de hardware por separado y creando un driver especifico para cada una de ellas hasta las mas modernas que crean un microkernel sobre el que funciona igualmente el sistema operativo y máquinas virtuales. Esta última es la forma de virtualización a la que tiende la tecnología: virtualización nativa y en la que Microsoft con su hipervisor Hyper-V, va a la cabeza.

Podéis ver un resumen de las técnicas usadas con hipervisor en esta entrada: que-es-un-hipervisor/

 

Virtualización del Sistema operativo

virtualizing_big

Esta tecnica menos hablada pero igualmente buena, se virtualiza el sistema operativo del host y separa cada maquina virtual en «containers» y los cuales acceden por igual a todos los recursos del sistema. La ventaja es a su vez una desventaja: Todas las maquinas virtuales usan el mismo Kernel que el sistema operativo lo que reduce mucho los errores y multiplica el rendimiento, pero a su vez solo puede haber un mismo tipo de sistema operativo en los contenedores, no podemos mezclar Windows-Linux-Etc. Este sistema, también se acerca mucho a lo que seria una virtualización nativa.

Actualmente, tiene casi como único desarrollador a Parallels con su Virtuozzo SO.

 

Preguntas que nos vamos hacer después de leer esta entrada:

¿Que es la Paravirtualización?

Tipo de virtualización en que intervienen las características del hardware. Los fabricantes preparan, sobre todo, los procesadores para que maquinas virtuales puedan trabajar con ellos más directamente.

Mas detallado en esta entrada, Paravirtualización

¿Que es un Hipervisor?

Es una técnica por la cual se obtiene varias máquinas lógicas que funcionan dentro de una única física.

Mas detallado en esta entrada ¿Que es un Hipervisor?

 

 

¿Que es un Hipervisor?

La Virtualización  (ver aqui)

La virtualización consiste en alojar sistemas operativos fuera de su harware. Para ello se necesita un software que emule un hardware sobre el que se alojará el sistema operativo. Al software que realiza tal operación se le denomina hypervisor y se ejecuta en una máquina host o anfitrión, El software virtualizado se denomina maquina virtual o sistema operativo invitado.

virtualizacion

Los Hipervisores

Históricamente IBM llamaba al sistema operativo «supervisor» ya que en realidad era básicamente un kernel que supervisaba el hardware. Así que las técnicas de virtualización de hardware a adoptado la palabra «hipervisor» o hypervisor para referirse a esta nueva forma de «kernel».

El hipervisor es el elemento del sistema operativo o de software que administra y hace que funcionen las maquinas virtuales sobre un hardware virtual. El Hipervisor, (algunos lo llaman VMM “motor de máquina virtual”, pero por no confundir con el Virtual Machine manager, no lo nombraré de tal forma) Tiene varias tarea, por un lado presentan a los sistemas virtualizados, también proveen de un Hardware virtual a las VM y de monitorizar a estas máquinas.
Por resumir hay dos tipos de hipervisores: los Nativos o unhosted, los llamado «de tipo 1»  y los alojados,  «de tipo 2» que necesitan de un Sistema operativo para su ejecución. Abría una tercera clase denominada híbrida con características de estas dos tecnologías.

  • Hipervisores Nativos, el hipervisor se ejecuta directamente sobre el hardware o máquina Host (bare-metal) y es el que se encarga de controlar todos los accesos al hardware. Aunque es la tecnologia mas antigua, tambien es la que utilizan las soluciones de virtualización mas potentes: Hyper-V, Citrix Xen y VMWare ESX-Server.

hypervisor_1

  • Hipervisor alojado, en este tipo de hipervisores (hosted), el hipervisor es un programa que se ejecuta sobre un Sistema Operativo como Windows, Linus, OSX, y sobre el hipervisor se cargan las diferentes máquinas virtuales. Ejemplos claros y puros serian las máquinas virtuales Java o .Net.

hipervisor_2

  • Un último grupo mezcla de los anteriores son los hipervisores híbridos en los que Sistema operativo, host e hipervisor compiten por el hardware. Estas serian Virtual Server de Microsoft, Virtual Box de Oracle.

hypervisor_3

Diferencias entre Hyper-V y VMWare ESX

En realidad hay mas de las que aparentan, en realidad se basan en soluciones diferentes de Virtualización Nativa, Virtualización Monolítica y virtualización de Microkernel

 

vmware-logo

La Virtualización Monolítica es complicada, ya que cuando una VM hace una llamada al Hardware, el hardware virtualizado redirige la llamada a drivers en el hipervisor, el cual enruta esa llamada al recurso real. Así es como opera VMWare, el cual utiliza mucho código para conseguir esto.

 

Windows-Server-Hyper-V

La virtualización con microkernel es mas sencilla puesto que las máquina virtuales no necesitan de drivers específicos sino que acceden directamente al hardware con los mismos drivers que usa el hypervisor, asi el hypervisor aparece como una capa transparente dedicada a separar y administrar las diferentes maquinas virtuales. Hyper-V trabaja de esta manera siendo así mas estable y con un rendimiento mas alto.