當前位置:編程學習大全網 - 源碼下載 - qemu-guest-agent---介紹及安裝

qemu-guest-agent---介紹及安裝

qemu guest agent簡稱qga, 是在虛擬機中運行的守護進程,他可以管理應用程序,執行宿主機發出的命令。例如凍結或解凍文件系統,使系統進入掛起狀態等。但是 guest agent(GA)並沒有良好的安全保護,惡意的虛擬機可能發送虛假的回復

目前QEMU通過串口發布GA。可以嘗試的允許應用程序通過qume監視器與 GA進行通訊,但是需要virtio串口提供支持.

使用GA需要創建特別的串口,名為 org.qemu.guest_agent.0. 換句話說,需要在domain xml中的<devices>下添加如下內容:

如果使用libvirt1.0.6或者更新的的版本,可以省略<source>元素的path=" "屬性。libvirt會進行自動配置。

Libvirt 不提供直接使用guest agent的任何支持,如果您不介意使用libvirt-qemu,則可以使用virDomainQemuAgentCommand API(由virsh qemu-agent-command公開);但需要註意,這是不受支持的,對agent所做的任何改變都會影響libvi,並可能會導致libvirt行為的不確定性。

同時,guest agent可以由幾個支持的libvirt API內部使用,通常通過傳遞標誌來發送請求。 例如,virDomainShutdownFlags:

同樣使用於重啟API

在virsh中,用戶可以選擇關機或重啟的方式通過 -mode acpi|agent:

如果用戶正在創建快照,並希望在之前凍結並解凍文件系統,此時可通過為virDomainSnapshotCreate API指定VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE標誌來完成,或者在virsh中設置:

警告:與任何監視器命令壹樣,GA命令可以無限期阻塞。Libvirt實現了壹些基礎性檢測,以確定是否有qemu-ga實例在運行。 實際上,在每個有用的命令之前發出guest-sync命令。 如果它返回,則libvirt會認為guest agent已啟動並正在運行,這時就會發送實際命令。 但是,guest agent可能會死亡或被終止。 guest-sync命令發出超時,如果命中guest agent則被認為不存在。

在某些情況下,用戶可能希望通過domain的XML配置guest agent,而不希望libvirt連接guest agent 的socket。 因為僅當其virtio channel 名為org.qemu.guest_agent.0時libvirt才可以連接到guest agent,

然而,可通過xml改變目標的名字

如果更改名字,則需要告知qemu GA

僅需要壹件事,之前提到過得,需要在domain 中配置串口,同時,虛擬機必須安裝GA,幸運的是其已經封裝在rpm中。通過如下指令可以進行安裝

  • 上一篇:在 iPic 中添加七牛雲
  • 下一篇:發售6年仍然火爆《上古卷軸5》什麽時候過氣
  • copyright 2024編程學習大全網