cgroup은 네임스페이스입니까?
제가 이 질문을 드리는 이유는 일부 블로그에서 cgroup과 네임스페이스가 다르다고 이야기하는 것을 보았기 때문입니다. 그러나 다른 Linux 명령에서 cgroup은 일종의 네임스페이스로 간주됩니다. 예를 들어,
% unshare --help | grep cgroup
-C, --cgroup[=<file>] unshare cgroup namespace
% lsns --help | grep cgroup
-t, --type <name> namespace type (mnt, net, ipc, user, pid, uts, cgroup)
여기서 무슨 일이 일어나고 있는 걸까요?
답변1
가지다다양한 네임스페이스 유형, Cgroup은 그 중 하나입니다.
- 그룹 C
- 산업용 컴퓨터
- 회로망
- 산
- PID
- 시간
- 사용자
- UTS(호스트 이름 및 NIS 도메인 이름)
하지만 cgroup과cgroup 네임스페이스다양한 조작이 가능하며 cgroup 네임스페이스는 cgroup 계층 구조를 가상화합니다. 대부분의 경우 cgroup을 직접 사용하고 cgroup 네임스페이스에 대해서는 신경 쓰지 않습니다.
답변2
Stephen Kitt의 답변이 정확하다는 것을 알았습니다. 하지만 여전히 문제를 해결할 수 없다면 문제를 보는 다음과 같은 방법이 도움이 될 수 있습니다.
익숙한 기능을 갖춘 네임스페이스를 선택하세요. 아마도 그것은 그물 일 것입니다. 그리고 "네트워킹과 네트워크 네임스페이스는 같은 것입니까?"라는 질문을 해보세요. 아니요, 같은 것은 아니지만 둘 사이에는 관계가 있습니다. Linux에서 네트워크는 인터페이스, IP 주소, 라우팅 테이블, 필터링 규칙(예: iptables/nft) 등을 나타낼 수 있습니다. 그런 다음 시스템에 많은 네트워크 네임스페이스를 가질 수 있으며 각 네트워크 네임스페이스 내에 고유한 인터페이스, IP 주소, 라우팅 테이블, 필터링 규칙 세트가 있습니다. 네임스페이스는 특정 Linux 기능(제 경우에는 네트워킹)을 위한 가상 환경을 생성합니다.
cgroup도 마찬가지입니다. Linux에서 cgroup은 CPU, 메모리 등의 리소스를 제한하고 추적하는 방법을 의미합니다. 그러면 시스템에 많은 cgroup 네임스페이스가 있을 수 있으며, 각 그룹 네임스페이스 내에 고유한 제한 사항 및 리소스 추적 세트가 있습니다.