¿Qué sería de la nube sin vi­r­tua­li­za­ción? La di­s­po­si­ción de recursos virtuales de TI y la co­n­si­guie­n­te ab­s­tra­c­ción respecto de la máquina física sentaron las bases de la era de la co­mpu­tación en la nube. Todas las te­c­no­lo­gías que se usan en el marco de la co­mpu­tación en la nube se basan en la vi­r­tua­li­za­ción de los recursos de TI, estos son, hardware, software, memoria y co­m­po­ne­n­tes de red. Los procesos y técnicas uti­li­za­dos en la ab­s­tra­c­ción de cada uno de estos recursos varían en gran medida. Por ello se presentan a co­n­ti­nua­ción junto a las ventajas e in­co­n­ve­nie­n­tes que conllevan, lo que permitirá al lector hacerse una idea de su posible apli­ca­ción en el ámbito co­r­po­ra­ti­vo.

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. 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 se 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.

En la vi­r­tua­li­za­ción se crea una capa de ab­s­tra­c­ción entre los recursos físicos y su equi­va­le­n­te virtual que re­pre­se­n­ta la principal ventaja de este concepto, 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.

De­fi­ni­ción

Mediante vi­r­tua­li­za­ción se consigue la ab­s­tra­c­ción de recursos físicos tales como hardware, software, memoria o co­m­po­ne­n­tes de red. El objetivo es poner a di­s­po­si­ción estos recursos a nivel virtual para di­s­tri­bui­r­los entre los di­fe­re­n­tes clientes de forma flexible en función de las ne­ce­si­da­des de cada uno. De este modo se garantiza el mejor apro­ve­cha­mie­n­to de los recursos de TI.

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, pe­r­mi­tie­n­do, por ejemplo, ejecutar el software de una co­mpu­tado­ra central antigua en una pla­ta­fo­r­ma de co­mpu­tación actual. Al contrario que la emulación, la si­mu­la­ción no está pensada para la práctica. Un ejemplo muy re­pre­se­n­ta­ti­vo es el de los si­mu­la­do­res de avión: estos imitan las co­n­di­cio­nes que se producen en un avión, pero no llevan a los pilotos a su destino. En el ámbito de la in­fo­r­má­ti­ca el simulador de iPhone en XCode es bastante conocido y puede uti­li­zar­se, entre otras cosas, para probar el diseño web móvil en un ordenador.
     
  • 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 que, al contrario que el simulador, un emulador sí permite ejecutar el sistema re­pro­du­ci­do. Es decir, ha­bla­ría­mos de un “emulador de vuelo” si realmente no solo re­pro­du­je­ran las co­n­di­cio­nes, sino que llevara a los pilotos a su destino. Uno de los proyectos de software más pro­mi­ne­n­tes que trata con este concepto es el emulador de Android en eAndroid Studio.

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.

Nota

Wine establece una capa de co­m­pa­ti­bi­li­dad en los sistemas ope­ra­ti­vos co­m­pa­ti­bles con POSIX (Linux, Mac, Solaris o BSD) que permite ejecutar programas de Windows. El software se basa en una re­co­n­s­tru­c­ción tenaz del código fuente pro­pie­ta­rio de Windows. La re­co­n­s­tru­c­ción no se basó en el de­s­ma­n­te­la­mie­n­to del software patentado, sino en la in­ge­nie­ría inversa en el ámbito de la prueba de caja negra. Así, té­c­ni­ca­me­n­te Wine no copia la lógica interna del sistema operativo de Windows en su conjunto, sino solo su API. Wine recibe las llamadas al sistema del software Windows, las tra­n­s­fo­r­ma sin retrasos en llamadas POSIX y las envía al sistema su­b­ya­ce­n­te.

¿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. El objetivo es ejecutar apli­ca­cio­nes en un sistema con el que no serían co­m­pa­ti­bles sin su ayuda. No obstante, este pla­n­tea­mie­n­to presenta dos in­co­n­ve­nie­n­tes: por un lado, tanto la emulación como la si­mu­la­ción requieren mucho trabajo en su de­sa­rro­llo; por el otro, siempre implican una di­s­mi­nu­ción del re­n­di­mie­n­to. 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 7 una o varias versiones virtuales de Windows 7 recurre a 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

El término vi­r­tua­li­za­ción se acuñó en 1960 y hace re­fe­re­n­cia a la creación de máquinas virtuales, un concepto de la vi­r­tua­li­za­ción de hardware. A día de hoy, 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. Las máquinas virtuales funcionan como sistemas alojados virtuales en uno o varios sistemas físicos llamados equipos an­fi­trio­nes o host. En la vi­r­tua­li­za­ción de hardware es un 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. Se pueden di­s­ti­n­guir dos tipos: el hi­pe­r­vi­sor tipo 1 o hi­pe­r­vi­sor bare metal se ejecuta en el hardware del sistema anfitrión, mientras que el hi­pe­r­vi­sor tipo 2, alojado o hosted, se ejecuta en el sistema operativo del anfitrión y utiliza el co­n­tro­la­dor del di­s­po­si­ti­vo fa­ci­li­ta­do por el sistema para acceder al hardware.

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 interfaz de pro­gra­ma­ción (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. Los pro­vee­do­res de sistemas pro­pie­ta­rios, como Microsoft Windows, no permiten por norma general este tipo de mo­di­fi­ca­ción. Entre los hi­pe­r­vi­so­res que permiten la pa­ra­vi­tua­li­za­ción se en­cue­n­tran Xen y Oracle VM Server for SPARC. El concepto también tiene su apli­ca­ción en el sistema operativo para co­mpu­tado­ras z/VM de IBM.

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 alo­ja­mie­n­to 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. La vi­r­tua­li­za­ción se aplica aquí con la intención de aumentar la tasa de ocupación del hardware del servidor. Hay que tener en cuenta que la ad­qui­si­ción de los co­m­po­ne­n­tes de hardware, tales como pro­ce­sa­do­res, es cara, por lo que las empresas evitan una ar­qui­te­c­tu­ra de TI en la que se utilice una máquina de cálculo separada para cada apli­ca­ción del servidor, im­pi­die­n­do de este modo que los costosos recursos CPU pe­r­ma­ne­z­can sin usar. En su lugar, los di­fe­re­n­tes se­r­vi­do­res se operan en una misma pla­ta­fo­r­ma de hardware como sistemas huéspedes separados, lo que 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.

Este método es es­pe­cia­l­me­n­te eficiente cuando un servidor co­n­so­li­da­do trabaja con picos de re­n­di­mie­n­to es­ca­lo­na­dos. Si todos los sistemas alojados uti­li­za­sen el hardware de un equipo anfitrión al mismo tiempo, habría que ase­gu­rar­se de que se dispone de los recursos ne­ce­sa­rios para la carga de trabajo co­rre­s­po­n­die­n­te. De lo contrario se correría el riesgo de que una apli­ca­ción que necesita recursos in­te­n­si­va­me­n­te afecte ne­ga­ti­va­me­n­te al re­n­di­mie­n­to de otras apli­ca­cio­nes en otras máquinas virtuales del mismo sistema anfitrión.

Hecho

Un campo de apli­ca­ción de la vi­r­tua­li­za­ción de hardware en el contexto co­r­po­ra­ti­vo es la co­n­so­li­da­ción del servidor. Se habla en este contexto de vi­r­tua­li­za­ción de se­r­vi­do­res.

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 sistemas huésped del mismo sistema anfitrión no se verán afectados. La excepción la co­n­s­ti­tu­yen los posibles ataques en los que los hackers consiguen acceder al sistema anfitrión apro­ve­cha­n­do las vu­l­ne­ra­bi­li­da­des del hi­pe­r­vi­sor, por lo que se habla entonces de un escape de la máquina virtual. En de­fi­ni­ti­va, la seguridad del fu­n­cio­na­mie­n­to de la máquina de vi­r­tua­li­za­ción va a depender del software de vi­r­tua­li­za­ción, así como de la rapidez del proveedor para detectar las brechas de seguridad y para cerrarlas.

Re­cie­n­te­me­n­te la vi­r­tua­li­za­ción de hardware ha en­co­n­tra­do otros co­m­pe­ti­do­res debido a otros conceptos de vi­r­tua­li­za­ción, lo que se debe pri­n­ci­pa­l­me­n­te a los gastos de recursos (overhead) de las máquinas virtuales: por ejemplo, la te­c­no­lo­gía de co­n­te­ne­do­res (un tipo de vi­r­tua­li­za­ción de software) no utiliza un hi­pe­r­vi­sor. Es decir, la vi­r­tua­li­za­ción se produce a nivel del sistema operativo y las apli­ca­cio­nes se ejecutan en co­n­te­ne­do­res aislados, ahorrando muchos más recursos. No obstante, los co­n­te­n­do­res ofrecen un grado menor de ai­s­la­mie­n­to que las máquinas virtuales. Con todo, se considera poco probable que una te­c­no­lo­gía pueda sustituir a la otra, más bien se re­co­mie­n­da encontrar el concepto de vi­r­tua­li­za­ción que mejor se ajusta a las ne­ce­si­da­des de cada proyecto.

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 como VMware ThinApp, Microsoft App-V o Citrix XenApp 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.

Por ejemplo, con VMware ThinApp se puede convertir a los archivos de paquete de Windows Installer de programas complejos, como pueden ser archivos MSI, en archivos in­de­pe­n­die­n­tes EXE. Estos contienen todas las bi­blio­te­cas y los archivos de co­n­fi­gu­ra­ción ne­ce­sa­rios para ejecutar la apli­ca­ción en cualquier entorno del sistema operativo de Windows.

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. Para ello se copia la apli­ca­ción con todas sus de­pe­n­de­n­cias del servidor al di­s­po­si­ti­vo cliente, donde se ejecuta en un entorno de tiempo de ejecución aislado, por lo que no hay que instalar el software en el sistema de destino. 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. En la ac­tua­li­dad, las empresas suelen poner a di­s­po­si­ción de los empleados un espacio de trabajo propio, en el que se incluye un ordenador. Cada uno de estos equipos ha de ser co­n­fi­gu­ra­do y requiere un ma­n­te­ni­mie­n­to, aunque ge­s­tio­nar­los de forma local supone mucho trabajo. Para ahorrar en recursos humanos se han llevado a cabo distintos conceptos en torno a la 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 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. Esta vi­r­tua­li­za­ción tiene lugar con la ayuda de la te­c­no­lo­gía pro­pie­ta­ria de pro­vee­do­res líderes de so­lu­cio­nes de software como Microsoft, VMware o Citrix. 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, desde equipos co­m­ple­ta­me­n­te equipados u or­de­na­do­res notebooks (thick clients o clientes pesados), te­r­mi­na­les con un hardware reducido (thin clients o clientes livianos), hasta los di­s­po­si­ti­vos su­per­re­du­ci­dos (zero clients), sin olvidar sma­r­t­pho­nes y tablets. Por norma general se requiere conexión de red. 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. Los es­cri­to­rios virtuales que se crean en este tipo de enfoque se pueden pe­r­so­na­li­zar, al igual que un es­cri­to­rio local, con todas las opciones definidas por el usuario, así como con opciones de vi­sua­li­za­ción pe­r­so­na­li­za­das.
       
    • 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. Este enfoque ofrece a los usuarios un margen de acción reducido, por lo que es apropiado en aquellos casos en los que se requiere un número elevado de espacios de trabajo altamente es­ta­n­da­ri­za­dos con funciones reducidas. Un ejemplo de apli­ca­ción es el comercio al por menor, en el que los clientes livianos permiten a los empleados ver las exi­s­te­n­cias así como acceder a la in­fo­r­ma­ción de productos y a los co­n­su­mi­do­res pe­r­so­na­li­zar y realizar los pedidos.
       
    • 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”), de modo que cada entorno de es­cri­to­rio se ejecuta en una cuchilla separada. En el campo de la vi­r­tua­li­za­ción de es­cri­to­rio este enfoque tiene una clara ventaja: cada cuchilla co­n­s­ti­tu­ye un ordenador in­de­pe­n­die­n­te pero el conjunto de ellas comparten los servicios del bastidor (ele­c­tri­ci­dad y re­fri­ge­ra­ción) y se gestionan de forma ce­n­tra­li­za­da.
       
  • 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. Este enfoque requiere un cliente pesado con el hardware adecuado. En la práctica se lleva a cabo gracias a las máquinas virtuales o mediante sistemas ope­ra­ti­vos que funcionan vía streaming.
    • 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. Cada es­cri­to­rio virtual se si­n­cro­ni­za en in­te­r­va­los regulares gracias a una imagen del sistema operativo en el servidor, lo que permite la gestión ce­n­tra­li­za­da junto a la ge­ne­ra­ción de ciclos de copias de seguridad basadas en imágenes. Otra de las ventajas de este enfoque de vi­r­tua­li­za­ción es que las apli­ca­cio­nes están di­s­po­ni­bles también de forma local, incluso cuando la conexión con el servidor se in­te­rru­m­pe.
       
    • 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. Un sistema operativo vía streaming se presta para aquellos es­ce­na­rios en los que hay que facilitar grupos de es­cri­to­rio completos basándose en una imagen de sistema operativo única. Como ventaja, los ad­mi­ni­s­tra­do­res solo tienen que gestionar una imagen en el servidor para realizar los ajustes en todos aquellos es­cri­to­rios cuyos sistemas ope­ra­ti­vos funcionan vía streaming. Además, el streaming funciona sin hi­pe­r­vi­sor, aunque sí requiere una conexión de red sin in­te­rru­p­cio­nes entre servidor y di­s­po­si­ti­vo cliente.

La vi­r­tua­li­za­ción de es­cri­to­rio es muy ventajosa sobre todo al permitir una ad­mi­ni­s­tra­ción ce­n­tra­li­za­da. Además, en los entornos de trabajo es­ta­n­da­ri­za­dos es posible reducir de forma si­g­ni­fi­ca­ti­va los costes de gestión y ma­n­te­ni­mie­n­to. Sin embargo, no resulta de tanta utilidad en aquellos casos en los que se persiga crear una es­tru­c­tu­ra de TI he­te­ro­gé­nea para gran variedad de es­cri­to­rios.

Las empresas que recurren a la vi­r­tua­li­za­ción de es­cri­to­rio suelen reducir los gastos, más si se utiliza un cliente liviano con el que no solo se minimizan los costes re­la­cio­na­dos con la ad­qui­si­ción de hardware, sino también del consumo de energía. Sin olvidar el ahorro que se obtiene al requerir menos licencias de software para re­pro­du­cir co­n­di­cio­nes de trabajo co­m­pa­ra­bles.

Pero no todo es positivo: cuando se hace el cambio a la vi­r­tua­li­za­ción de es­cri­to­rios hay que invertir gran cantidad de recursos del lado del servidor. La vi­r­tua­li­za­ción de es­cri­to­rio exige un servidor potente, además de un amplio ancho de banda para la tra­n­s­mi­sión de datos en la red, aunque este va a variar en función del enfoque de la vi­r­tua­li­za­ción utilizado. Por eso en la práctica este tipo de vi­r­tua­li­za­ción solo es rentable a largo plazo.

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 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. Con el término mi­cro­se­r­vi­cios se hace re­fe­re­n­cia a un enfoque para el de­sa­rro­llo de un software modular. En esta ar­qui­te­c­tu­ra se pueden de­sa­rro­llar apli­ca­cio­nes complejas co­m­bi­na­n­do procesos in­de­pe­n­die­n­tes, por ejemplo, en un co­n­te­ne­dor propio. Se habla entonces de apli­ca­cio­nes mu­l­ti­co­n­te­ne­dor. Además, este tipo de es­tru­c­tu­ra presenta varias ventajas: los mi­cro­se­r­vi­cios facilitan el de­s­plie­gue de apli­ca­cio­nes en un clúster de se­r­vi­do­res, pues los procesos en co­n­te­ne­do­res pueden eje­cu­tar­se bien en el mismo sistema o di­s­tri­bui­r­se en di­fe­re­n­tes sistemas. Asimismo, cada mi­cro­se­r­vi­cio puede escalarse de forma in­di­vi­dual, para lo que basta que los usuarios inicien una nueva instancia en un nuevo co­n­te­ne­dor.

Un gestor clúster y las he­rra­mie­n­tas de or­que­s­ta­ción sirven para gestionar las ar­qui­te­c­tu­ras de mi­cro­se­r­vi­cios en el clúster. En el artículo sobre el eco­si­s­te­ma de Docker de la Digital Guide se puede acceder a una selección de las mejores he­rra­mie­n­tas de co­n­te­ne­do­res.

En co­m­pa­ra­ción con la vi­r­tua­li­za­ción de hardware, la te­c­no­lo­gía de co­n­te­ne­do­res se ca­ra­c­te­ri­za por una reducción mínima de la vi­r­tua­li­za­ción pues, entre otras cosas, se elimina el hi­pe­r­vi­sor. Mientras que las máquinas virtuales requieren la vi­r­tua­li­za­ción completa del sistema operativo, la te­c­no­lo­gía de co­n­te­ne­do­res permite ejecutar miles de mi­cro­se­r­vi­cios en entornos de tiempo de ejecución aislados en un mismo 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. Esta solución de vi­r­tua­li­za­ción establece una capa de ab­s­tra­c­ción entre los distintos medios de al­ma­ce­na­mie­n­to físicos y el nivel lógico, en el cual se puede gestionar al conjunto de recursos de al­ma­ce­na­mie­n­to de forma ce­n­tra­li­za­da a través de software.

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).

Las unidades lógicas no están sujetas a los límites de capacidad física de cada uno de los medios de al­ma­ce­na­mie­n­tos in­di­vi­dua­les, esto es, este tipo de vi­r­tua­li­za­ción ofrece una mayor fle­xi­bi­li­dad en lo que respecta a la asi­g­na­ción de recursos de al­ma­ce­na­mie­n­to y permite utilizar el hardware dispuesto para el guardado de datos a pleno re­n­di­mie­n­to. Para las empresas esto se traduce en una mayor re­n­ta­bi­li­dad de la capacidad de al­ma­ce­na­mie­n­to del centro de datos.

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, es decir, esta tabla contiene todos los metadatos ne­ce­sa­rios para encontrar el espacio de al­ma­ce­na­mie­n­to físico de los distintos bloques de datos. Gracias al mapeo es posible gestionar los datos del nivel virtual de forma separada al co­n­tro­la­dor co­rre­s­po­n­die­n­te del medio físico de al­ma­ce­na­mie­n­to y de este modo re­du­ci­r­los, du­pli­car­los o moverlos sin que afecte al medio físico.

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
  • Basada en matriz
  • Basada en red

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

Este enfoque de la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to 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, que bien se im­ple­me­n­tan mediante un gestor de volúmenes de sistema operativo interno o un software in­de­pe­n­die­n­te (hi­pe­r­vi­sor de al­ma­ce­na­mie­n­to). El co­n­tro­la­dor del di­s­po­si­ti­vo del sistema host permite tener acceso al hardware (discos duros y otros sistemas de al­ma­ce­na­mie­n­to), por encima del cual se encuentra el gestor de volúmenes o hi­pe­r­vi­sor de al­ma­ce­na­mie­n­to como capa de software, que gestiona tanto la entrada y salida (E/S) en la tabla de mapeo, como la búsqueda metadatos.

Las funciones nativas que permiten crear unidades lógicas virtuales están di­s­po­ni­bles en todos los sistemas ope­ra­ti­vos:

  • Windows: Logical Disk Manager (LDM)
  • macOS: Co­re­S­to­ra­ge (desde OS X Lion)
  • Linux: Logical Volume Manager (LVM)
  • Solaris y FreeBSD: zPools del sistema de archivos Z File Systems (ZFS)

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 tienen que 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.

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. El objetivo que persigue este enfoque de vi­r­tua­li­za­ción es ga­ra­n­ti­zar la seguridad contra fallos mediante re­du­n­da­n­cia. Es por ello que los datos se replican en una matriz de discos y se di­s­tri­bu­yen en di­fe­re­n­tes discos duros.

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.

Las matrices de discos más modernas ofrecen la po­si­bi­li­dad de co­ne­c­tar­se a otros di­s­po­si­ti­vos de al­ma­ce­na­mie­n­to y, de esta forma, co­n­ce­n­trar los recursos de al­ma­ce­na­mie­n­to de di­fe­re­n­tes matrices de discos a nivel virtual y ge­s­tio­nar­los de forma ce­n­tra­li­za­da. Para ello, el co­n­tro­la­dor de al­ma­ce­na­mie­n­to de la matriz se supedita a un co­n­tro­la­dor primario, que se encarga de gestionar de forma ce­n­tra­li­za­da la tabla de mapeo y la tra­n­s­mi­sión de las so­li­ci­tu­des E/S.

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, aunque para poder conectar un al­ma­ce­na­mie­n­to externo, el di­s­po­si­ti­vo debe disponer de la interfaz adecuada. La migración de datos o su réplica no puede rea­li­zar­se en todos los sistemas, pues la mayoría de pro­vee­do­res de matrices utilizan pro­to­co­los pro­pie­ta­rios. Además hay que tener en cuenta que, con un uso intensivo, el co­n­tro­la­dor de al­ma­ce­na­mie­n­to primario puede co­n­ve­r­ti­r­se en un cuello de botella.

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

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 área de al­ma­ce­na­mie­n­to, también conocidas como SAN por sus siglas en inglés.

El co­m­po­ne­n­te principal de este tipo de vi­r­tua­li­za­ción es un di­s­po­si­ti­vo de red ce­n­tra­li­za­do (como puede ser un co­n­mu­ta­dor o switch) que establece una capa de ab­s­tra­c­ción entre el medio de al­ma­ce­na­mie­n­to físico de los sistemas in­te­gra­dos y el grupo de recursos de al­ma­ce­na­mie­n­to virtual, además de en­ca­r­gar­se del mapeo de metadatos y de di­re­c­cio­nar las so­li­ci­tu­des E/S. Los di­s­po­si­ti­vos de vi­r­tua­li­za­ción en este tipo de enfoque se im­ple­me­n­tan di­re­c­ta­me­n­te en la ruta de datos, lo que se conoce como so­lu­cio­nes en banda (vi­r­tua­li­za­ción simétrica). En las so­lu­cio­nes en banda, las so­li­ci­tu­des E/S pasan por el di­s­po­si­ti­vo de vi­r­tua­li­za­ción, por lo que no tiene lugar la in­ter­ac­ción directa entre el host y el di­s­po­si­ti­vo de al­ma­ce­na­mie­n­to físico. Es por eso que el host no debe disponer de un co­n­tro­la­dor especial para el hardware de al­ma­ce­na­mie­n­to.

Nota

La vi­r­tua­li­za­ción simétrica de recursos de al­ma­ce­na­mie­n­to se opone a la vi­r­tua­li­za­ción asi­mé­tri­ca o fuera de banda. En este último caso el di­s­po­si­ti­vo de vi­r­tua­li­za­ción funciona solo como servidor de metadatos que ofrece in­fo­r­ma­ción sobre el lugar de al­ma­ce­na­mie­n­to del bloque de datos en cuestión. Es entonces cuando tiene lugar una solicitud E/S directa al di­s­po­si­ti­vo de al­ma­ce­na­mie­n­to.

La gran ventaja de los enfoques basados en la red es que los recursos de al­ma­ce­na­mie­n­to de sistemas he­te­ro­gé­neos se pueden gestionar a través de una interfaz ce­n­tra­li­za­da. Si se im­ple­me­n­ta la vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to basada en red con la solución fuera de banda, debe im­ple­me­n­tar­se también del lado del host un software especial para el acceso a los di­s­po­si­ti­vos de al­ma­ce­na­mie­n­to di­s­po­ni­bles en SAN. La solución en banda no necesita este software, pero es más complejo de im­ple­me­n­tar y por norma general está re­la­cio­na­do con un periodo de latencia E/S mayor.

EMC, HP, IBM, LSI y Oracle son conocidos pro­vee­do­res de so­lu­cio­nes de vi­r­tua­li­za­ción de al­ma­ce­na­mie­n­to.

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.  

La 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 del análisis de almacén de datos, que tiene 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 que se aleja de pro­ce­di­mie­n­tos clásicos como pueden ser los procesos ETL, mediante los que se es­ta­ble­cen una capa de ab­s­tra­c­ción entre las fuentes de datos físicas y la re­pre­se­n­ta­ción virtual de datos.

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 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.

Con la te­c­no­lo­gía de vi­r­tua­li­za­ción de datos, aquellos datos di­s­tri­bui­dos en di­fe­re­n­tes almacenes de datos, data marts o data lakes, se pueden condensar de forma efectiva sin necesidad de crear una nueva pla­ta­fo­r­ma física de datos. Todo ello reduce, por un lado, el espacio de al­ma­ce­na­mie­n­to necesario para analizar grandes ca­n­ti­da­des de datos y, por otro, la cantidad de datos tra­n­s­fe­ri­dos a la red. Para poder acceder a la imagen virtual de toda la base de datos existen diversas apli­ca­cio­nes. Es más, en el ámbito de la in­te­li­ge­n­cia de negocios (BI) hay di­s­po­ni­bles he­rra­mie­n­tas de au­to­se­r­vi­cio con las que se pueden crear informes y análisis sin necesidad de trabajar con pro­fe­sio­na­les de TI.

Los pri­n­ci­pa­les pro­vee­do­res de este tipo de te­c­no­lo­gía son: Denodo, TIBCO, IBM e In­fo­r­ma­ti­ca.

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 la conexión 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.

Internet, al tratarse de una red pública, no permite la conexión segura entre dos or­de­na­do­res. Por ello, para ga­ra­n­ti­zar la co­n­fi­de­n­cia­li­dad de los datos durante la tra­n­s­mi­sión se re­co­mie­n­da utilizar la vi­r­tua­li­za­ción. Los diversos pro­vee­do­res de software ofrecen so­lu­cio­nes de vi­r­tua­li­za­ción con las que abstraer redes virtuales de redes físicas y pro­te­ge­r­las por medio de pro­ce­di­mie­n­tos de cifrado y au­te­n­ti­fi­ca­ción. La tra­n­s­mi­sión de datos de un ordenador a otro es posible en una red privada que se conoce como túnel.

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, Virtual Local Area Network), subredes virtuales que se basan en una red in­fo­r­má­ti­ca física y se im­ple­me­n­tan a través de co­m­po­ne­n­tes de hardware como switches o routers que se vi­r­tua­li­zan. Los di­s­po­si­ti­vos que se en­cue­n­tran co­ne­c­ta­dos a una VLAN solo pueden co­mu­ni­car­se con los di­s­po­si­ti­vos de la misma VLAN, es decir, incluso si todos los di­s­po­si­ti­vos se en­cue­n­tran en la misma red física, el enlace de datos a otros di­s­po­si­ti­vos de otra VLAN no será posible. En de­fi­ni­ti­va, la vi­r­tua­li­za­ción de redes ofrece la po­si­bi­li­dad de pro­po­r­cio­nar, gestionar y asignar los recursos de red a nivel virtual con fle­xi­bi­li­dad, in­de­pe­n­die­n­te­me­n­te de las co­n­di­cio­nes físicas.

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. En lo que respecta al plano de control, su co­m­po­ne­n­te principal es el co­n­tro­la­dor de red, encargado de gestionar a los co­m­po­ne­n­tes de red del plano de datos, tales como el router o los switches, así como de dirigir el envío de paquetes de datos. Es decir, el co­n­tro­la­dor de red es re­s­po­n­sa­ble de la gestión de redes, pero también de las in­di­ca­cio­nes de en­ru­ta­mie­n­to, los derechos de acceso y la im­ple­me­n­ta­ción de conceptos de seguridad. Por su parte, los co­m­po­ne­n­tes de red del plano de datos recogen las in­s­tru­c­cio­nes de los co­n­tro­la­do­res de red, en­ca­r­gá­n­do­se del envío de los paquetes de datos al di­s­po­si­ti­vo de destino deseado.

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