第4章 カーネル機能
本章では、多くのユーザー空間ツールを有効にするカーネル機能の目的および使用について説明します。また、これらのツールの詳細についてのリソースも紹介します。
4.1. Control groups
4.1.1. コントロールグループの概要
コントロールグループの名前空間は、Red Hat Enterprise Linux 7.5 ではテクノロジープレビューとして提供されています。
Linux コントロールグループ (cgroup) は、システムハードウェアの使用上の制限を有効にし、cgroup 内で実行する個々のプロセスが cgroup の設定で許可された分だけ活用していることを確認します。
コントロールグループ は、名前空間 が有効にしたリソースの使用量を制限します。たとえば、ネットワーク名前空間により、あるプロセスの特定のネットワークカードへのアクセスが可能となり、cgroup はこのプロセスのカードの使用量が 50% を超えないように確認し、他のプロセスが帯域幅を確実に利用できるようにします。
コントロールグループの名前空間は、/proc/self/ns/cgroup インターフェイスを経由して個々の cgroup の仮想化ビューを提供します。
目的は、グローバルな名前空間から cgroup への特権付きデータの漏えいを回避し、コンテナーマイグレーションなどの他の機能を有効にすることです。
現在、コンテナーを単一の cgroup と関連付けることが格段に容易となっていることから、コンテナーにはより一貫した cgroup のビューがあります。また、コンテナー内部のタスクを有効にし、属している cgroup の仮想化ビューが可能となります。
4.1.2. 名前空間の概要
名前空間は、分離したシステムリソースの仮想化ビューを可能にするカーネル機能です。システムリソースからプロセスを分離することで、プロセスが対話できるものを指定および制御できます。名前空間は、コントロールグループにとって不可欠なものです。
4.1.3. サポートしている名前空間
以下の名前空間は、Red Hat Enterprise Linux 7.5 以降でサポートされています。
Mount
- マウント名前空間は、ファイルシステムのマウントポイントを分離します。これにより各プロセスは明確なファイルシステム領域を持つことができ、その領域内で操作します。
UTS
- ホスト名および NIS ドメイン名
IPC
- System V IPC、POSIX メッセージキュー
PID
- プロセス ID
Network
- ネットワークデバイス、スタック、ポートなど。
User
- ユーザーおよびグループ ID
コントロールグループ
- cgroup の分離
コントロールグループの使用方法は、リソース管理ガイド で説明しています。