Virtualización

virtualizacion_servidores1-1508x706_cDEFINICIÓN DE VIRTUALIZACIÓN

virtualización es la creación a través de software de una versión virtual de algún recurso tecnológico, como puede ser una plataforma de hardware, un sistema operativo, un dispositivo de almacenamiento u otros recursos de red.

Dicho de otra manera, se refiere a la abstracción de los recursos de una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de abstracción entre el hardware de la máquina física (host) y el sistema operativo de la máquina virtual (virtual machine, guest), dividiéndose 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, Dispositivos Periféricos y Conexiones de Red) y así podrá repartir dinámicamente dichos recursos entre todas las máquinas virtuales definidas en el computador central. Esto hace que se puedan tener varios ordenadores virtuales ejecutándose en el mismo ordenador físico.

 

VENTAJAS DE VIRTUALIZAR ENTORNOS

La virtualización puede mejorar la flexibilidad, la escalabilidad y la agilidad de un departamento IT a la vez que permite disfrutar de unos ahorros importantes. Las cargas de trabajo se implementan más rápido, el rendimiento y la disponibilidad mejoran, y las operaciones se automatizan, con la consiguiente simplificación de la gestión de la infraestructura de TI.

Algunas de estas ventajas son:

  • Reducción de los costes en las infraestructuras a implementar.
  • Aumenta la productividad, la eficiencia y la agilidad.
  • Acelera y simplifica el despliegue de recursos y aplicaciones.
  • Respalda la continuidad de la infraestructura y la recuperación ante desastres.
  • Permite una gestión centralizada.
  • Crear entornos de pruebas para desplegar aplicaciones.
  • Aislar determinados servicios en diferentes servidores reduciendo así los riesgos de seguridad.
  • Posibilidad de realizar pruebas de pentesting en diferentes sistemas y entornos.

Virtualizacion servidores

ARQUITECTURAS DE VIRTUALIZACIÓN

Virtualización a partir de un Sistema Operativo anfitrión (Host)

Consiste en una máquina física (hardware), un sistema operativo anfitrión (Host), llámese Windows, GNU/Linux, Mac OS, etc.…y una capa de virtualización creada a través del sistema operativo anfitrión.

Ésta es la más común en entornos de usuario, podemos ejecutar aplicaciones en el sistema operativo anfitrión utilizándolo como sistema primario, mientras que en cada una de las Máquinas Virtuales tendremos otros sistemas operativos dedicados a otros fines, no obstante pagaremos esta flexibilidad con una sobrecarga en el sistema, debido a las múltiples capas que existen entre las Máquinas Virtuales y el sistema anfitrión como asignación de recursos hardware, aplicaciones, etc.…

Para este tipo de virtualización podemos usar VirtualBox, VMWare, KVM/Qemu, Microsoft Hyper-v Server, etc.…

Virtualización con Hipervisor

Este tipo de virtualización consiste en la implementación sobre el hardware de un firmware que realiza las funciones de hipervisor, comunicando los recursos hardware de la máquina física con las Máquinas Virtuales. Un Hipervisor o Monitor de máquina virtual ( VMM, Virtual Machine Monitor) es una capa creada sobre el hardware de la máquina física en la cual se van creando Máquinas Virtuales cada una de las cuales puede contener distintos sistemas y aplicaciones. El hipervisor es el encargado de gestionar la plataforma de hardware, haciendo que las máquinas virtuales estén completamente aisladas.

Este tipo de virtualización no nos permite ejecutar aplicaciones en el anfitrión, ya que en este caso solo hace de hipervisor y no de un sistema operativo como tal instalado en la máquina física. La principal ventaja es que al no tener que utilizar un sistema operativo como anfitrión, la sobrecarga es mucho menor por lo que conseguiremos mejores resultados de rendimiento.

Dentro de este entorno podemos destacar Xen, Oracle Virtual Machine, VMWare ESXi o IVM (Integrity Virtual Machine) desarrollada por Hewlett-Packard que permite que múltiples máquinas virtuales se ejecuten simultáneamente en cualquier servidor Itanium corriendo HP-UX.

Virtualización de Bibliotecas o Librerías

Es un subconjunto de la API de Win32 para poder ejecutar aplicaciones Windows bajo otros sistemas operativos, como Linux. De esta forma, tenemos un hardware y un sistema operativo anfitrión (Host), solo que a diferencia de la virtualización a partir de un sistema operativo, no utilizaremos el sistema anfitrión para crear máquinas virtuales, sino que virtualizaremos una porción de este sistema directamente a través de una serie de librerías. Un ejemplo de este apartado sería Wine.

Virtualización por emulación

Cygwin es una colección de herramientas desarrollada por Cygnus Solutions para proporcionar un comportamiento similar a los sistemas Unix en entornos Microsoft Windows. Su objetivo es portar software que se ejecuta en sistemas POSIX a Windows con una recompilación a partir de sus fuentes.

El sistema Cygwin tiene varias partes diferenciadas:

  • Una biblioteca de enlace dinámico («cygwin1.dll») que implementa la interfaz de programación de aplicaciones POSIX usando para ello llamadas a la API nativa de Windows.
  • Una cadena de desarrollo GNU (que incluye entre otras utilidades GCC y GDB) para facilitar las tareas básicas de desarrollo.
  • Aplicaciones equivalentes a los programas más comunes de los sistemas UNIX. Incluso, cuenta con un sistema X (Cygwin/X)

Una alternativa a Cygwin es Cooperative Linux.

 

VIRTUALIZACIÓN MEDIANTE HARDWARE

Particionamiento físico

Este tipo de virtualización es aquel en el que a partir de un mismo chasis de componentes hardware (placa base, RAM, HDD, dispositivos de red, etc.…) se crean varias “máquinas independientes” que estarían compuestas por diferentes partes o dispositivos de manera que sea posible tener sistemas aislados con distintos sistemas operativos.

Virtualización de procesadores

Tanto AMD (AMD-V) como Intel (Intel VT) han diseñado extensiones de virtualización para sus procesadores que permiten ejecutar en un hipervisor máquinas virtuales sin penalizar el rendimiento, puesto que el propio procesador se encargar de reducir la sobrecarga que puede producirse en un entorno virtualizado solamente por software.

Virtualización por hipervisor

Este tipo de virtualización se consigue cuando el software instalado sobre el sistema operativo anfitrión (Host), crea un hipervisor para comunicar las Máquinas Virtuales con el hardware del equipo. Un ejemplo seria Xen, que 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

Virtualización por sistema operativo

En este tipo de virtualización se crean a partir de un sistema operativo una serie de “compartimentos estancos” o entornos virtuales, también conocidos como Servidores Virtuales Privados (VPS).

 

CONCLUSIONES

Si queremos virtualizar algún entorno deberemos tener en cuenta algunas cuestiones como ¿Que solución vamos a elegir?, ¿software libre o propietario?, ¿será un entorno de usuario o a nivel profesional?, ¿queremos virtualizar para tener una plataforma de pruebas o migrar un entorno en producción?, ¿de que presupuesto disponemos?.

Espero que después de leer este post hayan quedado aclaradas algunas de estas cuestiones o al menos que nos sirva de introducción para poder tener una ligera idea de que se puede hacer mediante este tipo de soluciones ampliamente extendidas hoy en día.

Saludos cordiales.

 

Fuentes:

http://www8.hp.com/es/es/products/servers/hp-ux.html?compURI=1509789#.Vm6ZTWThBow

http://www.ibm.com/developerworks/aix/library/au-aixvirtualization/

http://www.oracle.com/es/technologies/virtualization/overview/index.html

http://www.microsoft.com/spain/virtualizacion/products/server/default.mspx

http://www.vmware.com/latam/virtualization/overview

https://es.wikipedia.org/wiki/Virtualización