20.19. virsh dump を使ったゲスト仮想マシンのコアのダンプファイルの作成

ゲスト仮想マシンのトラブルシューティングの方法の 1 つ (kdumppvpanic とは別に) は、virsh dump domain corefilepath [--bypass-cache] {--live | --crash | --reset} [--verbose] [--memory-only] [--format=format] コマンドを使用することです。このコマンドは、ゲスト仮想マシンのコアを含むダンプファイルを作成するため、crash ユーティリティー などでこれを分析することができます。
特に、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 オプションを使用する必要があります。
プロセス全体は virsh domjobinfo コマンドで監視でき、virsh domjobabort コマンドでキャンセルできます。

例20.47 virsh でダンプファイルを作成する方法

以下の例では、仮想マシン guest1 のコアのダンプファイルが作成されて core/file/path.file ファイルに保存され、ゲストをリセットします。このコマンドは、ゲスト仮想マシンの動作がおかしくなった場合によく使われます。
virsh dump guest1 core/file/path.file --reset