第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
  • ループバックインターフェイスを使用してネットワーク経由で送信する最大パケットサイズ
  • 同時に開くことができるファイル数の制限

前提条件

手順

  1. 次の内容を含む 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 ファイルを参照してください。

  1. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  2. 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/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.