Sunteți pe pagina 1din 4

Paravirtualización

La paravirtualización es un sistema virtualizador mediante el cual, las instrucciones de la


MV (Máquina Virtual) se ejecutan directamente en el procesador físico, puesto que
emplea sistemas operativos modificados para ello.Es una variante de la virtualización
completa en la que el Hypervisor accede al sistema operativo directamente. Es decir, la
máquina virtual envía las instrucciones al procesador directamente, sin necesidad de ser
traducidas. Así pues, la gestión del código máquina se realiza de una forma
considerablemente más eficiente, al ejecutarse directamente, razón por la que el proceso
de comunicación entre el hardware nativo y el sistema operativo de la MV es más
eficiente que en el caso de la virtualización completa.
La maquina virtual no necesariamente simula un hardware, sino que ofrece un API
especial que solo puede utilizarse en un sistema operativo invitado modificado.
• Las llamadas del sistema operativo invitado al hypervisor se denominan hypercalls.
• Ejemplos: Xen en CPU estándar.
El kernel del sistema operativo anfitrión es sustituido por el hipervisor, quien pasa a ser
una parte del kernel que se ejecuta en modo privilegiado.
• Sobre este hipervisor se instala un kernel convencional adaptado para trabajar junto
con el hipervisor (en el caso de Linux, a partir de la versión 3 del kernel éste ya está
preparado para trabajar en entornos virtualizados y no virtualizados).
• Ejemplo (detalle de una entrada de GRUB para virtualización basada en Xen):
title Xen 4.1.2
root (hd0,4)
kernel /xen.gz
module /vmlinuz3.1.91.fc16.i686.PAE ro ...
module /initramfs3.1.91.fc16.i686.PAE.img
El kernel de los sistemas huéspedes también
tiene que ser modificado, para sustituir la
ejecución de instrucciones en modo
privilegiado (que en virtualización total
deben ser traducidas para que las entienda el
anfitrión) por llamadas directas al hipervisor
(“hypercalls”).
Containers
Containerization -- also called container-based virtualization and
application containerization -- is an OS-level virtualization method for
deploying and running distributed applications without launching an
entire VM for each application. Instead, multiple isolated systems,
called containers, are run on a single control host and access a single
kernel.
La contenedorización (también denominada virtualización basada en
contenedor y contenedorización de aplicaciones) es un método de
virtualización de nivel de sistema operativo para implementar y
ejecutar aplicaciones distribuidas sin iniciar una VMcompleta para
cada aplicación. En cambio, varios sistemas aislados, denominados
contenedores, se ejecutan en un solo host de control y acceden a un
kernel único.
……………………………………………
Uses
Operating-system-level virtualization is commonly used in virtual hosting environments,
where it is useful for securely allocating finite hardware resources among a large number of
mutually-distrusting users. System administrators may also use it for consolidating server
hardware by moving services on separate hosts into containers on the one server.
Other typical scenarios include separating several programs to separate containers for
improved security, hardware independence, and added resource management features.
The improved security provided by the use of a chroot mechanism, however, is nowhere
near ironclad.[2] Operating-system-level virtualization implementations capable of live
migrationcan also be used for dynamic load balancing of containers between nodes in a
cluster.
La virtualización a nivel de sistema operativo se usa comúnmente en entornos de
alojamiento virtual , donde es útil para asignar de forma segura recursos de hardware
finitos entre una gran cantidad de usuarios que desconfían mutuamente. Los
administradores del sistema también pueden usarlo para consolidar el hardware del
servidor moviendo los servicios en hosts separados a contenedores en un servidor.
Otros escenarios típicos incluyen la separación de varios programas en contenedores
separados para una mayor seguridad, independencia del hardware y funciones adicionales
de administración de recursos. La seguridad mejorada proporcionada por el uso de un
mecanismo chroot, sin embargo, no está cerca de acorazarse. [2] Las implementaciones de
virtualización de nivel de sistema operativo con capacidad de migración en vivo también se
pueden usar para el equilibrio dinámico de carga de contenedores entre nodos en un
clúster.
……………………………………………………………………………

Storage
Some operating-system-level virtualization implementations provide file-level copy-on-
write (CoW) mechanisms. (Most commonly, a standard file system is shared between
partitions, and those partitions that change the files automatically create their own copies.)
This is easier to back up, more space-efficient and simpler to cache than the block-level
copy-on-write schemes common on whole-system virtualizers. Whole-system virtualizers,
however, can work with non-native file systems and create and roll back snapshots of the
entire system state.
Almacenamiento
Algunas implementaciones de virtualización a nivel de sistema operativo
proporcionan mecanismos de copiado en escritura a nivel de archivo (CoW). (Más
comúnmente, un sistema de archivos estándar se comparte entre las particiones, y las
particiones que cambian los archivos crean automáticamente sus propias copias). Es más
fácil hacer copias de seguridad, más eficiente en el uso del espacio y más sencillo de
almacenar en caché que el copiado a nivel de bloque - esquemas de escritura comunes en
los virtualizadores de todo el sistema. Sin embargo, los virtualizadores de todo el sistema
pueden funcionar con sistemas de archivos no nativos y crear y retrotraer instantáneas de
todo el estado del sistema.

…………………………………..

software layer on top of an underlying system in order to provide abstractions of multiple


virtual resources. In general, the virtualized resources are called virtual machines (VM) and can
be seen as isolated execution contexts. There are a variety of virtualization techniques. Today,
one of the most popular is the hypervisor-based virtualization, which has Xen, VMware and
KVM as its main representatives. The hypervisor-based virtualization, in its most common form
(hosted virtualization), consists of a virtual machine monitor (VMM) on top of a host OS that
provides a full abstraction of VM. In this case, each VM has its own operating system that
executes completely isolated from the others. This allows, for instance, the execution of
multiple different operating systems on a single host. A lightweight alternative to the
hypervisors is the container-based virtualization, also known as Operating System Level
virtualization. This kind of virtualization partitions the physical machines resources, creating
multiple isolated user-space instances. Figure 1 shows the difference between container-based
and hypervisor-based virtualization. As can be seem, while hypervisor-based virtualization
provides abstraction for full guest OS’s (one per virtual machine), container-based
virtualization works at the operation system level, providing abstractions directly for the guest
processes. In practice, hypervisors work at the hardware abstraction level and containers at
the system call/ABI layer

capa de software en la parte superior de un sistema subyacente con el fin de


proporcionar abstracciones de múltiples recursos virtuales. En general, los recursos
virtualizados se llaman máquinas virtuales (VM) y pueden verse como contextos de
ejecución aislados. Existen una variedad de técnicas de virtualización. Hoy, uno de los
el más popular es la virtualización basada en hipervisor, que tiene a Xen, VMware y
KVM como sus principales representantes. La virtualización basada en hipervisor, en
su forma más común formulario (virtualización alojada), consta de una máquina virtual
monitor (VMM) en la parte superior de un sistema operativo host que proporciona un
completo abstracción de VM. En este caso, cada máquina virtual tiene su propio
sistema operativo que se ejecuta completamente aislado de la otros. Esto permite, por
ejemplo, la ejecución de múltiples diferentes sistemas operativos en un solo host. Una
alternativa ligera a los hipervisores es la virtualización basada en contenedores,
también conocido como sistema operativo Virtualización de nivel. Este tipo de
particiones de virtualización los recursos de las máquinas físicas, creando múltiples
instancias aisladas de espacio de usuario. La figura 1 muestra la diferencia entre la
virtualización basada en contenedor y la basada en hipervisor. Como puede parecer,
mientras que la virtualización basada en hipervisor proporciona abstracción para
sistemas operativos invitados completos (uno por máquina virtual), la virtualización
basada en contenedores funciona en la operación nivel del sistema, proporcionando
abstracciones directamente para el huésped procesos. En la práctica, los hipervisores
trabajan en el hardware nivel de abstracción y contenedores en la llamada del sistema
/ capa ABI
Since the container-based virtualization works at the operating

system level, all virtual instances share a single

operating system kernel. For this reason, container-based

virtualization is supposed to have a weaker isolation when

compared to hypervisor-based virtualization. However, from

the point of view of the users, each container looks and

executes exactly like a stand-alone OS

Dado que la virtualización basada en contenedores funciona en la operación nivel del


sistema, todas las instancias virtuales comparten una sola kernel del sistema
operativo. Por esta razón, basado en contenedores se supone que la virtualización
tiene un aislamiento más débil cuando en comparación con la virtualización basada en
hipervisor. Sin embargo, desde el punto de vista de los usuarios, cada contenedor se
ve y se ejecuta exactamente como un sistema operativo independiente

S-ar putea să vă placă și