第 4 章 内核特性
本章解释了内核功能的目的和使用,它们启用了许多用户空间工具,还包含用于进一步调查这些工具的资源。
4.1. Control groups
4.1.1. 什么是控制组?
Control Group Namespaces 在 Red Hat Enterprise Linux 7.5 中是一个技术预览功能
Linux 控制组(cgroups)启用对系统硬件使用的限制,确保在 cgroup 内运行的单个进程仅利用 cgroups 配置中允许的最大数量。
控制组限制由命名空间启用的资源的使用量。例如,网络命名空间允许进程访问特定的网卡,cgroup 确保进程不超过该卡的 50% 使用,从而确保带宽可用于其他进程。
控制组命名空间通过 /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
- 系统 V IPC, POSIX 消息队列
PID
- 进程 ID
Network
- 网络设备、堆栈、端口等.
用户
- 用户和组群 ID
控制组群
- 隔离 cgroups