7.3.5.2. Day-1 の kdump の有効化

kdump サービスは、カーネルの問題をデバッグするために、ノードごとに有効にすることが意図されています。kdump を有効にすることに関するコストがあり、これらのコストは kdump が有効にされたノードを追加するたびに増えるため、kdump を必要な場合にのみ各ノードで有効にすことが推奨されます。各ノードで kdump を有効にすることに関するコストには、以下が含まれます。

  • クラッシュカーネル用にメモリーが予約されているため、利用可能な RAM が少ない。
  • カーネルがコアをダンプしている間にノードが利用できなくなる。
  • 追加のストレージ容量がクラッシュダンプを保存するために使用される。
  • kdump サービスは テクノロジープレビューであるため、実稼働環境には対応していません。

kdump サービスを有効にすることに伴う不利な点やトレードオフを把握している場合には、クラスター全体で kdump を有効にすることができます。マシン固有のマシン設定はまだサポートされていませんが、Day 1 の MachineConfig オブジェクトの systemd ユニットを使用して直前の手順を実行し、クラスターのすべてのノードで kdump を有効にできます。MachineConfig オブジェクトを作成し、そのオブジェクトをクラスターのセットアップ時に Ignition が使用するマニフェストファイルのセットに挿入することができます。Ignition 設定の使用方法についての詳細は、インストール → インストール設定 セクションの「ノードのカスタマイズ」を参照してください。

手順

クラスター全体の設定の MachineConfig オブジェクトを作成します。

  1. kdump を設定および有効にする Butane 設定ファイル 99-99-worker-kdump.bu を作成します。

    variant: openshift
    version: 4.8.0
    metadata:
      name: 99-worker-kdump 1
      labels:
        machineconfiguration.openshift.io/role: worker 2
    openshift:
      kernel_arguments: 3
        - crashkernel=256M
    storage:
      files:
        - path: /etc/kdump.conf 4
          mode: 0644
          overwrite: true
          contents:
            inline: |
              path /var/crash
              core_collector makedumpfile -l --message-level 7 -d 31
    
        - path: /etc/sysconfig/kdump 5
          mode: 0644
          overwrite: true
          contents:
            inline: |
              KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
              KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr novmcoredd hest_disable"
              KEXEC_ARGS="-s"
              KDUMP_IMG="vmlinuz"
    
    systemd:
      units:
        - name: kdump.service
          enabled: true
    1 2
    コントロールプレーンノードの MachineConfig オブジェクトの作成時に、両方の場所にある workermaster に置き換えます。
    3
    カーネル引数を指定して、クラッシュカーネル用にメモリーを予約します。必要に応じて、他のカーネル引数を追加できます。
    4
    デフォルトから /etc/kdump.conf の内容を変更する場合は、このセクションを追加し、インライン のサブセクションを変更します。
    5
    /etc/sysconfig/kdump の内容をデフォルトから変更する場合は、このセクションを追加し、随時、インライン のサブセクションを変更します。
  2. Butane を使用して、ノードに配信する設定が含まれる、マシン設定 YAML ファイル (99-worker-kdump.yaml) を生成します。

    $ butane 99-worker-kdump.bu -o 99-worker-kdump.yaml
  3. クラスターの設定時に YAML ファイルをマニフェストに配置します。YAML ファイルを使用してクラスターの設定後にこの MachineConfig オブジェクトを作成することもできます。

     $ oc create -f ./99-worker-kdump.yaml