Red Hat Training

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

11.2. libvirt での QEMU ゲストエージェントの使用

QEMU ゲストエージェントをインストールすると、さまざまな libvirt コマンドが強力にできます。ゲストエージェントは、以下の virsh コマンドを強化します。
  • virsh shutdown --mode=agent - このシャットダウン方法は、QEMU ゲストエージェントと使用する virsh shutdown は、クリーンな状態で cooperative ゲストをシャットダウンする保証がないため、virsh shutdown --mode=acpi よりも信頼性が高くなります。エージェントが存在しない場合は、代わりに ACPI シャットダウンイベントの挿入に依存する必要がありますが、ゲストによってはそのイベントを無視してもシャットダウンしません。
    virsh reboot に同じ構文で使用できます。
  • virsh snapshot-create --quiesce - スナップショットを作成する前に、ゲストがその I/O を安定した状態にフラッシュできるようにします。これにより、fsck を実行したり、部分的なデータベーストランザクションを失うことなくスナップショットを使用できます。ゲストエージェントは、ゲストコードの操作を提供することで、ディスクのコンテンツの安定性を高めることができます。
  • virsh domfsfreeze および virsh domfsthaw - 分離でゲストファイルシステムをエスカレートします。
  • virsh domfstrim - ゲストに対して、そのファイルシステムをトリミングするように指示します。
  • virsh domtime - ゲストのクロックをクエリーするか、またはゲストクロックを設定します。
  • virsh setvcpus --guest - ゲストに対して CPU をオフラインにするよう指示します。
  • virsh domifaddr --source agent - ゲストエージェント経由でゲストオペレーティングシステムの IP アドレスをクエリーします。
  • virsh domfsinfo - 実行中のゲスト内のマウントされたファイルシステムの一覧を表示します。
  • virsh set-user-password - ゲスト内のユーザーアカウントのパスワードを設定します。

11.2.1. ゲストディスクバックアップの作成

libvirt qemu-guest-agent と通信して、ゲスト仮想マシンのファイルシステムのスナップショットが内部に一貫性を持って、必要に応じて使用できる状態にすることができます。ゲストシステム管理者は、アプリケーション固有のフリーズ/外部フックスクリプトを作成およびインストールできます。ファイルシステムを解放する前に、qemu-guest-agent はメインのフックスクリプトを実行します( qemu-guest-agent パッケージに含まれる)。解放プロセスは、すべてのゲスト仮想マシンアプリケーションを一時的に非アクティブにします。
スナップショットプロセスは以下の手順で構成されます。
  • ファイルシステムアプリケーション/データベースによる作業バッファーを仮想ディスクにフラッシュし、クライアント接続の許可を停止します。
  • アプリケーションによりデータファイルを一貫した状態にします。
  • メインフックスクリプトが返される
  • qemu-guest-agent ファイルシステムをフリーズし、管理スタックにはスナップショットを取得
  • スナップショットが確認
  • ファイルシステム関数を再開
タイスは逆順で行われます。
ゲストのファイルシステムのスナップショットを作成するには、virsh snapshot-create --quiesce --disk-only コマンドを実行します( virsh snapshot-create-as guest_name --quiesce --disk-only で説明されているように、さらに詳しく説明します)。「現在のゲスト仮想マシンのスナップショットの作成」
注記
データベースと対話するためにスクリプトがソケットに接続する必要があるため、アプリケーション固有のフックスクリプトには、正しく実行するためにさまざまな SELinux パーミッションが必要になる場合があります。通常、このような目的でローカルの SELinux ポリシーを開発してインストールする必要があります。ファイルシステムノードにアクセスすると、/etc/qemu-ga/fsfreeze-hook.d/ のラベルが付いたテーブルの行 表11.1「QEMU ゲストエージェントパッケージのコンテンツ」 に一覧表示されている restorecon -FvvR コマンドを実行した後、追加設定なしで機能します。
qemu-guest-agent バイナリー RPM には、以下のファイルが含まれます。

表11.1 QEMU ゲストエージェントパッケージのコンテンツ

ファイル名 説明
/usr/lib/systemd/system/qemu-guest-agent.service QEMU ゲストエージェントのサービス制御スクリプト(start/stop)
/etc/sysconfig/qemu-ga /usr/lib/systemd/system/qemu-guest-agent.service コントロールスクリプトが読み取るため、QEMU ゲストエージェントの設定ファイル。この設定は、シェルスクリプトのコメントを含むファイルに文書化されています。
/usr/bin/qemu-ga QEMU ゲストエージェントバイナリーファイル。
/etc/qemu-ga フックスクリプトのルートディレクトリー。
/etc/qemu-ga/fsfreeze-hook メインのフックスクリプト。ここでは変更は必要ありません。
/etc/qemu-ga/fsfreeze-hook.d アプリケーション固有のフックスクリプトのディレクトリーです。ゲストシステム管理者は、フックスクリプトを手動でこのディレクトリーにコピーして、そのディレクトリーに適切なファイルモードビットを確認し、そのディレクトリーに restorecon -FvvR を実行します。
/usr/share/qemu-kvm/qemu-ga/ サンプルスクリプトを含むディレクトリー(例: 目的のみ)。ここでに含まれるスクリプトは実行されていません。
主なフックスクリプト /etc/qemu-ga/fsfreeze-hook は、以下のログファイルに、アプリケーション固有のスクリプトの標準出力およびエラーメッセージをログに記録します。/var/log/qemu-ga/fsfreeze-hook.log詳細は、libvirt アップストリーム Web サイト を参照してください。

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