Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

A.2. ダンプファイルの作成

ゲスト仮想マシンのコアのダンプをファイルに要求して、仮想マシン内のエラーを診断できるようにすることができます (例:crash ユーティリティー )。
警告
Red Hat Enterprise Linux 7.5 以降では、Kernel Address Space Randomization(KASLR) 機能を使用すると、ゲストダンプファイルがクラッシュによって読み取れなくなりますこの問題を修正するには、<vmcoreinfo/> 要素をゲストの XML 設定ファイルの <features> セクションに追加します。
ただし、移行 先ホストが <vmcoreinfo/> に対応していない OS を使用している場合は、<vmcoreinfo/> でゲストを移行すると 失敗ます。これには、Red Hat Enterprise Linux 7.4 以前および Red Hat Enterprise Linux 6.9 以前が含まれます。

A.2.1. virsh ダンプファイルの作成

virsh dump コマンドを実行すると、ゲスト仮想マシンのコアをファイルにダンプするリクエストを送信し、仮想マシンのエラーを診断できるようにします。このコマンドを実行するには、corefilepath で指定されたファイルおよびパスで適切なパーミッションを手動で確認する必要がある場合があります。virsh dump コマンドは、コアダンプ(または crash ユーティリティー)と似ています。

A.2.2. Python スクリプトを使用したコアダンプの保存

python スクリプトは、ホストで qemu-kvm プロセスがクラッシュした後に、コアダンプからゲスト仮想マシンのメモリーを抽出および保存する GNU Debugger(GDB)拡張を実装します。ホスト側の QEMU プロセスクラッシュがゲストアクションに関連する場合は、QEMU プロセスクラッシュ時にゲストの状態を調査すると便利です。
python スクリプトは、GDB 拡張を実装します。これは、GDB 用の新しいコマンドです。GDB を使用して元の(crashed)QEMU プロセスのコアダンプファイルを開くと、python スクリプトを GDB に読み込むことができます。その後、GDB プロンプトから新しいコマンドを実行できます。これにより、QEMU コアダンプから新しいローカルファイルにゲストメモリーダンプが抽出されます。
python スクリプト dump-guest-memory.py を使用するには、以下を行います。
  1. qemu-kvm-debuginfo パッケージをシステムにインストールします。
  2. GDB を起動し、クラッシュした /usr/libexec/qemu-kvm バイナリーに保存されているコアダンプファイルを開きます。デバッグシンボルが自動的に読み込まれます。
  3. GDB で新しいコマンドを読み込みます。
    # source /usr/share/qemu-kvm/dump-guest-memory.py
    注記
    python スクリプトの読み込み後、組み込みの GDB help コマンドは、dump-guest-memory 拡張に関する詳細情報を提供できます。
  4. GDB でコマンドを実行します。以下に例を示します。
    # dump-guest-memory /home/user/extracted-vmcore X86_64
  5. ゲストカーネル分析用の crash ユーティリティーを使用して /home/user/extracted-vmcore を開きます。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。