Virtualización

En Informática, la virtualización utiliza el software para imitar las características del hardware y crear un sistema informático virtual. Esto permite a las organizaciones de TI ejecutar más de un sistema virtual, y múltiples sistemas operativos y aplicaciones, en un solo servidor[1]. Por tanto, este software tiene la función de simular la existencia del recurso tecnológico que se quiere virtualizar. En los ámbitos de habla inglesa, este término se suele conocer por el numerónimo "v12n".[2]

La IOMMU permite el acceso a dispositivos físicos de manera segura en entornos virtualizados a través de lo que llamamos device passthrough. Sin la IOMMU no serían posibles entornos virtualizados que tuviesen acceso de manera correcta al hardware instalado en el sistema, por lo que hoy en día es una pieza indispensable en todas las CPU que tengan que manejar entornos virtualizados.

Tipos de virtualización

Podemos clasificar la virtualización según lo que se quiere virtualizar en:

Una máquina virtual nos permite tener varios ordenadores virtuales ejecutándose sobre el mismo ordenador físico.
  • Virtualización de plataforma, también llamado Virtualización de servidor[3] o Virtualización de hardware.[4] Se tienen máquinas virtuales que son softwares huésped ejecutado sobre un software especial llamado Hipervisor o VMM (Virtual Machine Monitor). Esta VMM crea una capa de abstracción del hardware de la máquina física (host) y se la ofrece al sistema operativo de la máquina virtual.[5]
  • Virtualización de recursos hardware. Por ejemplo, según el tipo de recurso hardware que queremos virtualizar tenemos:
    • Virtualización de almacenamiento. Es lo que hacen, por ejemplo, los sistemas RAID, LVM, SAN y NAS
    • Virtualización de memoria. Es lo que hacen, por ejemplo, los sistemas de memoria virtual.
    • Virtualización de recursos de computación. Es lo que hacen, por ejemplo, los clúster de computación.
    • Virtualización de interfaces de red. Por ejemplo, la Agregación de enlaces simula un dispositivo de red único con gran ancho de banda utilizando múltiples interfaces de red independientes.[6]
  • Virtualización de red. Es lo que hacen las VPN, VLAN, Virtual IP y SDN
  • Virtualización de entornos software de ejecución. Dependiendo del entorno de ejecución que virtualizo tenemos:
    • Virtualización a nivel de sistema operativo o contenedorización. El kernel del sistema operativo subyacente permite ejecutar de forma paralela instancias de espacio de usuario, aisladas unas de otras. [4] Todas las instancias comparte el kernel del sistema operativo subyacente. En cada instancia, llamada contenedor, el usuario puede instalar una o más aplicaciones. Al programa que ofrece alojamiento a contenedores se le llama motor de contenedores
    • Virtualización de escritorio. Implementan un escritorio como servicio basándose en una estructura cliente-servidor. Permite una administración centralizada y en entornos de trabajo estandarizados es posible reducir de forma significativa los costes de gestión y mantenimiento.[4] Dependiendo de dónde se aplique la potencia de procesamiento para crear un escritorio virtual, se puede diferenciar entre distintos enfoques:[4]
      • Basada en el host. Los escritorios virtuales se ejecutan directamente en el servidor y los clientes tiene acceso a los escritorios virtuales a través de la red (ej. VNC, RDP). A usar máquinas virtuales para proporcionar y gestionar escritorios virtuales se le llama infraestructura de escritorios virtuales o VDI (del inglés Virtual Desktop Infrastructure). [7]La VDI aloja entornos de escritorio en un servidor centralizado y los distribuye a los usuarios finales según las necesidades.[7]
      • Basada en el cliente. El dispositivo cliente es el que proporciona los recursos necesarios para gestionar el entorno de escritorio y cada escritorio virtual se sincroniza con el servidor. Ejemplos de este tipo virtualización es lo que hace Microsoft Enterprise Desktop Virtualization (MED-V), VMware ACE y SolidIce.
  • Virtualización de aplicaciones. Consiste en usar aplicaciones que aparentemente se ejecutan en local.[8] Se pueden implementar por ejemplo:[9][4]
    • Con aplicaciones remotas. Las aplicaciones se ejecutan en un servidor remoto y el cliente se conecta a ellas a través de protocolos de visualización como VNC o RDP.
    • Streaming de aplicaciones. Las aplicaciones se ejecutan en local, pero ciertos componentes se descargan de forma que es posible funcionar sin tener conexión a la red. De esta forma solo las partes esenciales del código de una aplicación deben instalarse en la computadora. Mientras el usuario final realiza acciones en la aplicación, el código y los archivos necesarios se entregan a través de la red cuando y como se requieren. De esta forma se permite ejecutar los programas en entornos aislados y distribuirlos en diferentes sistemas sin que sea necesario realizar cambios en el sistema local. Esto permite proteger el sistema operativo subyacente de código malicioso. Ejemplo de sistemas para proporcionar este tipo de servicios: VMware ThinApp, Microsoft Application Virtualization y XenApp (Citrix).
  • Virtualización de datos. Consiste en integrar datos de fuentes dispersas, en distintas localizaciones y formatos, sin replicar los datos, para construir una capa de datos virtual que facilita la provisión de servicios de datos unificados para dar soporte a múltiples aplicaciones y usuarios. Para ello proporciona una capa de abstracción y una capa de servicios de datos.

Computación en la nube

La virtualización es la base de la computación en la nube⁣, ya que el software de virtualización es el que ofrece los servicios de la nube a través de la red. Estos software de virtualización alojan instancias (máquinas virtuales, contenedores,...), que ofrecen los servicios.

Por ejemplo, según el tipo de recursos que ofrece tenemos:[10]

  • Infraestructura como servicio o IaaS (siglas del inglés, Infrastructure as a Service). En este caso se virtualiza hardware. Por ejemplo servidores virtuales, conexiones de red, balanceadores de carga o espacio de almacenamiento. Ejemplos de este tipo de plataformas son Amazon Web Services y Microsoft Azure.
  • Plataforma como servicio o PaaS (siglas del inglés, Platform as a Service). En este caso se ofrece IaaS más software para soportar el ciclo de vida de desarrollo de las aplicaciones (diseño, análisis, desarrollo, pruebas, etc.). Ejemplos de este tipo de plataformas son Google App Engine y Bungee Connect.
  • Software como servicio o SaaS (siglas del inglés, Software as a Service). En este caso se ofrece una instancia de aplicación y datos. Ejemplos de este tipo de plataformas son Microsoft Office 365 y WordPress. Dentro de este tipo de plataformas podemos distinguir distintos tipos según el tipo de aplicación que ofrece. Por ejemplo:
    • Identidad como servicio o IDaaS (siglas del inglés, IDentity as a Service) cuando se ofrecen servicios de identificación.
    • Comunicación como servicio o CaaS (siglas del inglés, Communication as a Service) cuando se ofrecen servicios de comunicación como por ejemplo VoIP, videoconferencias o mensajería instantánea.

Virtualización asistida por hardware

La creación del recurso virtual software, a veces aprovecha hardware que facilita las tareas de virtualización. En este caso hablamos de virtualización asistida por hardware. Por ejemplo se han introducido extensiones en la arquitectura de procesador x86 para facilitar las tareas de virtualización de servidores introduciendo un anillo interior o ring -1 que será el que se ejecuta el hypervisor o VMM y así poder aislar todas las capas superiores de software de las operaciones de virtualización.[11]

Conceptos similares

La simulación consiste en reproducir completamente un sistema a través de un software. Por ejemplo, se recurre a los simuladores cuando se quiere compilar un programa creado para un sistema operativo concreto en otro sistema diferente. Por ejemplo, el simulador de iPhone en XCode permite, entre otras cosas, probar el diseño web móvil en un ordenador.[4]

La emulación persigue conseguir que el sistema reproducido consiga los mismos resultados que su equivalente original.[4] Por ejemplo, los emuladores de videoconsolas son un tipo de emuladores diseñados para emular una o varias videoconsolas y así poder jugar un videojuego diseñado para ser jugado en esta(s).

Por otro lado, existen 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. Ejemplos de este tipo de software son Wine y Cygwin.[4]

Virtualización y ahorro de energía

En estudios centrados en el ahorro de energía que genera la empresa para sus clientes, se muestra que las soluciones de virtualización reducen los costos económicos y emisiones de CO₂.[12]

Esto se puede llevar a cabo fusionando varias máquinas en un solo servidor, disminuyendo el consumo energético y los costes; ahorrando 7000 kilovatios hora o cuatro toneladas de emisiones de CO₂ al año. Los PC virtualizados pueden reducir el consumo de energía y los costos en un 35 por ciento. Hoy en día, la mayor parte consumen entre un 70 y un 80% de su energía estimada.

Otra medida es la desconexión de los servidores y desktops durante los períodos de inactividad, como por la noche o los fines de semana, con lo que se puede ahorrar aproximadamente un 25 por ciento de consumo energético. Hoy en día, las empresas son las más interesadas en la virtualización, ya que les interesa mucho reducir costes y energía.

Referencias

  1. Turban, E; King, D; Lee, J; Viehland, D (2008). «Chapter 19: Building E-Commerce Applications and Infrastructure». Electronic Commerce A Managerial Perspective (5th edición). Prentice-Hall. p. 27.
  2. «Server V12n at Citrix iForum» (html). Microsoft Windows Server Team (en inglés). 23 de octubre de 2007. Archivado desde el original el 9 de enero de 2020. Consultado el 9 de enero de 2020.
  3. COMPARATIVA DE PRESTACIONES DE SERVIDORES VIRTUALIZADOS. Adrián Barbáchano Cirión. Daniel Morató Osés. ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACIÓN. Universidad Pública de Navarra. 16 de septiembre de 2010
  4. Virtualización: el alma de la nube. ionos.es. 21 de junio de 2019
  5. «La virtualización puede ser la solución a tus problemas» (html). INCIBE. 9 de enero de 2020. Archivado desde el original el 9 de enero de 2020. Consultado el 9 de enero de 2020. «El dispositivo físico que hará las veces de anfitrión se conoce como host, este será el encargado de alojar los diferentes recursos virtualizados conocidos como máquinas virtuales o VM, por sus siglas en inglés «Virtual Machine». Para gestionar las máquinas virtuales es necesario instalar en el host una herramienta específica denominada software de virtualización, que puede ser de dos tipos: Nativo. En este caso el software de virtualización también actuará como sistema operativo ejecutándose directamente sobre el hardware del dispositivo anfitrión o host. Hosted o alojado. El software de virtualización se ejecuta sobre el sistema operativo del host. »
  6. Virtualización. Daniel. estrellateyarde.org. 3 de enero de 2008
  7. Infraestructura de escritorios virtuales (VDI). vmware.com. 2020
  8. Virtualización de aplicaciones. serban.es. 6 de febrero de 2017
  9. Application virtualization Q&A: Streaming and remote app delivery. Alyssa Provazza. 19 de octubre de 2012
  10. Definición de IaaS, PaaS y SaaS ¿En qué se diferencian?. Brismark Antoniony
  11. VIRTUALIZACIÓN DE SERVIDORES PARA LA NUBE DE LA CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES”. Tesis de grado de JACKSON AYOVÍ PRECIADO. FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES. Universidad de Guayaquil. Agosto de 2013
  12. López-Vallejo, Marisa; Huedo Cuesta, Eduardo; Garbajosa Sopeña, Juan. «Green IT: tecnologías para la eficiencia energética en los sistemas TI». Madrimasd.org. ISBN 978-84-613-3121-5. Archivado desde el original el 7 de octubre de 2009.
Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.