La virtualización es la provisión de un conjunto de recursos informáticos o su combinación lógica, abstraída de la implementación del hardware y, al mismo tiempo, proporciona un aislamiento lógico entre sí de los procesos informáticos que se ejecutan en el mismo recurso físico.
Un ejemplo del uso de la virtualización es la capacidad de ejecutar múltiples sistemas operativos en una computadora: mientras que cada una de las instancias de dichos sistemas operativos invitados funciona con su propio conjunto de recursos lógicos (procesador, RAM, dispositivos de almacenamiento), cuya provisión desde un grupo común disponible a nivel de hardware es controlado por el sistema operativo host- hipervisor . Las redes de datos , las redes de almacenamiento , la plataforma y el software de aplicación ( emulación ) también se pueden virtualizar .
Para la virtualización de los sistemas operativos se utilizan una serie de enfoques que, según el tipo de implementación, se dividen en software y hardware [3] .
Con la traducción dinámica ( binaria ), los comandos problemáticos del sistema operativo huésped son interceptados por el hipervisor . Una vez que estos comandos se reemplazan por otros seguros, el control vuelve al sistema invitado.
ParavirtualizaciónLa paravirtualización es una técnica de virtualización en la que se preparan sistemas operativos invitados para ejecutarse en un entorno virtualizado, para lo cual se modifica ligeramente su kernel. El sistema operativo interactúa con el programa del hipervisor, que le proporciona una API invitada , en lugar de utilizar directamente recursos como la tabla de páginas de memoria.
El método de paravirtualización permite lograr un mayor rendimiento que el método de traducción dinámica.
El método de paravirtualización es aplicable solo si los sistemas operativos invitados tienen códigos fuente abiertos que pueden modificarse según la licencia, o el hipervisor y el sistema operativo invitado son desarrollados por el mismo fabricante, teniendo en cuenta la posibilidad de paravirtualización del sistema invitado ( aunque siempre que debajo del hipervisor pueda haber un hipervisor de nivel inferior en ejecución, entonces la paravirtualización del propio hipervisor).
El término apareció por primera vez en el proyecto Denali .
Virtualización integradaventajas:
Implementaciones:
ventajas:
Tecnología:
Plataformas que utilizan virtualización de hardware:
La virtualización de contenedores (virtualización a nivel del sistema operativo) le permite ejecutar sistemas virtuales aislados en un solo host físico, pero no le permite ejecutar sistemas operativos con kernels que son diferentes del tipo de kernel del sistema operativo subyacente. Con este enfoque, no hay una capa de hipervisor separada, sino que el propio sistema operativo host es responsable de compartir los recursos de hardware entre varios sistemas invitados (contenedores) y garantiza su independencia. Algunas implementaciones son FreeBSD Jail (2000), Virtuozzo Containers (2000), Solaris Containers (2005), Linux-VServer , OpenVZ (2005), LXC (2008), iCore Virtual Accounts (2008), Docker (2013).
Una máquina virtual es un entorno que se presenta al sistema operativo "invitado" como hardware. Sin embargo, en realidad es un entorno de software emulado por el software del sistema host. Esta emulación debe ser lo suficientemente robusta para permitir que los controladores invitados funcionen de manera estable. Cuando se utiliza la paravirtualización, la máquina virtual no emula el hardware, sino que ofrece el uso de una API especial .
Ejemplos de aplicación:
La virtualización de recursos (o uso compartido de recursos , ing. partición ) se puede representar como la división de un nodo físico en varias partes, cada una de las cuales es visible para el propietario como un servidor separado. No es una tecnología de máquina virtual, se implementa a nivel del kernel del sistema operativo.
En los sistemas con un hipervisor de tipo 2 , tanto el sistema operativo invitado como el del hipervisor consumen recursos físicos y requieren licencias por separado. Los servidores virtuales que funcionan en el nivel del kernel del sistema operativo casi nunca pierden velocidad, lo que hace posible ejecutar cientos de servidores virtuales en un servidor físico que no requieren licencias adicionales.
El espacio en disco o el ancho de banda de la red se divide en una serie de componentes más pequeños y, por lo tanto, es más fácil usar recursos del mismo tipo.
Por ejemplo, la implementación del uso compartido de recursos se puede atribuir a OpenSolaris Network Virtualization and Resource Control (Project Crossbow), que le permite crear varias interfaces de red virtuales basadas en una física.
La agregación, distribución o adición de muchos recursos en grandes recursos, o agrupación de recursos. Por ejemplo, los sistemas multiprocesador simétrico combinan varios procesadores; Los administradores de discos y RAID combinan muchos discos en un disco lógico grande; RAID y redes utilizan múltiples canales agrupados para aparecer como un solo canal de banda ancha. En el nivel meta, los clústeres de computadoras hacen todo lo anterior. A veces, esto también incluye sistemas de archivos de red extraídos de los almacenes de datos en los que se construyen, por ejemplo, Vmware VMFS , Solaris / OpenSolaris ZFS , NetApp WAFL .
La virtualización de aplicaciones es el proceso de usar una aplicación que ha pasado de requerir instalación en el sistema operativo a no requerir instalación (solo se requiere para ejecutar). Para la virtualización de aplicaciones, el software del virtualizador determina cuándo se instala la aplicación que se está virtualizando, qué componentes del sistema operativo son necesarios y los emula. Así, se crea el entorno especializado necesario para esta aplicación virtualizada en particular y, por lo tanto, se asegura el aislamiento de la operación de esta aplicación. Para crear una aplicación virtual, lo virtualizado se coloca en un contenedor , generalmente diseñado como una carpeta. Cuando se lanza una aplicación virtual, se lanza la aplicación que se está virtualizando y el contenedor que es su entorno de trabajo. El tiempo de ejecución se inicia y expone los recursos locales creados previamente, que incluyen las claves de registro, los archivos y otros componentes necesarios para iniciar y ejecutar la aplicación. Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, evitando así conflictos entre aplicaciones. La virtualización de aplicaciones la proporcionan, por ejemplo, los programas Citrix XenApp [6] , SoftGrid [7] y VMware ThinApp .
ventajas: