CGroup Namespace
Informazioni di base
Un namespace CGroup è una funzionalità del kernel Linux che fornisce isolamento delle gerarchie CGroup per i processi in esecuzione all'interno di un namespace. I CGroup, abbreviazione di control groups, sono una funzionalità del kernel che consente di organizzare i processi in gruppi gerarchici per gestire e imporre limiti sulle risorse di sistema come CPU, memoria e I/O.
Sebbene i namespace CGroup non siano un tipo di namespace separato come quelli discussi in precedenza (PID, mount, network, ecc.), sono correlati al concetto di isolamento dei namespace. I namespace CGroup virtualizzano la vista della gerarchia CGroup, in modo che i processi in esecuzione all'interno di un namespace CGroup abbiano una vista diversa della gerarchia rispetto ai processi in esecuzione nell'host o in altri namespace.
Come funziona:
Quando viene creato un nuovo namespace CGroup, parte con una vista della gerarchia CGroup basata sul CGroup del processo creatore. Ciò significa che i processi in esecuzione nel nuovo namespace CGroup vedranno solo una parte della gerarchia CGroup completa, limitata al sottoalbero CGroup radicato nel CGroup del processo creatore.
I processi all'interno di un namespace CGroup vedranno il proprio CGroup come la radice della gerarchia. Ciò significa che, dal punto di vista dei processi all'interno del namespace, il proprio CGroup appare come la radice e non possono vedere o accedere ai CGroup al di fuori del proprio sottoalbero.
I namespace CGroup non forniscono direttamente l'isolamento delle risorse; forniscono solo l'isolamento della vista della gerarchia CGroup. Il controllo e l'isolamento delle risorse sono comunque applicati dai sottosistemi CGroup (ad esempio, cpu, memoria, ecc.) stessi.
Per ulteriori informazioni sui CGroup, consulta:
pageCGroupsLaboratorio:
Creare diversi Namespaces
CLI
Montando una nuova istanza del filesystem /proc
utilizzando il parametro --mount-proc
, si garantisce che il nuovo namespace di montaggio abbia una visione accurata e isolata delle informazioni specifiche dei processi in quel namespace.
Docker
Verifica in quale namespace si trova il tuo processo
To check which namespace your process is in, you can use the following command:
Per verificare in quale namespace si trova il tuo processo, puoi utilizzare il seguente comando:
This command will display the control groups associated with your process, including the cgroup namespace.
Questo comando visualizzerà i gruppi di controllo associati al tuo processo, inclusa il namespace cgroup.
Trova tutti i namespace CGroup
```bash nsenter -C TARGET_PID --pid /bin/bash ``` Inoltre, puoi **entrare in un altro namespace di processo solo se sei root**. E **non puoi** **entrare** in un altro namespace senza un descrittore che punti ad esso (come `/proc/self/ns/cgroup`).
Riferimenti
Last updated