Virtualización: el alma de la nube

Con la virtualización del hardware, del software, del almacenamiento o de los componentes de red se proporciona una abstracción de los recursos físicos informáticos, lo que en última instancia permite su mejor utilización.

¿Qué es la virtualización?

El concepto virtualización hace referencia a la abstracción de recursos físicos de TI con el objetivo de ponerlos a disposición a nivel virtual de forma flexible y acorde con las necesidades de los usuarios. A los componentes creados en el marco de la virtualización, que pueden ser tanto de hardware como de software, se les denomina componentes virtuales o lógicos y se podrán usar en las mismas condiciones que sus homólogos físicos.

Una de las principales ventajas de la virtualización es crear una capa de abstracción entre los recursos físicos y su equivalente virtual, pues constituye la base de diversos servicios en la nube que cada vez están adquiriendo más importancia en el entorno corporativo. Hay que tener en cuenta, además, que la virtualización se diferencia de la simulación y la emulación, aunque compartan algunas similitudes.

La virtualización: ni simulación ni emulación

En el contexto en el que nos encontramos, es muy frecuente que los términos simulación y emulación sean utilizados como sinónimos de virtualización. No obstante, ninguno de los tres conceptos (virtualización, emulación y simulación) puede utilizarse en lugar de los otros dos, presentando entre ellos diferencias de carácter técnico:

  • Simulación. Con la simulación se consigue reproducir completamente un sistema a través de un software. El adverbio “completamente” en este caso indica que no solo se imitan las funciones en interacción con otros sistemas, sino también todos los componentes del sistema junto a su lógica interna. Por norma general, se recurre a los simuladores cuando se quiere compilar un programa creado para un sistema operativo concreto en otro sistema diferente con el fin de analizarlo.

  • Emulación. Mientras que la simulación reproduce un sistema, la emulación dispone las funciones de los componentes de hardware y software, pero no su lógica interna. El objetivo de la emulación es conseguir que el sistema reproducido consiga los mismos resultados que su equivalente original y es por eso por lo que, al contrario que el simulador, un emulador sí permite ejecutar el sistema reproducido.

En la práctica se recurre a los simuladores y emuladores en tres escenarios distintos:

  • Se reproduce un entorno de hardware para ejecutar un sistema operativo desarrollado para otra plataforma de procesamiento.

  • Se reproduce un sistema operativo para poder ejecutar aplicaciones que se escribieron para otro sistema.

  • Si lo que se pretende es ejecutar un software que se ha quedado obsoleto, habrá que reproducir el entorno del hardware, dado que los componentes originales ya no están disponibles.

Asimismo, hay que distinguir de estos dos conceptos a las soluciones de software que crean una capa de compatibilidad para remediar los posibles conflictos entre diferentes componentes de software y hardware. Estas soluciones no reproducen un sistema completo, sino solo una parte, por ejemplo, una interfaz. Quizás los ejemplos más destacados son Wine (acrónimo recursivo de Wine is not an emulator) y Cygwin.

¿Cómo funciona la virtualización?

Aunque se asemeja en gran medida a la simulación y la emulación, la virtualización se utiliza para un objetivo diferente. Los simuladores y los emuladores implementan un modelo de un sistema informático realizado mediante software que sirve para superar incompatibilidades. La virtualización, por el contrario, se concibió para que se requiera la menor simulación o emulación posible. Las tecnologías de virtualización establecen solo una capa que permite proporcionar recursos de TI independientemente de su estructura física.

A continuación, se muestra un ejemplo: si un usuario quiere probar en su ordenador Windows 10 una o varias versiones virtuales de Windows 10, se puede utilizar un software de virtualización. Si el mismo usuario quiere iniciar en el mismo ordenador dos versiones virtuales de Ubuntu, utilizará un software de virtualización que pueda eliminar mediante la emulación las incompatibilidades entre el sistema Windows y los sistemas Linux que ejecutan en él.

Existen numerosas soluciones de software que se usan en el marco de la virtualización y que contienen emuladores. Es por eso que en la práctica ambos conceptos se solapan.

Formas de virtualización

En el ámbito de la TI moderna se pueden encontrar diversas formas de virtualización que consiguen la abstracción de recursos de TI como software, memoria, datos o componentes de red. Se puede distinguir entre:

  • virtualización de software,
  • virtualización de hardware,
  • virtualización de almacenamiento,
  • virtualización de datos,
  • virtualización de red.

Virtualización de hardware

Con el término virtualización de hardware se hace referencia a tecnologías que ponen a disposición componentes de hardware a través de un software con independencia de su soporte físico. El ejemplo clásico de la virtualización de hardware es la máquina virtual (MV).

Una máquina virtual es un ordenador virtual que se comporta como uno físico, tanto en lo que respecta al hardware como al sistema operativo. En la virtualización de hardware es un tipo de hipervisor el que crea la capa de abstracción entre la base física y el sistema virtual.

Nota

Un hipervisor (también Virtual Machine Monitor, VMM) es un software que permite el funcionamiento del sistema huésped en el anfitrión.

Los hipervisores gestionan los recursos de hardware proporcionados por el sistema anfitrión como CPU, RAM, disco duro y periféricos y los comparte con los sistemas alojados que correspondan. Desde el punto de vista técnico, este proceso se produce mediante virtualización completa o mediante paravirtualización.

  • Virtualización completa: en este tipo de virtualización el hipervisor simula un entorno completo de hardware para cada máquina virtual. Cada máquina virtual dispone entonces de su propio conjunto de recursos de hardware virtuales asignados por el hipervisor y ejecuta aplicaciones sobre esta base, de modo que el sistema alojado no tiene acceso al hardware físico del sistema anfitrión. Las soluciones de software más conocidas de este tipo de virtualización son Oracle VM VirtualBox, Parallels Workstation, VMware Workstation, Microsoft Hyper-V y Microsoft Virtual Server.

  • Paravirtualización: mientras que en la virtualización completa se dispone de un entorno de hardware completo para cada máquina virtual, en la paravirtualización el hipervisor ofrece solo una API a través de la que los sistemas alojados acceden al hardware físico del anfitrión, con lo que el rendimiento mejora. Como requisito se exige que la API integre el kernel del sistema operativo del huésped, es decir, solo se puede “paravirtualizar” sistemas huésped modificados.

Realmente, los usuarios finales no pueden distinguir entre la máquina virtual y el ordenador físico. Se opta así por la virtualización de hardware cuando se trata de proporcionar a diferentes usuarios un sinnúmero de servidores virtuales basados en una plataforma informática potente, lo que constituye la base, por ejemplo, del conocido modelo de hosting compartido.

Nota

En el hosting compartido un proveedor de hosting opera una máquina física en un centro de datos optimizado para ello y presenta recursos de hardware virtualizados a sus clientes como sistemas alojados cerrados.

Otro ámbito de aplicación de la virtualización de hardware es el de la consolidación de servidores en el ámbito corporativo. Esto reporta tres ventajas:

  • se aprovecha mejor el servidor;
  • la distribución de los medios de almacenamiento es más efectiva;
  • se necesita menos cantidad de energía en el funcionamiento y la refrigeración.

En comparación con otros conceptos, la virtualización de hardware se considera más segura. Como cada sistema huésped está aislado en un entorno de hardware virtual, si los hackers se infiltran en uno de ellos o un malware afecta sus funciones, el resto de los sistemas huésped del mismo sistema anfitrión no se verán afectados.

Ventajas y desventajas de la virtualización de hardware:

Ventajas Inconvenientes
En el ámbito de la consolidación de software se pueden distribuir recursos de hardware de forma dinámica y utilizarlos eficientemente. La recreación de un entorno de hardware que incluya al sistema operativo produce un gasto de recursos.
Desde el punto de vista del consumo de energía, el hardware consolidado es más eficiente que un ordenador separado. El rendimiento de una máquina virtual puede verse afectado por otras máquinas virtuales del mismo sistema anfitrión.
Las máquinas virtuales ofrecen (al comparar con otros métodos de virtualización) un alto grado de aislamiento y, por tanto, seguridad en el aislamiento de la carga de trabajo.

Vitualización de software

Se habla de virtualización de software cuando son los componentes de software y no los de hardware los que se virtualizan. Los enfoques principales de este concepto de virtualización son:

  • La virtualización de aplicaciones
  • La virtualización de escritorio
  • La virtualización del sistema operativo

Virtualización de aplicaciones

Por virtualización de aplicaciones (del inglés, application virtualization) se entiende la abstracción de aplicaciones individuales del sistema operativo subyacente. Los sistemas de virtualización de aplicaciones permiten ejecutar los programas en entornos de tiempo de ejecución aislados y distribuirlos en diferentes sistemas sin que sea necesario realizar cambios en el sistema operativo o en el sistema de archivos locales y en el registro correspondiente.

La virtualización de aplicaciones es apropiada para su uso local, por ejemplo, para proteger el sistema operativo subyacente de código malicioso. Como alternativa, las aplicaciones virtualizadas se pueden poner a disposición de los usuarios en la red a través de un servidor, de forma que los usuarios accedan ellas a través del streaming de aplicaciones. Además, este encapsulamiento de las aplicaciones, incluyendo su entorno de tiempo de ejecución, permite copiar programas en medios de almacenamiento portátiles, como dispositivos USB, y ejecutarlos directamente en ellos.

El objetivo de la virtualización de aplicaciones es desligar a estos programas del sistema operativo en el que subyacen, de modo que puedan portarse fácilmente y gestionarse de forma central. En el ámbito corporativo el concepto es adecuado, por ejemplo, para el aprovisionamiento de aplicaciones de Office.

Ventajas Inconvenientes
Es posible mantener, gestionar y poner a disposición el software de la aplicación de manera centralizada. No se pueden virtualizar aquellas aplicaciones integradas en el sistema operativo o que requieren acceso a un controlador de dispositivo específico.
Mediante el aislamiento de aplicaciones se protege al sistema subyacente del código malicioso. La virtualización de aplicaciones plantea interrogantes sobre las concesiones de licencia.
El software se puede eliminar del sistema sin dejar residuos.

Virtualización de escritorio

La virtualización de escritorio, especialmente útil en el ámbito corporativo, hace referencia a un concepto en el que el entorno de escritorio se gestiona de forma centralizada con acceso a través de una red. Este enfoque se usa principalmente en un contexto corporativo.

La virtualización de escritorio se basa en una estructura cliente-servidor donde la transmisión de datos entre el cliente y el servidor es posible gracias a los protocolos de escritorio remoto. Además, dependiendo de dónde se aplique la potencia de procesamiento para crear un escritorio virtual, se puede diferenciar entre enfoques basados en el cliente y basados en el host.

  • Virtualización de escritorio basada en el host: incluye todos los enfoques en los que los escritorios virtuales se ejecutan directamente en el servidor, es decir, es el hardware del servidor el que proporciona la potencia de cálculo para el entorno de escritorio y la ejecución de aplicaciones. Los usuarios pueden tener acceso a los escritorios virtuales basados en host a través de la red con los dispositivos cliente más comunes. Para implementar este tipo de tecnología se pueden utilizar:

  • Máquinas virtuales basadas en host: cada usuario se conecta al servidor a través de un dispositivo cliente con su propia máquina virtual (VM). Cuando se utilizan las máquinas virtuales basadas en host en el ámbito de la virtualización de escritorio se habla de infraestructura de escritorio virtual (VDI) y se puede distinguir entre una virtualización de escritorio persistente, en la que los usuarios se conectan a la misma VM en cada sesión ofreciéndoles un margen de maniobra individualizado muy amplio, y una no persistente, en la que las máquinas virtuales se van asignando aleatoriamente.

  • Terminal service: cuando el cliente solo se utiliza como dispositivo de visualización para entornos de escritorio alojados de forma centralizada se habla de terminal services o servicios de escritorio remoto, proporcionados por los llamados terminal servers .

  • Servidor blade: se recurre por norma general a este servidor cuando los usuarios finales quieren tener acceso remoto a un terminal físico independiente. En este caso se trata de un servidor construido en módulos o en un bastidor con varios ordenadores de placa única, a los que se conoce también como blade (“cuchilla”).

  • Virtualización de escritorio basada en cliente: en este tipo de virtualización es el dispositivo cliente el que debe proporcionar los recursos necesarios para gestionar el entorno de escritorio.

  • Máquinas virtuales basadas en el cliente: en este tipo de enfoque el entorno de escritorio se ejecuta en una máquina virtual del dispositivo cliente y, por norma general, se recurre a un hipervisor.

  • Sistema operativo vía streaming: en este enfoque el sistema operativo del entorno de escritorio se ejecuta en el hardware local y es solo el proceso de arranque el que tiene lugar de forma remota mediante una imagen en el servidor.

Las ventajas y las desventajas de la virtualización de escritorio

Ventajas Inconvenientes
La virtualización de escritorio permite la administración centralizada de entornos de escritorio. La virtualización de escritorio es adecuada para infraestructuras homogéneas.
Los usuarios pueden acceder a su escritorio virtual desde diferentes dispositivos. Algunos enfoques exigen una conexión de red constante.
La virtualización de escritorio permite realizar copias de seguridad centralizadas. Requisitos elevados para el rendimiento en servidores, capacidad de almacenamiento y ancho de red.
Gracias a los clientes livianos se ahorra en costes en lo que respecta a la adquisición y funcionamiento.

Virtualización a nivel del sistema operativo

El concepto de virtualización a nivel del sistema operativo recurre a funciones nativas del kernel de un sistema operativo tipo Unix que permite ejecutar de forma paralela instancias de espacio de usuario, aisladas unas de otras. A diferencia de la virtualización del hardware, en este caso no se simula un sistema operativo completo con kernel incluido. En su lugar, las aplicaciones virtualizadas comparten el núcleo del sistema host a nivel del sistema operativo.

Nota

Por motivos de seguridad, los sistemas operativos modernos distinguen entre dos áreas de almacenamiento virtual: el espacio kernel y el espacio de usuario. Mientras que los procesos que sirven para el funcionamiento del kernel y otros componentes del núcleo se ejecutan en el espacio del kernel, el espacio de usuario está disponible para las aplicaciones de usuario. En los sistemas operativos de tipo Unix es posible ejecutar de forma paralela varias instancias de espacios de usuario virtuales. Esta función es la base de la virtualización a nivel del sistema operativo.

Cada instancia de espacio de usuario presenta un entorno de tiempo de ejecución virtual cerrado que, dependiendo de la tecnología utilizada, se denomina contenedor, partición, motor de virtualización o prisión. Aunque Docker representa el ejemplo más significativo en este ámbito, artk, OpenVZ/Virtuozzo y runC también se consideran buenas alternativas al líder del mercado.

La virtualización de instancias de espacio de usuario tiene lugar gracias a los mecanismos nativos de chroot que ofrecen todos los sistemas operativos tipo Unix. Con el término chroot (abreviatura del término inglés change root) se define la llamada al sistema que permite cambiar el directorio raíz de un proceso en ejecución. Si se han implementado correctamente, los procesos almacenados en un directorio raíz virtual solo pueden acceder a los datos dentro de ese directorio. No obstante, el chroot no basta para encapsular los procesos pues, aunque esta llamada al sistema ofrece funciones de virtualización básica, no fue nunca concebida como un concepto para asegurar procesos. Es por ello por lo que la tecnología de contenedores combina el chroot con otras funciones nativas del kernel como Cgroups y Namespaces para proporcionar un entorno de ejecución aislado con acceso limitado a recursos de hardware.

  • Cgroups: grupos de control para la gestión de recursos que permiten limitar el acceso de los procesos a los recursos de hardware.

  • Namespaces: también conocidos como espacios de nombres, sirven para la identificación de sistemas y procesos, así como de las comunicaciones entre los procesos y los recursos de red. Con los espacios de nombres es posible limitar un proceso y sus hijos a la sección deseada de la capa del sistema subyacente.

Un contenedor de software incluye una aplicación con todas las dependencias, tales son bibliotecas, programas de asistencia o archivos de configuración. Las aplicaciones sometidas a la tecnología de contenedores pueden traspasarse sin más modificaciones de un sistema a otro. El punto fuerte de este enfoque es el despliegue de aplicaciones en red (deployment).

Si se recurre a los contenedores en el ámbito de la arquitectura de microservicios, los usuarios de benefician de una alta escalabilidad.

Ventajas y desventajas de la virtualización a nivel del sistema operativo

Ventajas Inconvenientes
El concepto de virtualización a nivel del sistema operativo no requiere hipervisor, por lo que se asocia a una virtualización muy reducida. La virtualización a nivel del sistema operativo está orientada a arquitecturas de microservicios. La tecnología de los contenedores no es tan ventajosa con aplicaciones de estructura monolítica, por ejemplo, en lo que se refiere a escalabilidad.
Cuando se utilizan contenedores para las aplicaciones basadas en la combinación de diferentes microservicios, los usuarios se benefician de una alta escalabilidad. A diferencia de las máquinas virtuales, los contenedores se ejecutan directamente en el kernel del sistema operativo host, lo que incurre en ciertos requerimientos técnicos. Esta dependencia limita la portabilidad de contenedores, de ahí que los contenedores de Microsoft no se puedan ejecutar en Linux sin emuladores.
La implementación de contenedores no requiere procesos de instalación complejos. Frente a las máquinas virtuales, los contenedores ofrecen un menor aislamiento. Por tanto, la virtualización de contenedores no es recomendable para implementar planes de seguridad.
No quedan residuos cuando se elimina el software.
Los contenedores “prefabricados” suelen estar disponibles online para las plataformas más importantes.

Virtualización de almacenamiento

La virtualización de almacenamiento, también conocida como almacenamiento definido por software, se trata de un concepto de virtualización que tiene como objetivo la representación virtual de los diversos recursos de almacenamiento de una empresa, tales como discos duros, memorias flash o unidades de cinta, con el objetivo de hacerlos disponibles como un grupo de recursos interrelacionado.

Las memorias virtuales también se pueden dividir en partes y asignarse a las aplicaciones seleccionadas. Aunque se trate de datos almacenados mediante virtualización, los usuarios pueden acceder a ellos con la ruta de archivos habitual, incluso si se ha modificado el espacio físico de almacenamiento. Todo ello es posible gracias a una tabla de asignaciones o tabla de mapeo gestionada por el software de virtualización, a lo que se denomina asignación (mapeo) de los medios físicos de almacenamiento en la unidad lógica (en ocasiones también llamadas volúmenes).

Normalmente, en el ámbito corporativo se suele recurrir a la virtualización de almacenamiento basada en bloques, en la que los datos se reparten en bloques de igual tamaño. Cada bloque de datos tiene una dirección única que el software de virtualización almacena en la tabla de mapeo.

En la práctica, en la virtualización de almacenamiento se distinguen tres enfoques distintos: basada en host, en matriz o en red.

La virtualización basada en host suele combinarse con máquinas virtuales. En este concepto, un sistema anfitrión (o host) presenta a uno o varios sistemas huésped (ver la virtualización de hardware) unidades lógicas virtuales en un nivel de abstracción. El controlador del dispositivo del sistema host permite tener acceso al hardware. La virtualización de almacenamiento basada en host no requiere hardware adicional, es compatible con cualquier dispositivo de almacenamiento y se puede implementar sin apenas esfuerzo. En comparación con otros conceptos, este enfoque ofrece el mejor rendimiento, ya que cada dispositivo reacciona inmediatamente y, en consecuencia, sin periodo de latencia. No obstante, los usuarios deben tener en cuenta que la virtualización de almacenamiento, su optimización y consumo de memoria se limita a cada host.

En el área de la virtualización de almacenamiento basada en matriz, las matrices de discos, dispositivos de almacenamiento masivos con los que se pueden suministrar discos duros en la red, ofrecen también la posibilidad de virtualizar recursos de almacenamiento. Para ello se utilizan los esquemas RAID , siglas de Redundant Array of Independent Disks (matriz redundante de discos independientes), que designan un concepto de almacenamiento de datos en el que varios discos duros físicos se combinan en una plataforma de almacenamiento virtual.

Consejo

El artículo de la Digital Guide sobre Network Attached Storage (NAS) ofrece más información sobre la matriz de discos y esquemas RAID.

Asimismo, este tipo de virtualización de almacenamiento ofrece un buen rendimiento debido a una latencia E/S reducida. Aparte de las matrices de discos que se van a unir, no se requiere otro componente de hardware.

Este tipo de virtualización es especialmente útil cuando un grupo de almacenamiento virtual debe reunir recursos de almacenamiento de sistemas heterogéneos. En el ámbito corporativo, este enfoque se suele implementar en el marco de las redes de áreas de almacenamiento (SAN), también conocidas como SAN por sus siglas en inglés.

Ventajas y desventajas de la virtualización de almacenamiento basada en matriz

Ventajas Inconvenientes
Mejor aprovechamiento de los recursos de almacenamiento físico. Las tablas de mapeo centralizada contienen un SPOF (punto único de fallo).
El uso de los recursos de almacenamiento no depende de los límites de los dispositivos físicos subyacentes. La virtualización de almacenamiento se relaciona siempre con el gasto de recursos que resulta de la necesidad de generar y procesar los datos.
Gestión centralizada de los medios de almacenamiento concentrados en una unidad lógica. Usado de forma intensiva, el procesamiento de una solicitud E/S puede producir un cuello de botella que reduce la rapidez del sistema de almacenamiento completo.
Los recursos físicos se pueden estructurar o ampliar independientemente del grupo de almacenamiento virtual.

Virtualización de datos

La virtualización de datos condensa diferentes enfoques de virtualización en el marco de los data warehouses, que tienen como objetivo que las aplicaciones proporcionen acceso a los datos abstraídos de realidades físicas, para lo que se crea una copia maestra, esto es, una copia virtual del estado del conjunto de datos.

La virtualización de datos consiste, así, en un concepto de integración de información.

En lo que respecta a la integración de información, ETL (Extract, Transform, Load) se utiliza para poder extraer los datos de diferentes fuentes estructuradas y unirlos de forma uniforme en una base de datos. Sin embargo, aunque la virtualización de datos también permite la lectura y manipulación de datos de diferentes fuentes, estos, a diferencia de ETL, permanecen en el lugar físico. Es por eso por lo que las soluciones de software de la virtualización integran datos solo a nivel virtual y proporcionan acceso en tiempo real a las fuentes de datos físicas.

Ventajas y desventajas de la virtulización de datos

Ventajas Inconvenientes
Se reducen los requisitos de almacenamiento para las copias de datos. A diferencia del enfoque de almacén de datos, la virtualización de datos no es adecuada para registrar o poner a disposición instantáneas de base de datos.
Se omite una extracción de datos laboriosa (por ejemplo, a través de ETL).
Es posible añadir fuentes de datos nuevas sin necesidad de expertos en TI gracias a las herramientas BI.
El procesamiento de los datos virtualizados es posible gracias a una gran cantidad de herramientas de gestión de datos.

Virtualización de redes

La virtualización de redes comprende diferentes enfoques en los que los recursos de red a nivel de hardware o software se abstraen de su base física. Por norma general este tipo de virtualización se utiliza en lo que respecta a conceptos de seguridad y responde a dos objetivos principales:

  • Los recursos físicos de red deben agruparse por medio de la virtualización en una unidad lógica
  • Los recursos de red físicos deben poderse dividir en diferentes unidades virtuales por medio de la virtualización

Un ejemplo claro de la virtualización de redes es la Virtual Private Network (VPN) (siglas de Virtual Private Network), una red virtual basada en una física. En la práctica, las conexiones VPN se usan para establecer conexiones seguras a través de canales inseguros. Esto ocurre, por ejemplo, cuando los trabajadores externos acceden a través de Internet a la red privada de su empresa.

Otro ejemplo de la virtualización de redes son las denominadas redes de área local virtuales (VLAN) (VLAN, Virtual Local Area Network), subredes virtuales que se basan en una red informática física.

Las redes definidas por software (SDN) responden a un enfoque mediante el que se permite controlar los recursos de red virtual de manera centralizada sin necesidad de acceder manualmente a los componentes físicos de red. Se basan en la separación del plano de control virtual del plano de datos, este es, el plano físico de la red responsable del reenvío de paquetes de datos.

Ventajas y desventajas de la virtualización de redes

Ventajas Inconvenientes
Ahorra costes gracias al uso múltiple de la infraestructura de red física. El funcionamiento de varias subredes virtuales en una misma red física exige componentes de hardware más potentes.
Los recursos de red se pueden gestionar de forma centralizada en el nivel virtual, además de escalarse fácilmente y compartirse de manera dinámica. Es posible que para garantizar la seguridad sea necesaria una infraestructura de red física redundante.
La virtualización de redes ofrece diferentes enfoques con los que se pueden implementar conceptos de seguridad a nivel de red desde el lado del software, resultando más rentables.
¿Le ha resultado útil este artículo?
Page top