第21章 仮想マシンの問題診断
仮想マシン (VM) を使用する際に、複雑さや深刻度の異なるさまざまな問題に直面することがあります。より複雑な問題の場合は、問題の報告や診断のために、仮想マシン関連のデータやログを取得する必要があるかもしれません。
以下のセクションでは、ログの生成および一般的な仮想マシンの問題の診断方法と、このような問題の報告方法を説明します。
21.1. libvirt デバッグログの生成 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の問題を診断するには、libvirt デバッグログを生成して確認することが役立ちます。また仮想マシン関連の問題解決のサポートを受ける場合には、デバッグログを添付すると役立ちます。
21.1.1. libvirt デバッグログについて リンクのコピーリンクがクリップボードにコピーされました!
デバッグログは、仮想マシンランタイム時に発生するイベント関連のデータが含まれるテキストファイルです。ログには、ホストライブラリーや libvirt デーモンなどのサーバー側の基本機能に関する情報が記録されます。ログファイルには、実行中の全仮想マシンの標準エラー出力 (stderr) も含まれます。
デバッグロギングはデフォルトでは有効になっていないため、libvirt の起動時に有効にする必要があります。libvirt のデバッグログは、常時有効にすることも、現在のセッションのみ有効にすることもできます。
その後、収集したログを添付して、仮想マシンの問題に関するサポートを依頼できます。
21.1.2. libvirt デバッグログの永続的な有効化 リンクのコピーリンクがクリップボードにコピーされました!
仮想化ホストがデバッグ情報を自動的にログに記録するようにするには、libvirt の起動時に libvirt のデバッグログが自動的に有効になるように設定してください。
デフォルトでは、virtqemud が RHEL 10 のメインの libvirt デーモンです。libvirt の設定に永続的な変更を加えるには、/etc/libvirt ディレクトリーにある virtqemud.conf ファイルを編集する必要があります。
手順
-
エディターで
virtqemud.confファイルを開きます。 要件に応じてフィルターを置き換えるか、設定します。
Expand 表21.1 フィルター値のデバッグ 1
libvirtによって生成されたすべてのメッセージをログに記録します。2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
ロギングフィルターのデーモン設定例
以下の設定を行います。
-
remote、util.json、およびrpcレイヤーからのすべてのエラーメッセージおよび警告メッセージをログに記録します。 -
eventレイヤーからのエラーメッセージのみをログに記録します。 -
フィルターされたログを
/var/log/libvirt/libvirt.logに保存します。
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"-
- 保存して終了します。
libvirtデーモンを再起動します。$ systemctl restart virtqemud.service
21.1.3. 実行時の libvirt デバッグログの有効化 リンクのコピーリンクがクリップボードにコピーされました!
仮想化のデバッグ情報を一時的に収集するには、libvirt デーモンの実行時設定を変更してデバッグログを有効にし、出力ファイルに保存します。
これは、再起動すると問題が解決してしまうため、または移行やバックアップなどの別のプロセスが同時に実行されているため、libvirt デーモンを再起動できない場合に役立ちます。設定ファイルを編集したり、デーモンを再起動せずにコマンドを試行したりする場合にも、ランタイム設定を変更すると便利です。
前提条件
-
libvirt-adminパッケージがインストールされている。
手順
オプション: アクティブなログフィルターのセットをバックアップします。
# virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backupこれにより、ログを生成した後にアクティブなフィルターセットを復元できるようになります。フィルターを復元しない場合、メッセージは引き続きログに記録され、システムパフォーマンスに影響を与える可能性があります。
virt-adminユーティリティーを使用してデバッグを有効にし、要件に応じてフィルターを設定します。Expand 表21.2 フィルター値のデバッグ 1
libvirt が生成したすべてのメッセージをログに記録します。
2
すべての非デバッグ情報をログに記録します。
3
すべての警告およびエラーメッセージをログに記録します。これはデフォルト値です。
4
エラーメッセージのみをログに記録します。
ロギングフィルターの virt-admin 設定の例
以下のコマンドを実行します。
-
remote、util.json、およびrpcレイヤーからのエラーメッセージおよび警告メッセージをすべてログに記録します。 -
eventレイヤーからのエラーメッセージのみをログに記録します。
# virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"-
virt-adminユーティリティーを使用して、ログを特定のファイルまたはディレクトリーに保存します。たとえば、以下のコマンドはログ出力を
/var/log/libvirt/ディレクトリーのlibvirt.logファイルに保存します。# virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"オプション: フィルターを削除して、仮想マシン関連のすべての情報を含むログファイルを生成することもできます。ただし、このファイルには libvirt のモジュールによって生成された大量の冗長情報が含まれている可能性があるため、推奨されません。
virt-adminユーティリティーを使用して空のフィルターのセットを指定します。# virt-admin -c virtqemud:///system daemon-log-filters Logging filters:
オプション: 以前に作成したバックアップファイルを使用して、フィルターを元の状態に復元します。
# virt-admin -c virtqemud:///system daemon-log-filters "<original-filters>"このコマンドの
<original-filters>は、virt-filters-backupの内容に置き換えます。フィルターを復元しない場合、メッセージは引き続きログに記録されるため、システムのパフォーマンスに影響を与える可能性があることに注意してください。
21.1.4. サポートリクエストへの libvirt デバッグログの添付 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の問題を診断および解決するには、追加のサポートを依頼する必要がある場合があります。サポートチームが仮想マシン関連の問題解決に必要なすべての情報にアクセスできるように、デバッグログをサポートリクエストに添付することを強く推奨します。
手順
- 問題およびサポートを報告するには、サポートケースを作成 してください。
発生した問題に応じて、レポートに以下のログを添付します。
-
libvirtサービスに関する問題の場合は、ホストからの/var/log/libvirt/libvirt.logファイルを添付します。 特定の仮想マシンに関する問題の場合は、該当するログファイルを添付します。
たとえば、仮想マシン testguest1 の場合は、
/var/log/libvirt/qemu/testguest1.logにあるtestguest1.logファイルを添付します。
-