Virtualización.
La virtualización es una tecnología que se puede usar para crear representaciones virtuales de servidores, almacenamiento, redes y otras máquinas físicas. La virtualización puede ser aplicada en el contexto de la creación de redes superpuesta, que ofrecen soporte para tipos particulares de aplicaciones distribuidas. Otra aplicación es la virtualización de sistemas, que es en el contexto de los sistemas operativos; esta es la que se estudia en esta sección.
El objetivo de la virtualización de sistema [1] es proporcionar múltiples máquinas virtuales (imágenes de hardware virtual) sobre la arquitectura de la máquina física subyacente, con cada virtual máquina que ejecuta una instancia de sistema operativo separada.
El concepto surge de la observación de que las arquitecturas informáticas modernas tienen el rendimiento necesario para admitir potencialmente un gran número de máquinas virtuales y recursos multiplexados entre a ellos. Varias instancias del mismo sistema operativo pueden ejecutarse en máquinas virtuales o se puede admitir una gama de diferentes sistemas operativos. El sistema de virtualización asigna los procesadores físicos y otros recursos de una máquina física entre todas las máquinas virtuales que admite.
Tipos de Virtualización
En La Figura 1 se muestra, de acuerdo a [3], cuatro tipos de interfaces en tres niveles diferentes de las capas de implementación en un sistema informático típico: la arquitectura del conjunto de instrucciones (ISA, instruction set architecture), la interfaz binaria de la aplicación (ABI, application binary interface) y interfaz de programación de aplicaciones (API, application programming interface).
![]() |
| Figure 1: Interfaces en sistemas informáticos. Adaptado de [3] |
- ISA. La ISA marca la división entre hardware y software, y consta de las interfaces:
- (a) la ISA del usuario e incluye aquellos aspectos visibles para un programa de aplicación (interfaz 4);
- (b) es un superconjunto del usuario ISA e incluye aquellos aspectos visibles solo para el software del sistema operativo responsable de administrar los recursos de hardware, (interfaz 3).
- ABI. La ABI da acceso a un programa a los recursos y servicios de hardware disponibles en un sistema a través de la ISA de usuario (interfaz 4); y de la interfaz de llamada al sistema (interfaz 2).
- API. La API le da a un programa acceso a los recursos y servicios de hardware disponibles en un sistema a través del usuario ISA (interfaz 4) complementado con llamadas de biblioteca de lenguaje de alto nivel (HLL) (interfaz 1). Cualquier llamada del sistema generalmente se realizan a través de bibliotecas.
La esencia de la virtualización estriba en la capacidad de imitación de las interfaces mencionadas. En la Figura 2 se ilustra las formas de virtualización.
- (a)Conjunto separado de instrucciones, un intérprete/emulador, que se ejecuta sobre un sistema operativo. Se puede construir un sistema en tiempo de ejecución que esencialmente proporcione un conjunto de instrucciones abstractas que se utilizará para ejecutar aplicaciones. Las instrucciones se pueden interpretarse (ejemplo, Java) o emularse (emular SO Windows sobre Linux).
- (b) Instrucciones de bajo nivel, junto con un sistema operativo mínimo básico. Este enfoque se conoce como un monitor de máquina virtual nativo. Se llama nativo porque se implementa directamente en parte superior del hardware subyacente. Tenga en cuenta que la interfaz que ofrece un monitor de máquina virtual se puede ofrecer simultáneamente a diferentes programas. Tendría que proporcionar y regular el acceso a varios recursos, como almacenamiento externo y redes; esto implica que tendrá que implementar controladores de dispositivo para esos recursos. Como resultado, ahora es posible tener múltiples y diferentes sistemas operativos invitados ejecutándose de forma independiente y simultánea en la misma plataforma.
- (c) Instrucciones de bajo nivel, pero delegando la mayor parte del trabajo a un sistema operativo completo. Esta configuración llamada monitor de máquina virtual alojada se ejecutará sobre un sistema operativo alojador (host) de confianza, como se muestra en la Figura 3.8(c). En este caso, el monitor de la máquina virtual puede hacer uso de las instalaciones existentes proporcionadas por ese sistema operativo host.
![]() |
| Figure 3: Formas de Virtualización: (a) VM de proceso, |
![]() |
| (b)VMM nativo, |
![]() |
| (c)VMM alojado. |
VM y computación en la nube
Tres tipos de servicios en la nube [4]: Infraestructura como servicio que cubre la infraestructura básica, Plataforma como servicio que cubre servicios a nivel de sistema y Software como servicio que contiene aplicaciones reales
- Infraestructura como servicio (IaaS.) IaaS es la distribución de una infraestructura informática (recursos informáticos, de redes y de almacenamiento) como un servicio. Permite a los clientes escalar (agregar más recursos) o reducir (liberar recursos) cuando sea necesarios (y solo pagan por los recursos consumidos). Esta capacidad es llamado elasticidad y generalmente se logra a través de la virtualización de servidores, una tecnología que permite que varias aplicaciones se ejecuten en el mismo servidor físico que las máquinas virtuales, es decir, como si se ejecutaran en distintos servidores físicos. Luego, los clientes pueden solicitar instancias informáticas como máquinas virtuales y agregar y adjuntar almacenamiento según sea necesario. Un ejemplo de IaaS son los servicios web de Amazon.
- Software como servicio (SaaS.) SaaS es la entrega de software de aplicación como un servicio. Generaliza el modelo anterior de proveedor de servicios de aplicaciones (ASP) mediante el cual la aplicación alojada es propiedad exclusiva, operada y mantenida por el ASP. Con SaaS, el proveedor de la nube permite al cliente utilizar aplicaciones alojadas (como con ASP) pero también proporciona herramientas para integrar otras aplicaciones, de diferentes proveedores o incluso desarrollado por el cliente (usando la plataforma en la nube). Ejemplo de una SaaS es el sistema Safesforce CRM.
- Plataforma como servicio (PaaS.) PaaS es la entrega de una plataforma informática con herramientas de desarrollo y APIs como servicio. Permite a los desarrolladores crear e implementar aplicaciones personalizadas directamente en la infraestructura de la nube e integrarlas con aplicaciones proporcionadas como SaaS. Un ejemplo de PaaS es Google Apps.
Bibliografía
[1]George Coulouris et al. Distributed Systems: Concepts and Design. 5th. USA: Addison-Wesley Publishing Company, 2011
[2]M van Steen and A.S. Tanenbaum. Distributed Systems. Edited by Pearson Prentice Hall. Third. distributed-systems.net, 2017
[3]J.E. Smith and Ravi Nair. “The architecture of virtual machines”. In: Computer 38.5 (2005), pages 32–38. DOI: 10.1109/MC.2005.173
[4]Ozsu M.T. and Valduriez P. Principles of distributed database systems. 4th edition. Springer, 2020. ISBN: 9783030262525,9783030262532




No hay comentarios.:
Publicar un comentario