20.19. virsh dump を使用したゲスト仮想マシンのコアのダンプファイルの作成
ゲスト仮想マシン (kdump および pvpanic に加えて) のトラブルシューティングを行う方法の 1 つは、virsh dump domain corefilepath [
--bypass-cache
] {--live | --crash | --reset
} [--verbose
] [--memory-only
] [--format
=format] コマンドを使用することです。これにより、ゲスト仮想マシンのコアを含むダンプファイルが作成され、クラッシュユーティリティーなどで解析できるようになります。
具体的には、virsh dump コマンドを実行すると、ゲスト仮想マシンのコアが、指定したコアファイルパスで指定されたファイルにダンプされます。ハイパーバイザーによっては、この動作に制限を加え、corefilepath パラメーターで指定したファイルおよびパスに対する適切なパーミッションをユーザーが手動で確保することが必要になる場合があります。このコマンドは、SR-IOV デバイスやその他のパススルーデバイスでサポートされます。以下の引数がサポートされており、以下のような効果があります。
--bypass-cache
- 保存したファイルは、ホストファイルシステムキャッシュを迂回しません。ファイルの内容には影響を及ぼしません。このオプションを選択すると、ダンプ操作が遅くなる可能性があることに注意してください。--live
は、ゲスト仮想マシンの実行を継続するためファイルを保存します。ゲスト仮想マシンは一時停止または停止しません。--crash
は、ダンプファイルの保存時にゲスト仮想マシンを一時停止したままにするのではなく、クラッシュした状態にします。ゲスト仮想マシンは "Shut off" としてリスト表示され、理由は "Crashed" になります。--reset
- ダンプファイルが正常に保存されると、ゲスト仮想マシンがリセットされます。--verbose
は、ダンププロセスの進捗を表示します。--memory-only
- このオプションを使用してダンプを実行すると、ダンプファイルが作成されます。このダンプファイルの内容には、ゲスト仮想マシンのメモリーと CPU 共通レジスターファイルのみが含まれます。このオプションは、完全ダンプの実行に失敗する場合に使用する必要があります。これは、ゲスト仮想マシンがライブマイグレーションできない場合 (パススルー PCI デバイスが原因) に発生することがあります。--format=format
オプションを使用すると、メモリーのみのダンプを保存できます。使用できる形式は次のとおりです。elf
- デフォルトの非圧縮形式です。kdump-zlib
- zlib 圧縮した kdump 圧縮形式です。kdump-lzo
- LZO 圧縮による kdump 圧縮形式です。kdump-snappy
- Snappy 圧縮による kdump 圧縮形式です。
重要crash ユーティリティーが、virsh dump コマンドのデフォルトのコアダンプファイル形式に対応しなくなりました。crash を使用して virsh dump が作成したコアダンプファイルを分析する場合は、--memory-only オプションを使用する必要があります。また、Red Hat サポートケースに添付するコアダンプファイルを作成する場合は、--memory-only オプションを使用する必要があります。
virsh domjobinfo コマンドを使用すると、プロセス全体を監視できます。virsh domjobabort コマンドを使用すると、プロセスをキャンセルできます。
例20.47 virsh でダンプファイルを作成する方法
次の例では、guest1 仮想マシンのコアのダンプファイルを作成し、それを
core/file/path.file
ファイルに保存してから、ゲストをリセットします。このコマンドを使用する最も一般的なシナリオは、ゲスト仮想マシンが適切に動作していない場合です。
# virsh dump guest1 core/file/path.file
--memory-only
--reset