Está en la página 1de 2

Archivo: /home/imrus/contenedores Pgina 1 de 2

Notas de un contenedor.
"Contenedores", son una forma de virtualizacin ligera representada por proyectos como OpenVZ, miestras
que la virualizacin crea una nueva maquina virtual sobre la cual el sistema invitado se ejecuta, la
implementacin de contenedores funciona haciendo muros alrededor de los grupos de procesos. El
resultado es que, miestras que los huespedes virtualizados cada uno dirige su propio kernel (y
pueden ejecutar diferentes sistemas operativos en el anfitrin), los sistemas contenedores se ejecutan en
el kernel del anfitrion. As los contenedores carecen de algo de flexibilidad de la virtualizacin
completa, pero tienden a ser un poco ms eficiente.
A partir del 02/06/23, la virtualizacin est muy bien soportada en Linux, al menos para la arquitectura
x86. Los contenedores se quedan un poco ms atrs, en su lugar. Resulta que, en muchos aspectos, los
contenedores son ms difciles de implementar que la virtualizacines. Una aplicacin contenedor debe
envolver una capa de espacio de nombres en cada recurso global que se encuentra en el kernel, y hay una
gran cantidad de estos recursos: procesos, sistemas de archivos, dispositivos, las reglas del firewall,
incluso la hora del sistema. Encontrar formas para envolver todos estos recursos de una manera que
satisfaga las necesidades de los diversos proyectos de contenedores por ah, y que tambin no irrita los
desarrolladores del kernel que pueden tener ningn inters en contenedores, ha sido un poco un desafo.
Soporte completo del contenedor conseguir un poco ms cerca una vez que se libera el kernel 2.6.24. La
fusin de una serie de parches importantes en este ciclo de desarrollo se llena en algunas piezas
importantes, aunque una cierta cantidad de trabajo que queda por hacer.
rase una vez, haba un conjunto de parches llamados recipientes de proceso. El subsistema de
contenedores permite a un administrador (o daemon administrativo) a los procesos grupales en las
jerarquas de contenedores
cada jerarqua est gestionado por uno o ms "subsistemas" El "contenedores" nombre original fue
considerada como demasiado genrico - el cdigo es una parte importante de una solucin de envase, pero
que est lejos de todo. As que contenedores han sido renombradas "grupos de control" (o "cgroups") y se
fusionaron para 2.6.24
Los grupos de control no necesitan ser utilizados para contenedores; por ejemplo, la funcin de
planificacin de grupos (tambin fusionado para 2.6.24) utiliza grupos de control para establecer los
lmites de horario. Pero tiene sentido para emparejar grupos de control de la gestin de los diferentes
espacios de nombres y la gestin de recursos en general para crear un marco para una implementacin de
contenedores.
La gestin de los grupos de control es sencillo. El administrador del sistema se inicia por el montaje de
un sistema de archivos especial cgroup, asociando los subsistemas de inters con el sistema de archivos
en tiempo de montaje. No puede haber ms de un tal sistema de ficheros montado, siempre que aparece cada
subsistema en a lo sumo un grupo de control. De modo que el administrador puede crear un sistema de
archivos cgroup para gestionar la programacin y una completamente diferente a asociar los procesos con
los espacios de nombres.
Una vez montado el sistema de archivos, grupos especficos se crean al hacer directorios en el sistema de
archivos cgroup. Poner un proceso en un grupo de control es una simple cuestin de escribir su ID de
proceso en las tareas de archivos virtual en el directorio cgroup. Los procesos pueden ser movidos entre
los grupos de control a voluntad.
El concepto de una ID de proceso se ha vuelto ms complicado, sin embargo, ya que tambin se fusion el
cdigo de espacio de nombres PID. Un espacio de nombres PID es una vista de los procesos en el sistema.
En un sistema Linux "normal", no es slo el espacio de nombres global PID, y todos los procesos se puede
encontrar all. En un sistema con espacios de nombres PID, diferentes procesos pueden tener diferentes
puntos de vista de lo que se ejecuta en el sistema. Cuando se crea un nuevo espacio de nombres PID, el
nico proceso visible es la que crea ese espacio de nombres; se hace, en esencia, el proceso init para
ese espacio de nombres. Cualquier descendientes de ese proceso sern visibles en el nuevo espacio de
nombres, pero que nunca ser capaz de ver nada que se ejecuta fuera de ese espacio de nombres.
La virtualizacin de identificadores de proceso de esta manera complica una serie de cosas. Un proceso
que crea un espacio de nombres sigue siendo visible a su padre en el espacio de nombres de edad - y que
no puede tener el mismo ID de proceso en ambos espacios de nombres. As que los procesos pueden tener ms
de un ID, y el mismo ID de proceso pueden ser encontrados en referencia a diferentes procesos en
diferentes espacios de nombres. Por ejemplo, es bastante comn en contenedores implementaciones para que
el proceso init per-espacio de nombres tienen ID 1 en su espacio de nombres.
Lo que todo esto significa es que los identificadores de proceso slo tienen sentido cuando se colocan en
un contexto especfico. Eso, a su vez, tiende una trampa para cualquier cdigo del ncleo que funciona
Archivo: /home/imrus/contenedores Pgina 2 de 2
con los identificadores de proceso; dicho cdigo debe tener cuidado de mantener la asociacin entre un ID
de proceso y el espacio de nombres en el que se define. Para hacer la vida ms fcil (y ms seguro), los
contenedores los desarrolladores han estado trabajando durante algn tiempo para eliminar (en la medida
de lo posible) el uso de identificadores de proceso en el propio kernel. Cdigo del kernel debe utilizar
punteros task_struct (que son siempre inequvoca) para referirse a procesos especficos; un ID de
proceso, en cambio, se ha convertido en una cookie para la comunicacin con el espacio de usuario, y no
mucho ms.
Estas entradas de relieve un problema interesante: las banderas CLONE_ se pasan al kernel como un valor
de 32 bits. Al escribir estas lneas, slo hay dos bits a la izquierda para las nuevas banderas. As que
los desarrolladores de contenedores van a quedarse sin banderas; cmo piensan hacer frente a ese problema
no es claro en este punto.

También podría gustarte