2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmox学習記録(5) QEMU Guest Agent の役割を理解する

Posted at

ProxmoxVEについて知識を深めるために、自分なりの言葉にして学習していきます。
なるべく誰でも分かりすく伝わるように・・・
以下を参考にしながら学習していきます。

今回

  • QEMU ゲストエージェント(qemu-guest-agent、以下ゲストエージェント)あり/なしで、Proxmox から見える情報や挙動がどう変わるかを確認する
  • ゲストエージェントが「なくても VM は動くが、あると何が便利になるのか」を体感する
    ※VMのゲストOSはUbuntu Desktopです。

QEMU(キューエミュ)とは

  • KVM/QEMU = Proxmox が VM を動かすために使っている“仮想マシンエンジン”
    • Proxmox ホスト上で動いていて、Ubuntu や Windows などのゲストOSを実際に起動させている部分
    • ユーザが直接 QEMU コマンドを叩かなくても、Proxmox が裏側で全部よしなにやってくれる
  • QEMU ゲストエージェント(qemu-guest-agent)
    • ゲストOS(Ubuntu)の中で動く 小さなサービス
    • Proxmox からゲストOSに対して
      • IP アドレスを教えてもらう
      • きれいなシャットダウンをお願いする
      • バックアップ前にファイルシステムを一瞬フリーズしてもらう などの「細かい会話」をするための 通訳役

手順

Proxmoxのゲストエージェントを有効化する

  1. 管理画面から、対象のVM→オプション→QEMU Guest Agentをダブルクリック
    新1.png
  2. QEMU Guest Agentを使用にチェックを入れる
    新2.png

導入前の状態を確認する

  1. Proxmox 管理画面で、ゲストエージェントを入れたい VM を選択する
  2. [コンソール] をクリックして、Ubuntu にログインする
  3. Ubuntu のターミナルで ip a を実行し、ゲストOSの IP アドレス をメモしておく

ゲストOSにqemu-guest-agent を入れる

  • Ubuntuのターミナルで下記を実行
apt-get install qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent

確認コマンド

systemctl status qemu-guest-agent

active (running)になっていればOK

  • VMをシャットダウン→起動

ゲストエージェントをいれてないVMとの比較

IPアドレスの表示

  • VM→サマリー→
    • ゲストエージェントなし
      「Guestエージェントが未設定」と表示される
      新3.png
    • ゲストエージェントあり
      導入前の状態のip aで確認したIPアドレスとMACアドレスが表示される
      新4.png

シャットダウン時の比較

  • ゲストOS側からシャットダウン(Ubuntu Desktop のメニュー/poweroff)

    • ゲストOS自身がプロセス終了・ファイルシステムのアンマウントなどを行ってから電源を切る、一番「普通の OS の落とし方」
    • ラボ用途・台数が少ないうちは、この方法だけでも十分安全に運用できる
  • Proxmoxの「シャットダウンボタン」

    • ゲストエージェントなし

      • Proxmox から VM に対して ACPI の「電源ボタン押下」イベント を送るだけ
      • ゲストOS側が「電源ボタンでシャットダウンする」設定なら落ちるが、OS が固まっている場合などは反応しないこともある(最悪、強制停止になる)
    • ゲストエージェントあり

      • Proxmox が QEMU ゲストエージェント経由で OS に直接シャットダウンを依頼 (イメージとしては systemctl poweroff をゲストOS側で実行してもらう感じ)
      • 複数 VM をまとめて停止したり、バックアップ処理と連携して自動でシャットダウンさせたい場合に便利

#普段はゲストOS(Ubuntu Desktop)側からシャットダウンしておけば十分だけど、
将来的に Proxmox 側から一括で VM を停止したり、バックアップと連携させたい場合は、
QEMU ゲストエージェントを入れておくと安心して自動化しやすくなる

その他

バックアップ時の比較

バックアップ時にファイルシステムをフリーズさせる処理などにも QEMU ゲストエージェントが使われますが、これについては別の記事で整理する予定です。

VirtIO(ヴァーチオ)

VirtIO は、KVM / QEMU(Proxmox など)で動く VM 用に設計された共通の「仮想ハードウェア」の規格 です。
物理マシンを真似した古いデバイス(IDE ディスクや e1000 NIC など)ではなく、VM 専用のディスク/NIC を使うことで、
ディスク I/O やネットワークを「速く・無駄なく」動かすことを目指しています。

  • ホスト側(Proxmox / KVM / QEMU)

    • VM に対して「VirtIO ディスク」「VirtIO NIC」などの 専用の仮想デバイス を見せる
  • ゲストOS側(Ubuntu / Windows など)

    • その VirtIO デバイスと会話するためのドライバ(VirtIO ドライバ) が必要
    • Linux(Ubuntu など)はカーネルに VirtIO ドライバを含んでいることが多く、
      Proxmox 側で VirtIO を選ぶだけでそのまま使えるケースが多い
    • Windows は標準で VirtIO ドライバを持っていないため、
      virtio-win.iso からドライバを追加インストールする必要がある

つまり、

ホスト側では「VM 向けの専用仮想ハード(VirtIO デバイス)」を用意し、
ゲストOS側ではその規格に対応した VirtIO ドライバでしゃべる

ゲストOSがWindowsの場合

※ ゲストOSを Windows にする場合は、別途ライセンスやボリューム契約などの前提条件が絡んでくるため、本記事では扱いません。

  • QEMU ゲストエージェントは、Ubuntu のように apt install ... ではなく、Windows 用のインストーラ(MSI)を実行してインストール します。
    Proxmox 側で「QEMU Guest Agent を有効化」する操作は同じですが、ゲストOS内での導入はコマンドではなく セットアップウィザードで行うイメージ です。
  • Windowsの場合は、標準の ISO には VirtIO ドライバが入っていないため、virtio-win.iso を VM にマウントして、インストールウィザード中にドライバを追加インストールする必要があります。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?