7.4. オペレーティングシステムの問題のトラブルシューティング
OpenShift Container Platform は RHCOS で実行されます。以下の手順に従って、オペレーティングシステムに関連する問題のトラブルシューティングを行うことができます。
7.4.1. カーネルクラッシュの調査 リンクのコピーリンクがクリップボードにコピーされました!
kexec-tools に含まれる kdump サービスは、クラッシュダンプのメカニズムを提供します。このサービスを使用して、後の分析用にシステムのメモリーの内容を保存できます。
kdump サービスはテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
/ モジュールは、以下のアセンブリーに含まれています。
7.4.1.1. kdump の有効化 リンクのコピーリンクがクリップボードにコピーされました!
RHCOS には kexec-tools パッケージが同梱されていますが、kdump サービスを有効にするには手動で設定する必要があります。
手順
RHCOS で kdump を有効にするには、以下の手順を実行します。
初回のカーネルの起動時にクラッシュカーネルのメモリーを確保するには、以下のコマンドを入力してカーネル引数を指定します。
# rpm-ostree kargs --append='crashkernel=256M'オプション: デフォルトのローカルの
/var/crashの場所ではなく、ネットワーク経由または他の場所にクラッシュダンプを書き込むには、/etc/kdump.conf設定ファイルを編集します。注記LUKS を使用する場合は、ネットワークダンプが必要です。
kdumpは、LUKS で暗号化されたデバイスのローカルクラッシュダンプをサポートしません。kdumpサービスの設定についての詳細は、/etc/sysconfig/kdump、/etc/kdump.conf、およびkdump.confmanual ページのコメントを参照してください。ダンプターゲットの設定についての詳細は、RHELkdumpのドキュメント を参照してください。kdumpsystemd サービスを有効にします。# systemctl enable kdump.serviceシステムをリブートします。
# systemctl reboot-
kdump.serviceが正常に起動および終了し、cat /sys/kernel/kexec_crash_loadedが1を出力することを確認して、kdumpがクラッシュカーネルを読み込んでいることを確認します。
7.4.1.2. Day-1 の kdump の有効化 リンクのコピーリンクがクリップボードにコピーされました!
kdump サービスは、カーネルの問題をデバッグするために、ノードごとに有効にすることが意図されています。kdump を有効にすることに関するコストがあり、これらのコストは kdump が有効にされたノードを追加するたびに増えるため、kdump を必要な場合にのみ各ノードで有効にすことが推奨されます。各ノードで kdump を有効にすることに関するコストには、以下が含まれます。
- クラッシュカーネル用にメモリーが予約されているため、利用可能な RAM が少ない。
- カーネルがコアをダンプしている間にノードが利用できなくなる。
- 追加のストレージ容量がクラッシュダンプを保存するために使用される。
-
kdumpサービスは テクノロジープレビュー であるため、実稼働環境には対応していません。
kdump サービスを有効にすることに伴う不利な点やトレードオフを把握している場合には、クラスター全体で kdump を有効にすることができます。マシン固有のマシン設定はまだサポートされていませんが、Day 1 の MachineConfig オブジェクトの systemd ユニットを使用して直前の手順を実行し、クラスターのすべてのノードで kdump を有効にできます。MachineConfig オブジェクトを作成し、そのオブジェクトをクラスターのセットアップ時に Ignition が使用するマニフェストファイルのセットに挿入することができます。Ignition 設定の使用方法についての詳細は、インストール
手順
クラスター全体の設定の MachineConfig オブジェクトを作成します。
オプション:
/etc/kdump.conf設定をデフォルトから変更した場合は、それを base64 形式にエンコードして、そのコンテンツをMachineConfigオブジェクトに含めることができます。$ cat << EOF | base64 path /var/crash core_collector makedumpfile -l --message-level 7 -d 31 EOFオプション: 設定をデフォルトから変更した場合は、
/etc/sysconfig/kdumpファイルのコンテンツを作成し、base64 としてエンコードします。$ cat << EOF | base64 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" EOFMachineConfigオブジェクトファイルを作成します。$ cat << EOF > ./99-master-kdump-configuration.yaml apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master1 name: 99-master-kdump-configuration spec: kernelArguments: - 'crashkernel=256M'2 config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,ICAgIHBhdGggL3Zhci9jcmFzaAogICAgY2...3 mode: 420 overwrite: true path: /etc/kdump.conf - contents: source: data:text/plain;charset=utf-8;base64,S0RVTVBfQ09NTUFORExJTkVfUkVNT1ZFPS...4 mode: 420 overwrite: true path: /etc/sysconfig/kdump systemd: units: - enabled: true name: kdump.service EOFクラスターの設定時に YAML ファイルをマニフェストに配置します。YAML ファイルを使用してクラスターの設定後にこの
MachineConfigオブジェクトを作成することもできます。$ oc create -f ./99-master-kdump-configuration.yaml
7.4.1.3. kdump 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
kdump については、RHEL ドキュメントの kdump 設定のテスト セクションを参照してください。
7.4.1.4. コアダンプの分析 リンクのコピーリンクがクリップボードにコピーされました!
kdump については、RHEL ドキュメントの コアダンプの分析 セクションを参照してください。
別の RHEL システムで vmcore 分析を実行することが推奨されます。
関連情報
- RHEL での kdump の設定
- kdump についての Linux カーネルドキュメント
-
kdump.conf(5): 利用可能なオプションの詳細なドキュメントを含む
/etc/kdump.conf設定ファイルの man ページ -
kexec(8):
kexecの man ページ -
kexecおよびkdumpに関する Red Hat ナレッジアーティクル