7.4. オペレーティングシステムの問題のトラブルシューティング
OpenShift Container Platform は RHCOS で実行されます。以下の手順に従って、オペレーティングシステムに関連する問題のトラブルシューティングを行うことができます。
7.4.1. カーネルクラッシュの調査
					kexec-tools パッケージに含まれる kdump サービスは、クラッシュダンプメカニズムを提供します。このサービスを使用して、後で分析するためにシステムのメモリーの内容を保存できます。
				
					x86_64 アーキテクチャーは一般提供 (GA) ステータスの kdump をサポートしますが、他のアーキテクチャーはテクノロジープレビュー (TP) ステータスの kdump をサポートします。
				
次の表は、さまざまなアーキテクチャーの kdump のサポートレベルに関する詳細を示しています。
| アーキテクチャー | サポートレベル | 
|---|---|
| 
									 | GA | 
| 
									 | TP | 
| 
									 | TP | 
| 
									 | TP | 
表の中の、最初の 3 つのアーキテクチャーに対する 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' - # rpm-ostree kargs --append='crashkernel=256M'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- ppc64leプラットフォームの場合、- crashkernelの推奨値は- crashkernel=2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4Gです。
- オプション: デフォルトのローカルの - /var/crashの場所ではなく、ネットワーク経由または他の場所にクラッシュダンプを書き込むには、- /etc/kdump.conf設定ファイルを編集します。注記- ノードが LUKS 暗号化デバイスを使用している場合、kdump は LUKS 暗号化デバイスへのクラッシュダンプの保存をサポートしていないため、ネットワークダンプを使用する必要があります。 - kdumpサービスの設定の詳細は、- /etc/sysconfig/kdump、- /etc/kdump.conf、および- kdump.confmanual ページのコメントを参照してください。ダンプターゲットの設定に関する詳細は、RHEL kdump documentation も参照してください。重要- プライマリーディスクでマルチパスが有効になっている場合、ダンプターゲットは NFS サーバーまたは SSH サーバーのいずれかである必要があり、 - /etc/kdump.conf設定ファイルからマルチパスモジュールを除外する必要があります。
- kdumpsystemd サービスを有効にします。- systemctl enable kdump.service - # systemctl enable kdump.service- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- システムを再起動します。 - systemctl reboot - # systemctl reboot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								kdump.servicesystemd サービスが正常に開始および終了したこと、およびcat /sys/kernel/kexec_crash_loadedコマンドが値1を出力することを確認して、kdump がクラッシュカーネルをロードしたことを確認します。
7.4.1.2. Day-1 の kdump の有効化
						kdump サービスは、カーネルの問題をデバッグするために、ノードごとに有効にすることが意図されています。kdump の有効化にはコストがかかり、これらのコストは kdump が有効化されたノードを追加するたびに増えるため、kdump サービスを必要な場合にのみ各ノードで有効にすことが推奨されます。各ノードで kdump サービスを有効にする場合の潜在的なコストには、以下が含まれます。
					
- クラッシュカーネル用にメモリーが予約されているため、利用可能な RAM が少ない。
- カーネルがコアをダンプしている間にノードが利用できなくなる。
- 追加のストレージ容量がクラッシュダンプを保存するために使用される。
						kdump サービスを有効にすることに伴う不利な点やトレードオフを把握している場合には、クラスター全体で kdump を有効にすることができます。マシン固有のマシン設定はまだサポートされていませんが、Day 1 のカスタマイズとして MachineConfig オブジェクトで systemd ユニットを使用し、クラスター内のすべてのノードで kdump を有効にすることができます。MachineConfig オブジェクトを作成し、そのオブジェクトをクラスターのセットアップ時に Ignition が使用するマニフェストファイルのセットに挿入することができます。
					
							Ignition 設定の使用方法の詳細は、インストール 
手順
							クラスター全体の設定の MachineConfig オブジェクトを作成します。
						
- kdump を設定および有効にする Butane 設定ファイル - 99-worker-kdump.buを作成します。注記- 設定ファイルで指定する Butane のバージョン は、OpenShift Container Platform のバージョンと同じである必要があり、末尾は常に - 0です。たとえば、4.20.0 などです。Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1 2
- コントロールプレーンノードのMachineConfigオブジェクトの作成時に、両方の場所にあるworkerをmasterに置き換えます。
- 3
- カーネル引数を指定して、クラッシュカーネル用にメモリーを予約します。必要に応じて、他のカーネル引数を追加できます。ppc64leプラットフォームの場合、crashkernelの推奨値はcrashkernel=2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4Gです。
- 4
- /etc/kdump.confの内容をデフォルトから変更する場合は、このセクションを追加し、それに応じて- inlineサブセクションを変更します。
- 5
- /etc/sysconfig/kdumpの内容をデフォルトから変更する場合は、このセクションを追加し、それに応じて- inlineサブセクションを変更します。
- 6
- ppc64leプラットフォームの場合は、- nr_cpus=1を- maxcpus=1に置き換えますが、これはこのプラットフォームではサポートされていません。
 
							ダンプを NFS ターゲットにエクスポートするには、nfs カーネルモジュールを設定ファイルに明示的に追加する必要があります。
						
/etc/kdump.conf ファイルの例
nfs server.example.com:/export/cores core_collector makedumpfile -l --message-level 7 -d 31 extra_modules nfs
nfs server.example.com:/export/cores
core_collector makedumpfile -l --message-level 7 -d 31
extra_modules nfs- Butane を使用して、ノードに配信する設定が含まれる、マシン設定 YAML ファイル ( - 99-worker-kdump.yaml) を生成します。- butane 99-worker-kdump.bu -o 99-worker-kdump.yaml - $ butane 99-worker-kdump.bu -o 99-worker-kdump.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- クラスターのセットアップ中に、YAML ファイルを - <installation_directory>/manifests/ディレクトリーに配置します。YAML ファイルを使用してクラスターの設定後にこの- MachineConfigオブジェクトを作成することもできます。- oc create -f 99-worker-kdump.yaml - $ oc create -f 99-worker-kdump.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
7.4.1.3. kdump 設定のテスト
kdump は、RHEL ドキュメントの Testing the kdump configuration セクションを参照してください。
7.4.1.4. コアダンプの分析
kdump は、RHEL ドキュメントの Analyzing a core dump セクションを参照してください。
別の RHEL システムで vmcore 分析を実行することが推奨されます。
関連情報
- RHEL での kdump の設定
- kdump に関する Linux カーネルドキュメント
- 
								kdump.conf(5): 利用可能なオプションの詳細なドキュメントを含む /etc/kdump.conf設定ファイルの man ページ
- 
								kexec(8) — kexecパッケージの man ページ
- kexec および kdump に関する Red Hat ナレッジの記事
7.4.2. Ignition の失敗のデバッグ
マシンをプロビジョニングできない場合、Ignition は失敗し、RHCOS は緊急シェルで起動します。デバッグ情報を取得するには、次の手順を使用します。
手順
- 次のコマンドを実行して、失敗したサービスユニットを表示します。 - systemctl --failed - $ systemctl --failed- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- オプション: 個々のサービスユニットで次のコマンドを実行して、詳細を確認します。 - journalctl -u <unit>.service - $ journalctl -u <unit>.service- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow