第14章 RHEL システムロールを使用したカーネルパラメーターの永続的な設定
kernel_settings
RHEL システムロールを使用すると、複数のクライアントにカーネルパラメーターを一度に設定できます。この解決策は以下のとおりです。
- 効率的な入力設定を持つ使いやすいインターフェイスを提供します。
- すべてのカーネルパラメーターを 1 か所で保持します。
コントロールマシンから kernel_settings
ロールを実行すると、カーネルパラメーターはすぐに管理システムに適用され、再起動後も維持されます。
RHEL チャネルで提供される RHEL システムロールは、デフォルトの AppStream リポジトリー内の RPM パッケージとして RHEL のお客様に提供されることに注意してください。また、RHEL システムロールは、Ansible Automation Hub を介して Ansible サブスクリプションをご利用のお客様に、コレクションとして提供されます。
14.1. kernel_settings
RHEL システムロールを使用して選択したカーネルパラメーターの適用
kernel_settings
RHEL システムロールを使用すると、複数の管理対象オペレーティングシステムにわたってさまざまなカーネルパラメーターをリモートで設定し、永続的に有効にできます。たとえば、以下を設定できます。
- 小さなページを管理するオーバーヘッドを削減し、パフォーマンスを向上するための Transparent huge page
- ループバックインターフェイスを使用してネットワーク経由で送信する最大パケットサイズ
- 同時に開くことができるファイル数の制限
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Configuring kernel settings hosts: managed-node-01.example.com tasks: - name: Configure hugepages, packet size for loopback device, and limits on simultaneously open files. ansible.builtin.include_role: name: rhel-system-roles.kernel_settings vars: kernel_settings_sysctl: - name: fs.file-max value: 400000 - name: kernel.threads-max value: 65536 kernel_settings_sysfs: - name: /sys/class/net/lo/mtu value: 65000 kernel_settings_transparent_hugepages: madvise kernel_settings_reboot_ok: true
サンプル Playbook で指定されている設定は次のとおりです。
kernel_settings_sysfs: <list_of_sysctl_settings>
-
sysctl
設定とこの設定に割り当てる値の YAML リスト。 kernel_settings_transparent_hugepages: <value>
-
メモリーサブシステムの Transparent Huge Pages (THP) 設定を制御します。THP のサポートを無効にするか (
never
)、サポートをシステム全体で有効にするか (always
)、またはMAD_HUGEPAGE
リージョン内で有効にする (madvise
) ことができます。 kernel_settings_reboot_ok: <true|false>
-
デフォルトは
false
です。true
に設定すると、要求された変更を有効にするために管理対象ホストの再起動が必要かどうかをシステムロールが判断し、ホストを再起動します。false
に設定すると、再起動が必要であることを示すtrue
値を持つ変数kernel_settings_reboot_required
がロールによって返されます。この場合、ユーザーが管理対象ノードを手動で再起動する必要があります。
Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.kdump/README.md
ファイルを参照してください。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
影響を受けるカーネルパラメーターを確認します。
# ansible managed-node-01.example.com -m command -a 'sysctl fs.file-max kernel.threads-max net.ipv6.conf.lo.mtu' # ansible managed-node-01.example.com -m command -a 'cat /sys/kernel/mm/transparent_hugepage/enabled'
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.kernel_settings/README.md
ファイル -
/usr/share/doc/rhel-system-roles/kernel_settings/
ディレクトリー