CGroup Namespace
Osnovne informacije
CGroup namespace je funkcionalnost Linux kernela koja pruža izolaciju hijerarhija cgroup-ova za procese koji se izvršavaju unutar namespace-a. Cgroup-ovi, skraćeno za control groups, su funkcionalnost kernela koja omogućava organizovanje procesa u hijerarhijske grupe radi upravljanja i sprovođenja ograničenja na sistemskim resursima kao što su CPU, memorija i I/O.
Iako cgroup namespace-i nisu poseban tip namespace-a kao što su PID, mount, network, itd., oni su povezani sa konceptom izolacije namespace-a. Cgroup namespace-i virtualizuju prikaz hijerarhije cgroup-ova, tako da procesi koji se izvršavaju unutar cgroup namespace-a imaju drugačiji prikaz hijerarhije u odnosu na procese koji se izvršavaju na hostu ili drugim namespace-ima.
Kako funkcioniše:
Kada se kreira novi cgroup namespace, on počinje sa prikazom hijerarhije cgroup-ova zasnovanom na cgroup-u procesa koji ga kreira. To znači da će procesi koji se izvršavaju u novom cgroup namespace-u videti samo podskup celokupne hijerarhije cgroup-ova, ograničen na podstablo cgroup-a koje ima korenski čvor u cgroup-u procesa koji ga kreira.
Procesi unutar cgroup namespace-a će videti svoj sopstveni cgroup kao koren hijerarhije. To znači da, iz perspektive procesa unutar namespace-a, njihov sopstveni cgroup će se prikazivati kao koren, i oni neće moći videti ili pristupiti cgroup-ovima van svog sopstvenog podstabla.
Cgroup namespace-i ne pružaju direktnu izolaciju resursa; oni samo pružaju izolaciju prikaza hijerarhije cgroup-ova. Kontrola i izolacija resursa se i dalje sprovode putem podsistema cgroup-ova (npr. cpu, memorija, itd.) samih.
Za više informacija o CGroup-ovima pogledajte:
pageCGroupsLab:
Kreiranje različitih Namespace-ova
CLI
Montiranjem nove instance /proc
fajl sistema, korišćenjem parametra --mount-proc
, obezbeđujete da nova mount namespace ima tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace.
Docker
Proverite u kojem se namespace-u nalazi vaš proces
Da biste proverili u kojem se namespace-u nalazi vaš proces, možete koristiti sledeću komandu:
Ova komanda će vam prikazati informacije o kontrolnoj grupi (cgroup) kojoj pripada vaš proces. Ako se vaš proces nalazi u cgroup-namespace-u, videćete putanju koja počinje sa /docker/
ili /lxc/
. Na primer, ako vidite /docker/1234567890abcdef
, to znači da se vaš proces nalazi u cgroup-namespace-u.
Ova informacija može biti korisna prilikom istraživanja i testiranja sigurnosti Docker kontejnera i drugih sistema koji koriste namespace-ove.
Pronađite sve CGroup namespace-ove
```bash nsenter -C TARGET_PID --pid /bin/bash ``` Takođe, možete **ući u drugi proces namespace samo ako ste root**. I **ne možete** **ući** u drugi namespace **bez deskriptora** koji na njega pokazuje (poput `/proc/self/ns/cgroup`).
Reference
Last updated