CGroup Namespace
Información Básica
Un cgroup namespace es una característica del núcleo de Linux que proporciona aislamiento de jerarquías de cgroup para procesos que se ejecutan dentro de un namespace. Los cgroups, abreviatura de grupos de control, son una característica del núcleo que permite organizar procesos en grupos jerárquicos para gestionar y hacer cumplir límites en los recursos del sistema como CPU, memoria y E/S.
Aunque los cgroup namespaces no son un tipo de namespace separado como los otros que discutimos anteriormente (PID, mount, network, etc.), están relacionados con el concepto de aislamiento de namespace. Los cgroup namespaces virtualizan la vista de la jerarquía de cgroup, de modo que los procesos que se ejecutan dentro de un cgroup namespace tienen una vista diferente de la jerarquía en comparación con los procesos que se ejecutan en el host o en otros namespaces.
Cómo funciona:
Cuando se crea un nuevo cgroup namespace, comienza con una vista de la jerarquía de cgroup basada en el cgroup del proceso creador. Esto significa que los procesos que se ejecutan en el nuevo cgroup namespace solo verán un subconjunto de toda la jerarquía de cgroup, limitado al subárbol de cgroup enraizado en el cgroup del proceso creador.
Los procesos dentro de un cgroup namespace verán su propio cgroup como la raíz de la jerarquía. Esto significa que, desde la perspectiva de los procesos dentro del namespace, su propio cgroup aparece como la raíz, y no pueden ver ni acceder a cgroups fuera de su propio subárbol.
Los cgroup namespaces no proporcionan directamente aislamiento de recursos; solo proporcionan aislamiento de la vista de la jerarquía de cgroup. El control y aislamiento de recursos aún son aplicados por los subsistemas de cgroup (por ejemplo, cpu, memoria, etc.) mismos.
Para más información sobre CGroups consulta:
CGroupsLaboratorio:
Crear diferentes Namespaces
CLI
Al montar una nueva instancia del sistema de archivos /proc
si usas el parámetro --mount-proc
, aseguras que el nuevo espacio de montaje tenga una vista precisa y aislada de la información del proceso específica de ese espacio de nombres.
Docker
Verifique en qué namespace está su proceso
Encontrar todos los espacios de nombres CGroup
Entrar dentro de un namespace CGroup
También, solo puedes entrar en otro espacio de nombres de proceso si eres root. Y no puedes entrar en otro espacio de nombres sin un descriptor que apunte a él (como /proc/self/ns/cgroup
).
Referencias
Last updated