4장. 커널 기능
이 장에서는 많은 사용자 공간 툴을 활성화하는 커널 기능의 목적 및 사용에 대해 설명하고 해당 툴을 추가로 조사하기 위한 리소스를 포함합니다.
4.1. 제어 그룹
4.1.1. 컨트롤 그룹이란 무엇입니까?
Control Group Namespaces는 Red Hat Enterprise Linux 7.5에서 기술 프리뷰입니다.
Linux 제어 그룹(cgroups)은 시스템 하드웨어 사용에 대한 제한을 활성화하여 cgroup 내에서 실행되는 개별 프로세스가 cgroup 구성에 허용된 만큼만 사용하도록 합니다.
제어 그룹은 네임스페이스 에서 활성화한 리소스에서 사용 볼륨을 제한합니다. 예를 들어 네트워크 네임스페이스를 사용하면 프로세스에서 특정 네트워크 카드에 액세스할 수 있으며 cgroup은 프로세스가 해당 카드의 사용을 50% 이상 초과하지 않도록 하여 다른 프로세스에서 대역폭을 사용할 수 있도록 합니다.
Control Group 네임스페이스는 /proc/self/ns/cgroup 인터페이스를 통해 개별 cgroup의 가상화된 보기를 제공합니다.
목적은 글로벌 네임스페이스에서 cgroup으로 권한 있는 데이터가 유출되지 않도록 하고 컨테이너 마이그레이션과 같은 다른 기능을 활성화하는 것입니다.
이제 컨테이너를 단일 cgroup과 연결하는 것이 훨씬 더 쉬워졌기 때문에 컨테이너에 훨씬 더 일관된 cgroup 보기가 있으므로 컨테이너 내에 작업이 속해 있는 cgroup의 가상화된 보기를 사용할 수 있습니다.
4.1.2. 네임스페이스란 무엇인가?
네임스페이스는 분리된 시스템 리소스를 가상으로 볼 수 있는 커널 기능입니다. 시스템 리소스에서 프로세스를 격리하면 프로세스가 상호 작용할 수 있는 항목을 지정하고 제어할 수 있습니다. 네임스페이스는 컨트롤 그룹의 필수 요소입니다.
4.1.3. 지원되는 네임스페이스
Red Hat Enterprise Linux 7.5 이상에서 지원되는 네임스페이스는 다음과 같습니다.
mount
- 마운트 네임스페이스는 파일 시스템 마운트 지점을 격리하여 각 프로세스에서 Wich 내에 고유한 파일 시스템 공간을 가질 수 있도록 합니다.
UTS
- 호스트 이름 및 NIS 도메인 이름
IPC
- System V IPC, POSIX 메시지 대기열
PID
- 프로세스 ID
네트워크
- 네트워크 장치, 스택, 포트 등.
사용자
- 사용자 및 그룹 ID
제어 그룹
- cgroup 분리
제어 그룹 사용에 대한 자세한 내용은 리소스 관리 가이드에설명되어 있습니다.