sábado, 3 de mayo de 2014

LinuxContainers: Virtualización a nivel de sistema operativo

Linux Containers es una interfaz perteneciente al userspace que hace uso de la característica de contención del kernel Linux. A través de un poderoso API y herramientas simples, nos permite crear y administrar los contenedores del sistema o de aplicación. Podemos verlo también como un método de virtualización a nivel de sistema operativo para la ejecución de servidores aislados (de ahí el término contenedor) dentro de nuestro propio host.

Linux Containers no puede ser visto como una máquina virtual en sí mismo, pero proporciona un entorno virtual que tiene su propio proceso y espacio de red, combinando cgroups y namespaces del kernel Linux. Es muy similar a chroot, pero con muchas otras características para lograr el aislamiento.

Es probable que conozcas mejor algunas de sus implementaciones como OpenVZ, Docker, LXC o Virtuozzo de Parallels. Todos estos son mecanismos que trabajan sobre Linux Containers.

Un subtema muy importante dentro de los Linux Containers lo es la seguridad. Por eso las versiones recientes se ejecutan con un usuario regular usando Containers sin privilegios, y aún en caso de que sea privilegiado, tendrá suficiente aislamiento, si lo configuramos correctamente.

Además la versión 1.0 de Linux Containers usa también otras características del kernel para contener los procesos, como: Perfiles de Apparmor y SELinux, políticas de Seccomp, Chroots (usando pivot_root), kernel capabilities.

Muchos consideran los Linux Containers como algo en el medio de "chroot con esteroides" y una máquina vrtual completa. La meta de los Containers es crear un entorno lo más cercano posible a una instalación estándar de Linux pero sin la necesidad de un kernel independiente para ello.

Luego veremos cómo usar alguna de sus implementaciones, como Docker, para crear servidores aislados.

Más recursos:
https://linuxcontainers.org/
https://wiki.archlinux.org/index.php/Linux_Containers
http://en.wikipedia.org/wiki/Operating_system-level_virtualization
http://en.wikipedia.org/wiki/Cgroups
http://en.wikipedia.org/wiki/Namespace_isolation#NAMESPACE-ISOLATION



Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario