Con la vi­r­tua­li­za­ción del hardware, del software, del al­ma­ce­na­mie­n­to o de los co­m­po­ne­n­tes de red se pro­po­r­cio­na una ab­s­tra­c­ción de los recursos físicos in­fo­r­má­ti­cos, lo que en última instancia permite su mejor uti­li­za­ción.

¿Qué es la vi­r­tua­li­za­ción?

El concepto vi­r­tua­li­za­ción hace re­fe­re­n­cia a la ab­s­tra­c­ción de recursos físicos de TI con el objetivo de ponerlos a di­s­po­si­ción a nivel virtual de forma flexible y acorde con las ne­ce­si­da­des de los usuarios. A los co­m­po­ne­n­tes creados en el marco de la vi­r­tua­li­za­ción, que pueden ser tanto de hardware como de software, se les denomina co­m­po­ne­n­tes virtuales o lógicos y se podrán usar en las mismas co­n­di­cio­nes que sus homólogos físicos.

Una de las pri­n­ci­pa­les ventajas de la vi­r­tua­li­za­ción es crear una capa de ab­s­tra­c­ción entre los recursos físicos y su equi­va­le­n­te virtual, pues co­n­s­ti­tu­ye la base de diversos servicios en la nube que cada vez están ad­qui­rie­n­do más im­po­r­ta­n­cia en el entorno co­r­po­ra­ti­vo. Hay que tener en cuenta, además, que la vi­r­tua­li­za­ción se di­fe­re­n­cia de la si­mu­la­ción y la emulación, aunque compartan algunas si­mi­li­tu­des.

La vi­r­tua­li­za­ción: ni si­mu­la­ción ni emulación

En el contexto en el que nos en­co­n­tra­mos, es muy frecuente que los términos si­mu­la­ción y emulación sean uti­li­za­dos como sinónimos de vi­r­tua­li­za­ción. No obstante, ninguno de los tres conceptos (vi­r­tua­li­za­ción, emulación y si­mu­la­ción) puede uti­li­zar­se en lugar de los otros dos, pre­se­n­ta­n­do entre ellos di­fe­re­n­cias de carácter técnico:

  • Si­mu­la­ción. Con la si­mu­la­ción se consigue re­pro­du­cir co­m­ple­ta­me­n­te un sistema a través de un software. El adverbio “co­m­ple­ta­me­n­te” en este caso indica que no solo se imitan las funciones en in­ter­ac­ción con otros sistemas, sino también todos los co­m­po­ne­n­tes del sistema junto a su lógica interna. Por norma general, se recurre a los si­mu­la­do­res cuando se quiere compilar un programa creado para un sistema operativo concreto en otro sistema diferente con el fin de ana­li­zar­lo.

  • Emulación. Mientras que la si­mu­la­ción reproduce un sistema, la emulación dispone las funciones de los co­m­po­ne­n­tes de hardware y software, pero no su lógica interna. El objetivo de la emulación es conseguir que el sistema re­pro­du­ci­do consiga los mismos re­su­l­ta­dos que su equi­va­le­n­te original y es por eso por lo que, al contrario que el simulador, un emulador sí permite ejecutar el sistema re­pro­du­ci­do.

En la práctica se recurre a los si­mu­la­do­res y emu­la­do­res en tres es­ce­na­rios distintos:

  • Se reproduce un entorno de hardware para ejecutar un sistema operativo de­sa­rro­lla­do para otra pla­ta­fo­r­ma de pro­ce­sa­mie­n­to.

  • Se reproduce un sistema operativo para poder ejecutar apli­ca­cio­nes que se es­cri­bie­ron para otro sistema.

  • Si lo que se pretende es ejecutar un software que se ha quedado obsoleto, habrá que re­pro­du­cir el entorno del hardware, dado que los co­m­po­ne­n­tes ori­gi­na­les ya no están di­s­po­ni­bles.

Asimismo, hay que di­s­ti­n­guir de estos dos conceptos a las so­lu­cio­nes de software que crean una capa de co­m­pa­ti­bi­li­dad para remediar los posibles co­n­fli­c­tos entre di­fe­re­n­tes co­m­po­ne­n­tes de software y hardware. Estas so­lu­cio­nes no re­pro­du­cen un sistema completo, sino solo una parte, por ejemplo, una interfaz. Quizás los ejemplos más de­s­ta­ca­dos son Wine (acrónimo recursivo de Wine is not an emulator) y Cygwin.

¿Cómo funciona la vi­r­tua­li­za­ción?

Aunque se asemeja en gran medida a la si­mu­la­ción y la emulación, la vi­r­tua­li­za­ción se utiliza para un objetivo diferente. Los si­mu­la­do­res y los emu­la­do­res im­ple­me­n­tan un modelo de un sistema in­fo­r­má­ti­co realizado mediante software que sirve para superar in­co­m­pa­ti­bi­li­da­des. La vi­r­tua­li­za­ción, por el contrario, se concibió para que se requiera la menor si­mu­la­ción o emulación posible. Las te­c­no­lo­gías de vi­r­tua­li­za­ción es­ta­ble­cen solo una capa que permite pro­po­r­cio­nar recursos de TI in­de­pe­n­die­n­te­me­n­te de su es­tru­c­tu­ra física.

A co­n­ti­nua­ció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 vi­r­tua­li­za­ción. Si el mismo usuario quiere iniciar en el mismo ordenador dos versiones virtuales de Ubuntu, utilizará un software de vi­r­tua­li­za­ción que pueda eliminar mediante la emulación las in­co­m­pa­ti­bi­li­da­des entre el sistema Windows y los sistemas Linux que ejecutan en él.

Existen numerosas so­lu­cio­nes de software que se usan en el marco de la vi­r­tua­li­za­ción y que contienen emu­la­do­res. Es por eso que en la práctica ambos conceptos se solapan.

Formas de vi­r­tua­li­za­ción

En el ámbito de la TI moderna se pueden encontrar diversas formas de vi­r­tua­li­za­ción que consiguen la ab­s­tra­c­ción de recursos de TI como software, memoria, datos o co­m­po­ne­n­tes de red. Se puede di­s­ti­n­guir entre:

  • vi­r­tua­li­za­ción de software,
  • vi­r­tua­li­za­ción de hardware,
  • vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to,
  • vi­r­tua­li­za­ción de datos,
  • vi­r­tua­li­za­ción de red.

Vi­r­tua­li­za­ción de hardware

Con el término vi­r­tua­li­za­ción de hardware se hace re­fe­re­n­cia a te­c­no­lo­gías que ponen a di­s­po­si­ción co­m­po­ne­n­tes de hardware a través de un software con in­de­pe­n­de­n­cia de su soporte físico. El ejemplo clásico de la vi­r­tua­li­za­ció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 vi­r­tua­li­za­ción de hardware es un tipo de hi­pe­r­vi­sor el que crea la capa de ab­s­tra­c­ción entre la base física y el sistema virtual.

Nota

Un hi­pe­r­vi­sor (también Virtual Machine Monitor, VMM) es un software que permite el fu­n­cio­na­mie­n­to del sistema huésped en el anfitrión.

Los hi­pe­r­vi­so­res gestionan los recursos de hardware pro­po­r­cio­na­dos por el sistema anfitrión como CPU, RAM, disco duro y pe­ri­fé­ri­cos y los comparte con los sistemas alojados que co­rre­s­po­n­dan. Desde el punto de vista técnico, este proceso se produce mediante vi­r­tua­li­za­ción completa o mediante pa­ra­vi­r­tua­li­za­ción.

  • Vi­r­tua­li­za­ción completa: en este tipo de vi­r­tua­li­za­ción el hi­pe­r­vi­sor 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 hi­pe­r­vi­sor y ejecuta apli­ca­cio­nes sobre esta base, de modo que el sistema alojado no tiene acceso al hardware físico del sistema anfitrión. Las so­lu­cio­nes de software más conocidas de este tipo de vi­r­tua­li­za­ción son Oracle VM Vi­r­tua­l­Box, Parallels Wo­r­k­s­ta­tion, VMware Wo­r­k­s­ta­tion, Microsoft Hyper-V y Microsoft Virtual Server.

  • Pa­ra­vi­r­tua­li­za­ción: mientras que en la vi­r­tua­li­za­ción completa se dispone de un entorno de hardware completo para cada máquina virtual, en la pa­ra­vi­r­tua­li­za­ción el hi­pe­r­vi­sor 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 re­n­di­mie­n­to mejora. Como requisito se exige que la API integre el kernel del sistema operativo del huésped, es decir, solo se puede “pa­ra­vi­r­tua­li­zar” sistemas huésped mo­di­fi­ca­dos.

Realmente, los usuarios finales no pueden di­s­ti­n­guir entre la máquina virtual y el ordenador físico. Se opta así por la vi­r­tua­li­za­ción de hardware cuando se trata de pro­po­r­cio­nar a di­fe­re­n­tes usuarios un sinnúmero de se­r­vi­do­res virtuales basados en una pla­ta­fo­r­ma in­fo­r­má­ti­ca potente, lo que co­n­s­ti­tu­ye la base, por ejemplo, del conocido modelo de hosting co­m­pa­r­ti­do.

Nota

En el hosting co­m­pa­r­ti­do un proveedor de hosting opera una máquina física en un centro de datos op­ti­mi­za­do para ello y presenta recursos de hardware vi­r­tua­li­za­dos a sus clientes como sistemas alojados cerrados.

Otro ámbito de apli­ca­ción de la vi­r­tua­li­za­ción de hardware es el de la co­n­so­li­da­ción de se­r­vi­do­res en el ámbito co­r­po­ra­ti­vo. Esto reporta tres ventajas:

  • se aprovecha mejor el servidor;
  • la di­s­tri­bu­ción de los medios de al­ma­ce­na­mie­n­to es más efectiva;
  • se necesita menos cantidad de energía en el fu­n­cio­na­mie­n­to y la re­fri­ge­ra­ción.

En co­m­pa­ra­ción con otros conceptos, la vi­r­tua­li­za­ció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 de­s­ve­n­ta­jas de la vi­r­tua­li­za­ción de hardware:

Ventajas In­co­n­ve­nie­n­tes
En el ámbito de la co­n­so­li­da­ción de software se pueden di­s­tri­buir recursos de hardware de forma dinámica y uti­li­zar­los efi­cie­n­te­me­n­te. La re­crea­ció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 co­n­so­li­da­do es más eficiente que un ordenador separado. El re­n­di­mie­n­to 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 vi­r­tua­li­za­ción) un alto grado de ai­s­la­mie­n­to y, por tanto, seguridad en el ai­s­la­mie­n­to de la carga de trabajo.

Vi­tua­li­za­ción de software

Se habla de vi­r­tua­li­za­ción de software cuando son los co­m­po­ne­n­tes de software y no los de hardware los que se vi­r­tua­li­zan. Los enfoques pri­n­ci­pa­les de este concepto de vi­r­tua­li­za­ción son:

  • La vi­r­tua­li­za­ción de apli­ca­cio­nes
  • La vi­r­tua­li­za­ción de es­cri­to­rio
  • La vi­r­tua­li­za­ción del sistema operativo

Vi­r­tua­li­za­ción de apli­ca­cio­nes

Por vi­r­tua­li­za­ción de apli­ca­cio­nes (del inglés, ap­pli­ca­tion vi­r­tua­li­za­tion) se entiende la ab­s­tra­c­ción de apli­ca­cio­nes in­di­vi­dua­les del sistema operativo su­b­ya­ce­n­te. Los sistemas de vi­r­tua­li­za­ción de apli­ca­cio­nes permiten ejecutar los programas en entornos de tiempo de ejecución aislados y di­s­tri­bui­r­los en di­fe­re­n­tes sistemas sin que sea necesario realizar cambios en el sistema operativo o en el sistema de archivos locales y en el registro co­rre­s­po­n­die­n­te.

La vi­r­tua­li­za­ción de apli­ca­cio­nes es apropiada para su uso local, por ejemplo, para proteger el sistema operativo su­b­ya­ce­n­te de código malicioso. Como al­te­r­na­ti­va, las apli­ca­cio­nes vi­r­tua­li­za­das se pueden poner a di­s­po­si­ció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 apli­ca­cio­nes. Además, este en­ca­p­su­la­mie­n­to de las apli­ca­cio­nes, in­clu­ye­n­do su entorno de tiempo de ejecución, permite copiar programas en medios de al­ma­ce­na­mie­n­to po­r­tá­ti­les, como di­s­po­si­ti­vos USB, y eje­cu­tar­los di­re­c­ta­me­n­te en ellos.

El objetivo de la vi­r­tua­li­za­ción de apli­ca­cio­nes es desligar a estos programas del sistema operativo en el que subyacen, de modo que puedan portarse fá­ci­l­me­n­te y ge­s­tio­nar­se de forma central. En el ámbito co­r­po­ra­ti­vo el concepto es adecuado, por ejemplo, para el apro­vi­sio­na­mie­n­to de apli­ca­cio­nes de Office.

Ventajas In­co­n­ve­nie­n­tes
Es posible mantener, gestionar y poner a di­s­po­si­ción el software de la apli­ca­ción de manera ce­n­tra­li­za­da. No se pueden vi­r­tua­li­zar aquellas apli­ca­cio­nes in­te­gra­das en el sistema operativo o que requieren acceso a un co­n­tro­la­dor de di­s­po­si­ti­vo es­pe­cí­fi­co.
Mediante el ai­s­la­mie­n­to de apli­ca­cio­nes se protege al sistema su­b­ya­ce­n­te del código malicioso. La vi­r­tua­li­za­ción de apli­ca­cio­nes plantea in­te­rro­ga­n­tes sobre las co­n­ce­sio­nes de licencia.
El software se puede eliminar del sistema sin dejar residuos.

Vi­r­tua­li­za­ción de es­cri­to­rio

La vi­r­tua­li­za­ción de es­cri­to­rio, es­pe­cia­l­me­n­te útil en el ámbito co­r­po­ra­ti­vo, hace re­fe­re­n­cia a un concepto en el que el entorno de es­cri­to­rio se gestiona de forma ce­n­tra­li­za­da con acceso a través de una red. Este enfoque se usa pri­n­ci­pa­l­me­n­te en un contexto co­r­po­ra­ti­vo.

La vi­r­tua­li­za­ción de es­cri­to­rio se basa en una es­tru­c­tu­ra cliente-servidor donde la tra­n­s­mi­sión de datos entre el cliente y el servidor es posible gracias a los pro­to­co­los de es­cri­to­rio remoto. Además, de­pe­n­die­n­do de dónde se aplique la potencia de pro­ce­sa­mie­n­to para crear un es­cri­to­rio virtual, se puede di­fe­re­n­ciar entre enfoques basados en el cliente y basados en el host.

  • Vi­r­tua­li­za­ción de es­cri­to­rio basada en el host: incluye todos los enfoques en los que los es­cri­to­rios virtuales se ejecutan di­re­c­ta­me­n­te en el servidor, es decir, es el hardware del servidor el que pro­po­r­cio­na la potencia de cálculo para el entorno de es­cri­to­rio y la ejecución de apli­ca­cio­nes. Los usuarios pueden tener acceso a los es­cri­to­rios virtuales basados en host a través de la red con los di­s­po­si­ti­vos cliente más comunes. Para im­ple­me­n­tar este tipo de te­c­no­lo­gía se pueden utilizar:

  • Máquinas virtuales basadas en host: cada usuario se conecta al servidor a través de un di­s­po­si­ti­vo cliente con su propia máquina virtual (VM). Cuando se utilizan las máquinas virtuales basadas en host en el ámbito de la vi­r­tua­li­za­ción de es­cri­to­rio se habla de in­frae­s­tru­c­tu­ra de es­cri­to­rio virtual (VDI) y se puede di­s­ti­n­guir entre una vi­r­tua­li­za­ción de es­cri­to­rio pe­r­si­s­te­n­te, en la que los usuarios se conectan a la misma VM en cada sesión ofre­cié­n­do­les un margen de maniobra in­di­vi­dua­li­za­do muy amplio, y una no pe­r­si­s­te­n­te, en la que las máquinas virtuales se van asignando alea­to­ria­me­n­te.

  • Terminal service: cuando el cliente solo se utiliza como di­s­po­si­ti­vo de vi­sua­li­za­ción para entornos de es­cri­to­rio alojados de forma ce­n­tra­li­za­da se habla de terminal services o servicios de es­cri­to­rio remoto, pro­po­r­cio­na­dos 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 in­de­pe­n­die­n­te. En este caso se trata de un servidor co­n­s­trui­do en módulos o en un bastidor con varios or­de­na­do­res de placa única, a los que se conoce también como blade (“cuchilla”).

  • Vi­r­tua­li­za­ción de es­cri­to­rio basada en cliente: en este tipo de vi­r­tua­li­za­ción es el di­s­po­si­ti­vo cliente el que debe pro­po­r­cio­nar los recursos ne­ce­sa­rios para gestionar el entorno de es­cri­to­rio.

  • Máquinas virtuales basadas en el cliente: en este tipo de enfoque el entorno de es­cri­to­rio se ejecuta en una máquina virtual del di­s­po­si­ti­vo cliente y, por norma general, se recurre a un hi­pe­r­vi­sor.

  • Sistema operativo vía streaming: en este enfoque el sistema operativo del entorno de es­cri­to­rio 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 de­s­ve­n­ta­jas de la vi­r­tua­li­za­ción de es­cri­to­rio

Ventajas In­co­n­ve­nie­n­tes
La vi­r­tua­li­za­ción de es­cri­to­rio permite la ad­mi­ni­s­tra­ción ce­n­tra­li­za­da de entornos de es­cri­to­rio. La vi­r­tua­li­za­ción de es­cri­to­rio es adecuada para in­frae­s­tru­c­tu­ras ho­mo­gé­neas.
Los usuarios pueden acceder a su es­cri­to­rio virtual desde di­fe­re­n­tes di­s­po­si­ti­vos. Algunos enfoques exigen una conexión de red constante.
La vi­r­tua­li­za­ción de es­cri­to­rio permite realizar copias de seguridad ce­n­tra­li­za­das. Re­qui­si­tos elevados para el re­n­di­mie­n­to en se­r­vi­do­res, capacidad de al­ma­ce­na­mie­n­to y ancho de red.
Gracias a los clientes livianos se ahorra en costes en lo que respecta a la ad­qui­si­ción y fu­n­cio­na­mie­n­to.

Vi­r­tua­li­za­ción a nivel del sistema operativo

El concepto de vi­r­tua­li­za­ción a nivel del sistema operativo recurre a funciones nativas del kernel de un sistema operativo tipo Unix que permite ejecutar de forma paralela in­s­ta­n­cias de espacio de usuario, aisladas unas de otras. A di­fe­re­n­cia de la vi­r­tua­li­za­ción del hardware, en este caso no se simula un sistema operativo completo con kernel incluido. En su lugar, las apli­ca­cio­nes vi­r­tua­li­za­das comparten el núcleo del sistema host a nivel del sistema operativo.

Nota

Por motivos de seguridad, los sistemas ope­ra­ti­vos modernos di­s­ti­n­guen entre dos áreas de al­ma­ce­na­mie­n­to virtual: el espacio kernel y el espacio de usuario. Mientras que los procesos que sirven para el fu­n­cio­na­mie­n­to del kernel y otros co­m­po­ne­n­tes del núcleo se ejecutan en el espacio del kernel, el espacio de usuario está di­s­po­ni­ble para las apli­ca­cio­nes de usuario. En los sistemas ope­ra­ti­vos de tipo Unix es posible ejecutar de forma paralela varias in­s­ta­n­cias de espacios de usuario virtuales. Esta función es la base de la vi­r­tua­li­za­ción a nivel del sistema operativo.

Cada instancia de espacio de usuario presenta un entorno de tiempo de ejecución virtual cerrado que, de­pe­n­die­n­do de la te­c­no­lo­gía utilizada, se denomina co­n­te­ne­dor, partición, motor de vi­r­tua­li­za­ción o prisión. Aunque Docker re­pre­se­n­ta el ejemplo más si­g­ni­fi­ca­ti­vo en este ámbito, artk, OpenVZ/Virtuozzo y runC también se co­n­si­de­ran buenas al­te­r­na­ti­vas al líder del mercado.

La vi­r­tua­li­za­ción de in­s­ta­n­cias de espacio de usuario tiene lugar gracias a los me­ca­ni­s­mos nativos de chroot que ofrecen todos los sistemas ope­ra­ti­vos tipo Unix. Con el término chroot (abre­via­tu­ra del término inglés change root) se define la llamada al sistema que permite cambiar el di­re­c­to­rio raíz de un proceso en ejecución. Si se han im­ple­me­n­ta­do co­rre­c­ta­me­n­te, los procesos al­ma­ce­na­dos en un di­re­c­to­rio raíz virtual solo pueden acceder a los datos dentro de ese di­re­c­to­rio. No obstante, el chroot no basta para en­ca­p­su­lar los procesos pues, aunque esta llamada al sistema ofrece funciones de vi­r­tua­li­za­ción básica, no fue nunca concebida como un concepto para asegurar procesos. Es por ello por lo que la te­c­no­lo­gía de co­n­te­ne­do­res combina el chroot con otras funciones nativas del kernel como Cgroups y Na­me­s­pa­ces para pro­po­r­cio­nar 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.

  • Na­me­s­pa­ces: también conocidos como espacios de nombres, sirven para la ide­n­ti­fi­ca­ción de sistemas y procesos, así como de las co­mu­ni­ca­cio­nes 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 su­b­ya­ce­n­te.

Un co­n­te­ne­dor de software incluye una apli­ca­ción con todas las de­pe­n­de­n­cias, tales son bi­blio­te­cas, programas de asi­s­te­n­cia o archivos de co­n­fi­gu­ra­ción. Las apli­ca­cio­nes sometidas a la te­c­no­lo­gía de co­n­te­ne­do­res pueden tra­s­pa­sar­se sin más mo­di­fi­ca­cio­nes de un sistema a otro. El punto fuerte de este enfoque es el de­s­plie­gue de apli­ca­cio­nes en red (de­plo­y­me­nt).

Si se recurre a los co­n­te­ne­do­res en el ámbito de la ar­qui­te­c­tu­ra de mi­cro­se­r­vi­cios, los usuarios de be­ne­fi­cian de una alta es­ca­la­bi­li­dad.

Ventajas y de­s­ve­n­ta­jas de la vi­r­tua­li­za­ción a nivel del sistema operativo

Ventajas In­co­n­ve­nie­n­tes
El concepto de vi­r­tua­li­za­ción a nivel del sistema operativo no requiere hi­pe­r­vi­sor, por lo que se asocia a una vi­r­tua­li­za­ción muy reducida. La vi­r­tua­li­za­ción a nivel del sistema operativo está orientada a ar­qui­te­c­tu­ras de mi­cro­se­r­vi­cios. La te­c­no­lo­gía de los co­n­te­ne­do­res no es tan ventajosa con apli­ca­cio­nes de es­tru­c­tu­ra mo­no­lí­ti­ca, por ejemplo, en lo que se refiere a es­ca­la­bi­li­dad.
Cuando se utilizan co­n­te­ne­do­res para las apli­ca­cio­nes basadas en la co­m­bi­na­ción de di­fe­re­n­tes mi­cro­se­r­vi­cios, los usuarios se be­ne­fi­cian de una alta es­ca­la­bi­li­dad. A di­fe­re­n­cia de las máquinas virtuales, los co­n­te­ne­do­res se ejecutan di­re­c­ta­me­n­te en el kernel del sistema operativo host, lo que incurre en ciertos re­que­ri­mie­n­tos técnicos. Esta de­pe­n­de­n­cia limita la po­r­ta­bi­li­dad de co­n­te­ne­do­res, de ahí que los co­n­te­ne­do­res de Microsoft no se puedan ejecutar en Linux sin emu­la­do­res.
La im­ple­me­n­ta­ción de co­n­te­ne­do­res no requiere procesos de in­s­ta­la­ción complejos. Frente a las máquinas virtuales, los co­n­te­ne­do­res ofrecen un menor ai­s­la­mie­n­to. Por tanto, la vi­r­tua­li­za­ción de co­n­te­ne­do­res no es re­co­me­n­da­ble para im­ple­me­n­tar planes de seguridad.
No quedan residuos cuando se elimina el software.
Los co­n­te­ne­do­res “pre­fa­bri­ca­dos” suelen estar di­s­po­ni­bles online para las pla­ta­fo­r­mas más im­po­r­ta­n­tes.

Vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to

La vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to, también conocida como al­ma­ce­na­mie­n­to definido por software, se trata de un concepto de vi­r­tua­li­za­ción que tiene como objetivo la re­pre­se­n­ta­ción virtual de los diversos recursos de al­ma­ce­na­mie­n­to de una empresa, tales como discos duros, memorias flash o unidades de cinta, con el objetivo de hacerlos di­s­po­ni­bles como un grupo de recursos in­ter­re­la­cio­na­do.

Las memorias virtuales también se pueden dividir en partes y asignarse a las apli­ca­cio­nes se­le­c­cio­na­das. Aunque se trate de datos al­ma­ce­na­dos mediante vi­r­tua­li­za­ción, los usuarios pueden acceder a ellos con la ruta de archivos habitual, incluso si se ha mo­di­fi­ca­do el espacio físico de al­ma­ce­na­mie­n­to. Todo ello es posible gracias a una tabla de asi­g­na­cio­nes o tabla de mapeo ge­s­tio­na­da por el software de vi­r­tua­li­za­ción, a lo que se denomina asi­g­na­ción (mapeo) de los medios físicos de al­ma­ce­na­mie­n­to en la unidad lógica (en ocasiones también llamadas volúmenes).

No­r­ma­l­me­n­te, en el ámbito co­r­po­ra­ti­vo se suele recurrir a la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to 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 vi­r­tua­li­za­ción almacena en la tabla de mapeo.

En la práctica, en la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to se di­s­ti­n­guen tres enfoques distintos: basada en host, en matriz o en red.

La vi­r­tua­li­za­ción basada en host suele co­m­bi­nar­se con máquinas virtuales. En este concepto, un sistema anfitrión (o host) presenta a uno o varios sistemas huésped (ver la vi­r­tua­li­za­ción de hardware) unidades lógicas virtuales en un nivel de ab­s­tra­c­ción. El co­n­tro­la­dor del di­s­po­si­ti­vo del sistema host permite tener acceso al hardware. La vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to basada en host no requiere hardware adicional, es co­m­pa­ti­ble con cualquier di­s­po­si­ti­vo de al­ma­ce­na­mie­n­to y se puede im­ple­me­n­tar sin apenas esfuerzo. En co­m­pa­ra­ción con otros conceptos, este enfoque ofrece el mejor re­n­di­mie­n­to, ya que cada di­s­po­si­ti­vo reacciona in­me­dia­ta­me­n­te y, en co­n­se­cue­n­cia, sin periodo de latencia. No obstante, los usuarios deben tener en cuenta que la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to, su op­ti­mi­za­ción y consumo de memoria se limita a cada host.

En el área de la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to basada en matriz, las matrices de discos, di­s­po­si­ti­vos de al­ma­ce­na­mie­n­to masivos con los que se pueden su­mi­ni­s­trar discos duros en la red, ofrecen también la po­si­bi­li­dad de vi­r­tua­li­zar recursos de al­ma­ce­na­mie­n­to. Para ello se utilizan los esquemas RAID , siglas de Redundant Array of In­de­pe­n­de­nt Disks (matriz re­du­n­da­n­te de discos in­de­pe­n­die­n­tes), que designan un concepto de al­ma­ce­na­mie­n­to de datos en el que varios discos duros físicos se combinan en una pla­ta­fo­r­ma de al­ma­ce­na­mie­n­to virtual.

Consejo

El artículo de la Digital Guide sobre Network Attached Storage (NAS) ofrece más in­fo­r­ma­ción sobre la matriz de discos y esquemas RAID.

Asimismo, este tipo de vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to ofrece un buen re­n­di­mie­n­to debido a una latencia E/S reducida. Aparte de las matrices de discos que se van a unir, no se requiere otro co­m­po­ne­n­te de hardware.

Este tipo de vi­r­tua­li­za­ción es es­pe­cia­l­me­n­te útil cuando un grupo de al­ma­ce­na­mie­n­to virtual debe reunir recursos de al­ma­ce­na­mie­n­to de sistemas he­te­ro­gé­neos. En el ámbito co­r­po­ra­ti­vo, este enfoque se suele im­ple­me­n­tar en el marco de las redes de áreas de al­ma­ce­na­mie­n­to (SAN), también conocidas como SAN por sus siglas en inglés.

Ventajas y de­s­ve­n­ta­jas de la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to basada en matriz

Ventajas In­co­n­ve­nie­n­tes
Mejor apro­ve­cha­mie­n­to de los recursos de al­ma­ce­na­mie­n­to físico. Las tablas de mapeo ce­n­tra­li­za­da contienen un SPOF (punto único de fallo).
El uso de los recursos de al­ma­ce­na­mie­n­to no depende de los límites de los di­s­po­si­ti­vos físicos su­b­ya­ce­n­tes. La vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to se relaciona siempre con el gasto de recursos que resulta de la necesidad de generar y procesar los datos.
Gestión ce­n­tra­li­za­da de los medios de al­ma­ce­na­mie­n­to co­n­ce­n­tra­dos en una unidad lógica. Usado de forma intensiva, el pro­ce­sa­mie­n­to de una solicitud E/S puede producir un cuello de botella que reduce la rapidez del sistema de al­ma­ce­na­mie­n­to completo.
Los recursos físicos se pueden es­tru­c­tu­rar o ampliar in­de­pe­n­die­n­te­me­n­te del grupo de al­ma­ce­na­mie­n­to virtual.

Vi­r­tua­li­za­ción de datos

La vi­r­tua­li­za­ción de datos condensa di­fe­re­n­tes enfoques de vi­r­tua­li­za­ción en el marco de los data wa­rehou­ses, que tienen como objetivo que las apli­ca­cio­nes pro­po­r­cio­nen acceso a los datos ab­s­traí­dos de reali­da­des físicas, para lo que se crea una copia maestra, esto es, una copia virtual del estado del conjunto de datos.

La vi­r­tua­li­za­ción de datos consiste, así, en un concepto de in­te­gra­ción de in­fo­r­ma­ción.

En lo que respecta a la in­te­gra­ción de in­fo­r­ma­ción, ETL (Extract, Transform, Load) se utiliza para poder extraer los datos de di­fe­re­n­tes fuentes es­tru­c­tu­ra­das y unirlos de forma uniforme en una base de datos. Sin embargo, aunque la vi­r­tua­li­za­ción de datos también permite la lectura y ma­ni­pu­la­ción de datos de di­fe­re­n­tes fuentes, estos, a di­fe­re­n­cia de ETL, pe­r­ma­ne­cen en el lugar físico. Es por eso por lo que las so­lu­cio­nes de software de la vi­r­tua­li­za­ción integran datos solo a nivel virtual y pro­po­r­cio­nan acceso en tiempo real a las fuentes de datos físicas.

Ventajas y de­s­ve­n­ta­jas de la vi­r­tu­li­za­ción de datos

Ventajas In­co­n­ve­nie­n­tes
Se reducen los re­qui­si­tos de al­ma­ce­na­mie­n­to para las copias de datos. A di­fe­re­n­cia del enfoque de almacén de datos, la vi­r­tua­li­za­ción de datos no es adecuada para registrar o poner a di­s­po­si­ción in­s­ta­n­tá­neas de base de datos.
Se omite una ex­tra­c­ció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 he­rra­mie­n­tas BI.
El pro­ce­sa­mie­n­to de los datos vi­r­tua­li­za­dos es posible gracias a una gran cantidad de he­rra­mie­n­tas de gestión de datos.

Vi­r­tua­li­za­ción de redes

La vi­r­tua­li­za­ción de redes comprende di­fe­re­n­tes 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 vi­r­tua­li­za­ción se utiliza en lo que respecta a conceptos de seguridad y responde a dos objetivos pri­n­ci­pa­les:

  • Los recursos físicos de red deben agruparse por medio de la vi­r­tua­li­za­ción en una unidad lógica
  • Los recursos de red físicos deben poderse dividir en di­fe­re­n­tes unidades virtuales por medio de la vi­r­tua­li­za­ción

Un ejemplo claro de la vi­r­tua­li­za­ció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 co­ne­xio­nes VPN se usan para es­ta­ble­cer co­ne­xio­nes seguras a través de canales inseguros. Esto ocurre, por ejemplo, cuando los tra­ba­ja­do­res externos acceden a través de Internet a la red privada de su empresa.

Otro ejemplo de la vi­r­tua­li­za­ción de redes son las de­no­mi­na­das redes de área local virtuales (VLAN) (VLAN, Virtual Local Area Network), subredes virtuales que se basan en una red in­fo­r­má­ti­ca 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 ce­n­tra­li­za­da sin necesidad de acceder ma­nua­l­me­n­te a los co­m­po­ne­n­tes físicos de red. Se basan en la se­pa­ra­ción del plano de control virtual del plano de datos, este es, el plano físico de la red re­s­po­n­sa­ble del reenvío de paquetes de datos.

Ventajas y de­s­ve­n­ta­jas de la vi­r­tua­li­za­ción de redes

Ventajas In­co­n­ve­nie­n­tes
Ahorra costes gracias al uso múltiple de la in­frae­s­tru­c­tu­ra de red física. El fu­n­cio­na­mie­n­to de varias subredes virtuales en una misma red física exige co­m­po­ne­n­tes de hardware más potentes.
Los recursos de red se pueden gestionar de forma ce­n­tra­li­za­da en el nivel virtual, además de escalarse fá­ci­l­me­n­te y co­m­pa­r­ti­r­se de manera dinámica. Es posible que para ga­ra­n­ti­zar la seguridad sea necesaria una in­frae­s­tru­c­tu­ra de red física re­du­n­da­n­te.
La vi­r­tua­li­za­ción de redes ofrece di­fe­re­n­tes enfoques con los que se pueden im­ple­me­n­tar conceptos de seguridad a nivel de red desde el lado del software, re­su­l­ta­n­do más rentables.
Ir al menú principal